Java 8 Lambda를 이용한 virtual proxy pattern 람다를 이용하여 virtual proxy pattern을 구현하는 방법을 알아봅니다. 먼저 버추얼 프록시 패턴이 뭔지를 알아야 겠죠?하지만 이름은 몰랐더라도 이미 사용하는 코드에 녹아있을수도 있습니다. Virtual proxy pattern이 패턴은 어렵지 않은 구조이므로 간단히 개념만 설명하고자 합니다.일단 목적은 "lazy evaluation"입니다. 생성해서 쓰기에 버거운 객체의 초기화를 뒤로 미뤄서 초기 로딩 속도를 높이는 방법입니다.말은 거창하지만 실제로 많이 쓰이는 방법입니다. 어렵지 않고 이미 예제가 많이 있으므로 여기서 따로 설명하지는 않습니다.따라서 잘 설명되어있는 블로그를 링크합니다. 예제가 잘 설명된 글: http://ncanis.tistory.com/102개념이 잘 설명된 글: ht.. 개발이야기/Java 7년 전
Java의 동기화 Synchronized 개념 정리#2 이번엔 singleton과 static 함수에서 synchronized가 어떻게 동작하는지 확인해 보겠습니다.Singleton 객체에서의 동기화singleton은 객체를 한개만 생성하여 사용하도록 합니다. 따라서 #1번 글에서 사용했던것과 예제나 개념은 크게 다르지 않습니다.public class Singleton { public ArrayList mList = new ArrayList(); private Singleton() { // } private static class Holder { public static final Singleton sHolderSingleton = new Singleton(); } public static Singleton getInstance() { return Holde.. 개발이야기/Java 7년 전
Java의 동기화 Synchronized 개념 정리#1 Java의 동기화 -Synchronized 키워드의 사용Java를 프로그래밍 하다면 multi-thread로 인하여 동기화를 제어해야하는 경우가 생깁니다.그래서 흔히 Synchronized 키워드를 사용하는데요그냥 multi-thread로 동시접근되는것을 막는다! 라는 개념보다는 여러 case를 살펴보면서 좀더 디테일하게 보려 합니다. Thread는 class의 멤버변수의 자원에 접근할 수 있습니다.이건 멤버변수가 Heap 메모리를 사용하기 때문에 가능한 부분인데 여하튼 여러 Thread가 공유자원에 접근하는 경우 동기화를 해 줘야 할 필요가 있습니다.사실 그밖에 동기화 해줘야 하는 이유들이야 많습니다. 추가적으로 synchronized 키워드 이외에 volatile을 사용할수 있고, Atomic 클래스.. 개발이야기/Java 7년 전
Android 애니메이션#1 - Thread & ImageSwitcher Thread를 이용한 AnimationAnimation 제작시 Thread로 이미지를 교체하면서 애니메이션을 만들수 있습니다. 간단하게 여러장의 이미지를 Thread의 sleep을 이용하여 순차적으로 바꾸는 방식입니다. 개념상 어렵지 않으니 예제를 보면서 설명하겠습니다. 예제는 다음과 같은 순서로 만듭니다. 1. layout xml에 ImageSwitcher, Start 버튼, Stop 버튼 추가 2. onCreate에서 findView를 이용하여 객체 reference로 가져옴 3. Thread에서 ImageSwitcher를 이용하여 이미지 교체 ImageView를 이용하여 resource를 교체해도 상관은 없습니다만 ImageSwitcher는 이미지를 교체하면서 animation 효과를 줄 수 있습니.. 개발이야기/Android 8년 전