본문 바로가기
[Java8 In Action] #8 리팩토링, 테스팅, 디버깅 [Java8 In Action] #8 리팩토링, 테스팅, 디버깅 Java8 In Action 내용을 보며 정리한 내용입니다.정리자는 기존에 Java8 을 한차례 rough 하게 공부한 적이 있고, Kotlin 역시 공부한 적이 있습니다.위의 prerequisite 가 있는 상태에서 추가적인 내용만 정리한 내용이므로, 제대로 공부를 하고 싶다면 책을 구매해서 보길 권장합니다! 8.1. 가독성과 유연성을 개선하는 리펙토링 -람다 표현식은 익명 클래스보다 코드를 좀 더 간결하게 만든다.람다 표현식은 동작 파라미터화(익명클래스와 동일 개념)의 형식을 지원하므로 람다 표현식을 이용한 코드는 더 큰 유연성을 갖출 수 있다. 8.1.1. 코드 가독성 개선 -일반적으로 코드 가독성이 좋다는 것은 “어떤 코드를 다른 사.. 2018. 12. 28.
[최적화] iniLINE CrossEX Service 삭제해도 되나요? [최적화] iniLINE CrossEX Service 삭제해도 되나요? 네 삭제해도 됩니다. 은행, 관공서 등의 보안 프로그램 중 하나로 사용됩니다. 필자의 경우 하나은행을 사용할 때 "iniLINE CrossEx Service (iniLINE Co., Ltd.)" 라는 이름으로 설치되었습니다. 단, 하나은행을 자주 사용하시는 경우에는 은행을 이용할 때 재설치를 해야 합니다. 이것이 귀찮으면 그냥 두시면 됩니다. iniline co., iniLINE CrossEX Service, iniLINE CrossEX Service 삭제, Ltd., [최적화] iniLINE CrossEX Service 삭제해도 되나요?, 보안 프로그램, 최적화, 하나은행 2018. 7. 19.
[머신러닝] #6 학습 관련 기술들 [머신러닝] #6 학습 관련 기술들 "Deep Learning from Scratch” 책을 보고 제가 필요한 내용만 정리한 내용입니다.자세한 내용은 책을 구매해서 보세요~ 6.1. 매개변수 갱신 -신경망 학습의 목적은 손실 함수의 값을 가능한 한 낮추는 매개변수를 찾는 것이다.이는 곧 매개변수의 최적값을 찾는 문제이며, 이러한 문제를 푸는 것을 최적화(optimization)라 한다.안타깝게도 신경망 최적화를 굉장히 어렵다. 매개변수 공간은 매우 넓고 복잡해서 최적의 솔루션은 쉽게 못 찾기 때문이다. 우리는 지금까지 최적의 매개변수를 찾는 단서로 매개변수의 기울기(미분)을 시용했다.매개변수의 기울기를 구해, 기울어진 방향으로 매개변수 값을 갱신하는 일을 몇 번 반복해서 점점 최적의 값에 다가갔다.이것이.. 2018. 7. 8.
[SQLite3] 01. SQLite 소개 [SQLite3] 01. SQLite 소개 이 글은 "빠르게 활용하는 모바일 데이터베이스 SQLite3” 이란 글을 보며 필요한 내용만 정리한 글입니다.자세한 내용은 책을 구매해서 보세요-SQLite3 는 안드로이드, 아이폰에서 채택되면서 모바일 환경에서 가장 널리 사용되는 DB 가 되었다. ( 파폭 브라우저, 드롭박스 등에서도 사용 )개발 초창기부터 임베디드 환경을 고려했기 때문에 SQLite3 는 다른 DB 의 대부분의 기능을 지원하면서도 상대적으로 라이브러리 크기가 작고, 메모리가 적은 환경에서도 뛰어난 성능을 발휘한다.오픈 소스 프로젝트이며, 특별한 라이선스 없이 무료로 사용 가능하다. 1. 주요 특징 단일 데이터베이스 파일 데이터베이스의 모든 정보가 단 하나의 파일에 저장된다.테이블 스키마, 레.. 2018. 5. 16.
[Kotlin] Kotlin 의 숨겨진 비용 #3 [Kotlin] Kotlin 의 숨겨진 비용 #3 https://medium.com/@BladeCoder/exploring-kotlins-hidden-costs-part-3-3bf6e0dbf0a4 Delegated property -class Example{ var p: String by Delegate()} property 에 delegate 를 사용할 경우에 해당 delegate 는 operator function 인 getValue 와 setValue 를 구현해야 한다.해당 function 들은 object instance 와 property metadata 를 받는다. public final class Example{ @NonNull private final Delegate p$delegate =.. 2018. 1. 18.
[Java] Jit Compiler 에 대한 이야기 [Java] Jit Compiler 에 대한 이야기 http://blog.takipi.com/java-on-steroids-5-super-useful-jit-optimization-techniques/ -bytecode 는 original Java 코드를 그대로(dynamic optimization 없이) 나타낸 것이라고 보면 된다.JVM 이 bytecode 를 Assembly로 변환할 때 2가지 mode 가 작동한다. 1.Interpreted mode : JVM 이 bytecode 를 읽고 실행시킨다.2. Compiled mode(byte code to assembly) 이 두가지 mode 를 잇는 것이 JIT compiler 이다. Interpreted mode 가 assembly level 로 최적.. 2018. 1. 14.
[통계] DAU, WAU, MAU, Stickiness 용어 정리 DAU Daily Active User 일일 유니크 유저 수 게임, 메신저 등 반복적 사용이 중요한 앱들은 DAU 수치에 보통 주목. 이 수치를 바탕으로 서버 부하, 트래픽을 예측하여 최적화를 진행할 수도 있다. WAU Weekly Active User 매주 유니크 유저 수 매일 매일 접속할 필요가 없는 앱들은 WAU 에 주목한다. MAU Monthly Active User 한 달에 이용하는 유니크 유저의 총 수. 수치가 크기 때문에 비지니스 상 많이 인용되기는 하나 실제 유저의 활성화 정도를 파악하기 어렵다. 성숙한 서비스는 MAU 가 비교적 꾸준하게 유지된다. Stickiness DAU 를 MAU 또는 WAU 로 나눈 수치이다. 매달, 혹은 매주 사용하는 유저 중 실제로 얼마나 많은 유저가 매일 사용.. 2017. 12. 10.
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #49~#52 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #49~#52 출처 : Effective Objective-C #49 : 커스텀 메모리 관리 시맨틱을 가진 컬렉션을 만들기 위해 무비용 전환을 사용하라 무비용 전환은 Foundation 의 오브젝티브-C 객체와 CoreFoundation 의 C 데이터 구조체 간에 캐스팅을 할 수 있게 한다. CoreFoundation 으로 내려가 컬렉션을 생성하면 컬렉션이 자신의 데이터를 다룰 때 사용되는 다양한 콜백을 정의할 수 있다. 무비용 전환을 이용해 캐스팅하면 커스텀 메모리 관리 시맨틱을 갖는 오브젝티브-C 컬렉션을 만들 수 있다. #50 : 캐시가 필요할 때 NSDictionary 보다는 N.. 2017. 10. 21.
[Effective Objective-C] #41 동기화에는 락보다는 디스패치 큐를 사용하라 [Effective Objective-C] #41 동기화에는 락보다는 디스패치 큐를 사용하라 출처 : Effective Objective-C -다수 스레드에서 동시에 접근하기 때문에 문제를 겪는 코드를 오브젝티브-C에서 가끔 발견할 수 있다.이 문제를 해결하기 위해서는 앱이 락을 사용해 동기화해야 한다.GCD 이전에는 동기화를 위한 두 가지 방법이 있었는데 첫 번째 방법은 built-in 동기화 블록이다.- (void) synchronizedMethod{ @synchronized(self){ // 코드 }} 이 구조는 주어진 객체를 기반으로 락을 자동으로 생성하고 블록에 포함된 코드가 완료될 때까지 락을 잡고 기다린다.락은 코드 블록의 끝에서 풀린다. -또 다른 방법은 NSLock 객체를 직접 사용하는 .. 2017. 10. 6.
반응형