본문 바로가기
[Objective-C] 객체 기반 소프트웨어 작성 [Objective-C] 객체 기반 소프트웨어 작성 출처 : OS X 구조를 이해하면서 배우는 Objective-C Chap 1. Notice : 정리자(돼지왕 왕돼지)가 remind 하고 싶은 내용이나 모르는 내용 기반으로 정리하는 것이기 때문에 구체적인 내용은 책을 사서 보시기를 권장드립니다. 1.1 객체 개념 * 1.1.1. 소프트웨어를 기능 중심으로 설계 했을 때의 문제점 -기능은 상당히 쉽게 바뀔 수 있다.따라서 기능 중심으로 설계한 소프트웨어는 변경에 취약해서 유지 보수하는 데 비용이 많이 든다. * 1.1.2. 객체로 모델화 -객체를 사용해 작성한 모델은 사람이 생각하는 개념 사이의 관계를 반영한 것이므로 기능을 변경하더라도 큰 영향을 받지는 않는다. * 1.1.3. 메세지로 통신 -메시지는.. 2017. 12. 23.
[Effective Objective-C] #39 핸들러 블록을 사용해 코드가 여러 개로 나뉘는 것을 막으라 [Effective Objective-C] #39 핸들러 블록을 사용해 코드가 여러 개로 나뉘는 것을 막으라 출처 : Effective Objective-C -특정 상황에서 앱이 특정 시간 동안 응답하지 않으면 자동으로 종료될 수 있다.특히 iOS 앱은 반드시 종료된다.시스템 와치독(system watchdog)은 특정 시간 동안 메인 스레드가 중단된 앱은 강제로 종료시킨다. -비동기 메서드를 쓰면 일을 끝냈을 때 완료 사실을 알고 싶어 하는 것들에 완료 사실을 알려주는 방법이 필요하다.이를 할 수 있는 방법이 몇 가지 있다.일반적으로 쓰는 방법은 객체가 따를 수 있는(conform) 델리게이트 프로토콜을 이용하는 것이다.델리게이트 객체는 비동기 작업의 완료 같은 적절한 이벤트가 발생하면 알림을 받을 수.. 2017. 10. 3.
[Effective Objective-C] #16 지정 초기화 메서드를 만들라 [Effective Objective-C] #16 지정 초기화 메서드를 만들라 출처 : Effective Objective-C -객체가 제대로 동작하기 위해 필요한 정보를 객체에 주는 초기화 메서드를 지정 초기화 메서드(designated initializer) 라고 한다. -클래스의 인스턴스를 생성하는 방법이 한 가지 이상이 있는 클래스는 하나 이상의 초기화 메서드가 있을 것이다.초기화 메서드가 여러 개 있는 것도 괜찮지만, 모든 초기화 메서드가 호출하는 한 가지 지정 초기화 메서드가 있는 것이 더 좋다. -지정 초기화 메서드가 있다는 것은 나머지 초기화 메서드들이 이 지정 초기화 메서드를 호출함을 뜻한다. -지정 초기화 메서드는 객체 내부 데이터를 저장하는 유일한 곳이다.객체의 데이터를 저장하는 데이.. 2017. 8. 18.
[Effective Objective-C] #13 불투명 메서드를 디버깅할 때 메서드 스위즐링을 사용하라 [Effective Objective-C] #13 불투명 메서드를 디버깅할 때 메서드 스위즐링을 사용하라 출처 : Effective Objective-C -Opaque Method ( 불투명 메소드 ) : 소스 코드를 볼 수 없는 메소드 -동적 바인딩은 호출될 메서드가 실행 시간에 바뀔 수 있다는 것을 뜻한다.이 능력은 굉장한 유연성을 제공하는데, 소스 코드가 없는 클래스 ( 즉 바이너리 파일만 있는 경우 ) 라도 하위 클래스를 만들거나 메서드를 재정의하지 않고도 기능을 변경할 수 있다.그래서 하위 클래스에서 메서드를 재정의하는 방법은 하위 클래스의 인스턴스만 변경한 기능을 사용할 수 있는 것에 반해, 이 방법은 해당 클래스(기본 클래스와 모든 하위 클래스)의 모든 인스턴스에서 새로운 기능을 사용할 수 .. 2017. 8. 15.
[먹거리X파일] 현미 괴담의 진실과 중국인 전용식당 - E086 [먹거리X파일] 현미 괴담의 진실과 중국인 전용식당 - E086 방송 날짜 : 16.03.13 현미 괴담의 진실 -인터넷에 떠도는 현미괴담.현미는 사람을 천천히 죽이는 독약이다.우리 조상들은 아무도 현미를 먹지 않았다.현미에는 무서운 독이 있다. 그 독은 만성 독이다.현미를 오래 먹으면 치아가 삭아서 빠지고 몸이 여위며 빈혈, 골다공증, 관절염, 간염, 아토피 피부염 같은 것이 생길 수 있다.현미를 9개월 먹은 여성은 심한 괴혈병과 영양 결핍으로 목숨을 잃었다..... -한 제보자는 현미식을 하고 치아가 4개 이상 빠졌다고 한다.무기력해지고 빈혈 등도 생겼단다.현미를 끊고 이런 현상이 없어졌다고 한다. -현미괴담의 출처는 약초학자 "최진규" 씨로부터.몸에 바로 효력을 나타내는 독보다 몸에 축적된 후 효력.. 2017. 6. 1.
[Java Concurrency] 단일 연산 변수와 넌블로킹 동기화 [Java Concurrency] 단일 연산 변수와 넌블로킹 동기화 - 병렬 알고리즘과 관련한 최근의 연구 결과를 보면 대부분이 넌블로킹 알고리즘, 즉 여러 스레드가 동작하는 환경에서 데이터의 안정성을 보장하는 방법으로 락을 사용하는 대신 저수준의 하드웨어에서 제공하는 비교 후 교환(compare-and-swap) 등의 명령을 사용하는 알고리즘을 다루고 있다. - 넌블로킹 알고리즘은 운영체제나 JVM 에서 프로세스나 스레드를 스케줄링 하거나 가비지 컬렉션 작업, 그리고 락이나 기타 병렬 자료 구조를 구현하는 부분에서 굉장히 많이 사용하고 있다. - 넌블로킹 알고리즘은 락을 기반으로 하는 방법보다 설계와 구현 모두 훨씬 복잡하며, 대신 확장성과 활동성을 엄청나게 높여준다. - 넌블로킹 알고리즘은 훨씬 세밀.. 2017. 5. 9.
[편의점 감식] 농심 큰튀김우동 후기~~ [편의점 감식] 농심 큰튀김우동 후기~~ 규망이랑 점심을 간단히 먹고 싶어 편의점에 갔다.뭘 먹을가 둘러보는데 "큰 튀김우동" 이라는 녀석이 있는게 아닌가? 도전!! 1개 가격은 1,800원으로 일반 튀김우동에 비해 750원정도 비싸다.무슨 차이가 있어 이렇게 비싼가 싶어 그냥 일반 튀김우동을 먹으려는데,현재 행사상품으로 2+1 란다. 그럼 3개에 3,600원이니 개당 1,200원.그렇다면 일반 튀김우동보다 150원 비싸니 그거슨 리즈너블한 가격! 오케이 도전!! 뜯으면 2개의 작은 봉투가 있다.왼쪽이 큰 튀김, 오른쪽이 스프이다. 큰 튀김은 나중에 넣는 녀석이고,우선 스프를 넣고 뜨거운 물을 붓는다. 기다리는 동안 이 녀석의 다른 정보를 둘러본다. 1. 큰 투김에는 "새우, 양파, 마늘" 등이 들어가 .. 2017. 4. 8.
[Effective Java] 직렬화된 인스턴스 대신 직렬화 프록시의 사용을 고려하자. [Effective Java] 직렬화된 인스턴스 대신 직렬화 프록시의 사용을 고려하자. - Serializable 인터페이스를 구현할 때는 결함과 보안 문제가 생길 가능성이 커진다. 정상적인 생성자 대신 언어 영역 밖의 메커니즘을 사용해서 인스턴스가 생성되기 때문이다. 그런 위험을 현저히 줄이는 방법이 직렬화 프록시 패턴(Serialization proxy pattern) 이다. - 직렬화 프록시 패턴은 직렬화 가능 클래스의 private static 중첩 클래스를 설계한다. 직렬화 프록시(serialization proxy) 라고 하는 inner 클래스는 외곽 클래스를 매개 변수 타입으로 하는 단일 생성자를 갖는다. 그리고 이 생성자는 자신의 인자로부터 데이터만 복사한다. 일관성 검사나 방어 복사도 할.. 2017. 3. 28.
[Effective Java] 인스턴스 제어에는 readResolve 메소드보다 enum 타입을 사용하자. [Effective Java] 인스턴스 제어에는 readResolve 메소드보다 enum 타입을 사용하자. - readResolve 메소드는 readObject 메소드에서 생성한 인스턴스를 다른 인스턴스로 바꾸어준다. 만일 역직렬화되는 객체의 클래스에서 readResolve 메소드를 올바르게 정의하면 그 객체가 역직렬화된 후 그 결과로 새롭게 생성된 객체에 대해 이 메소드가 자동 호출되며, 이 메소드에서 반환하는 객체 참조가 역직렬화로 새롭게 생성된 객체 대신 반환된다. - 싱글톤의 경우 다음과 같은 방법으로 싱글톤을 유지할 수 있다. private Object readResolve(){// Deserialization 으로 생성된 새로운 녀석은 GC 된다.return INSTANCE;} - readRe.. 2017. 3. 27.
반응형