본문 바로가기
[iOS Study] 병렬 프로그래밍 가이드 ( 병렬 앱 디자인 ) [iOS Study] 병렬 프로그래밍 가이드 ( 병렬 앱 디자인 ) https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/ConcurrencyandApplicationDesign/ConcurrencyandApplicationDesign.html#//apple_ref/doc/uid/TP40008091-CH100-SW1 -전통적 방법으로의 복수개의 코어를 사용하는 방법은 여러개의 thread 를 만들어 사용하는 것이다.그러나 thread 를 사용한 코드는 scale 측면에서 좋지 않다.core 가 처리하기 좋은 thread 의 갯수를 아는 것도 쉽지 않고, thread 들을 효율적으.. 2017. 7. 1.
[Java] Subclass 는 Serializable 을 구현하고, Superclass 는 그렇지 않은 경우. [Java] Subclass 는 Serializable 을 구현하고, Superclass 는 그렇지 않은 경우. 출처 : http://www.jguru.com/faq/view.jsp?EID=34802 Object 를 serialize 를 하면 상속 hierarchy 를 따라가며 직렬화 메커니즘을 수행한다. 이 과정에서 만약 Serializable 을 구현하지 않은 super class 를 만나면 이 매커니즘은 멈추게 된다. Deserialize 할 때 Serializable 을 구현하지 않은 super class 는 stream 으로부터 복구되는 것이 아니라, empty argument constructor 가 호출되며 복구된다. 따라서 Superclass 의 내용을 복구해줄 필요가 없다면 그냥 igno.. 2017. 5. 16.
[android] ListView 에서 RecyclerView 로 migration 하세요. [android] ListView 에서 RecyclerView 로 migration 하세요. http://andraskindler.com/2014/11/22/migrating-to-recyclerview/ - Google 에서도 RecyclerView 을 Support library 에 넣으면서 ListView 를 대체하려는 움직임을 보이고 있다. RecyclerView 는 새롭고, 효율적이고, customize 하기에도 좋다. ListView 뿐만 아니라 GridView, StaggeredGridView, ExpandableListView 역시 모두 migration 가능하다. RecyclerView and LayoutManager RecyclerView 는 제한된 수의 window 를 이용하여 lar.. 2017. 4. 13.
[Effective Java] 배열보다는 List 를 사용하자. [Effective Java] 배열보다는 List 를 사용하자. - 배열은 두 가지 관점에서 제네릭 타입과 다르다. 1. array는 공변(covariant). Sub이 Super 의 서브 타입이라면, 배열 타입 Sub[] 은 Super[] 의 서브 타입이라는 의미. 제네릭은 불변(invariant). Type1 와 Type2 가 있을 때, 이들의 관계는 모두 무시하고, List 과 List 는 서로 슈퍼도 서브도 아니다. 이 차이를 기반으로 제네릭이 유연성을 떨어뜨린다고 볼 수 있지만, array는 안전성을 보장하지 못한다. 배열을 사용하면 런타임 에러를 발생시키기 쉽고, List 를 사용하면 컴파일 에러를 마딱뜨리기 쉽다. 당연히 컴파일 시 에러를 발견하는 것이 최고다. 2. array 는 구체적(r.. 2016. 11. 28.
[Java] writeObject 와 readObject 는 무엇인가? [Java] writeObject 와 readObject 는 무엇인가? 참조 : http://www.javablogging.com/what-are-writeobject-and-readobject-customizing-the-serialization-process/ - serialize 하고 싶은 객체에 Serializable interface 만 implements 해주면 serialize 가 가능하다. -ObjectOutputStream 을 이용하여 stream 형태로 만들어 file 에 쓰거나 전송할 수 있다. - transient 나 static 으로 마크되지 않은 필드들은 모두 serialized 된다. - 기본적인 serialization 에 추가적으로 어떤 조치를 취하고 싶다면 아래와 같이 w.. 2016. 10. 25.
[iOS Study] 코어 데이터 [iOS Study] 코어 데이터 출처 : 아론 힐리가스의 iOS 프로그래밍 -데이터를 로컬에 저장하는 방법은 “아카이빙” 또는 “코어 데이터” 를 사용한다. -아카이빙의 가장 큰 결점은 전부 다냐 아무것도 아니냐는 특성에 있다.아카이브 안의 내용에 접근하려면 전체 파일을 언아카이브해야 한다.변경사항을 저장하려면 전체 파일을 다시 쓰기 해야 한다.반면 코어 데이터(Core Data)는 저장된 객체의 일부만 가져올 수 있다.그리고 어떤 객체를 변경한다면 파일의 해당 부분만 갱신할 수 있다.이러한 점진적 가져오기, 업데이트, 삭제, 삽입은 파일시스템과 메모리 사이를 오가는 많은 모델 객체를 가지는 경우 앱의 급격한 성능 향상을 가져올 수 있다. -코어 데이터는 객체-관계형 매핑 ( object-relatio.. 2016. 3. 25.
[iOS Study] UITableViewCell 하위 클래스 만들기 [iOS Study] UITableViewCell 하위 클래스 만들기 출처 : 아론 힐리가스의 iOS 프로그래밍 -UITableView 는 UITableViewCell 객체의 목록을 표시한다.대다수 앱들은 기본 셀과 textLabel, detailTextLabel, imageView 로도 충분하다.하지만 좀 더 자세하거나 다른 레이아웃의 셀이 필요할 땐 UITableViewCell 의 하위 클래스를 만들어야 한다. -UIView 의 하위 클래스를 만들 때, 종종 뷰의 모양을 커스터마이즈하기 위해 drawRect: 메소드를 재정의한다.하지만 UITableViewCell 의 하위 클래스를 만들 떄는 대개 하위뷰들을 셀에 추가하여 모양을 커스터마이즈한다.하위뷰들을 셀에 직접 추가하지 않고 셀의 콘텐트 뷰(co.. 2016. 3. 8.
[iOS Study] 터치 이벤트와 UIResponder [iOS Study] 터치 이벤트와 UIResponder 출처 : 아론 힐리가스의 iOS 프로그래밍 -UIView 는 UIResponder 의 하위 클래스로서 각각 다른 터치 이벤트를 처리할 네 개의 메소드를 재정의할 수 있다. - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event; -화면을 .. 2016. 2. 24.
Objective-C 고급 ( Advanced Objective-C ) Objective-C 고급 ( Advanced Objective-C ) 출처 : http://www.tutorialspoint.com/objective_c/objective_c_classes_objects.htm > - class 는 @interface 와 @implementation 의 두 파트로 나뉘어 정의된다. - 대부분이 objects 를 상속한다. - objects 는 메세지를 받기 때문에 receiver 로 불리기도 한다. - Properties 는 다른 class 에서의 access 를 접근하도록 도와준다. - ex) @interface Box:NSObject { double length; double breadth; } @property(nonatomic, readwrite) double .. 2015. 6. 18.
반응형