본문 바로가기
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #1 ~ #8 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #1 ~ #8 #1 : Objective-C 의 기원과 친숙해져라. Objective-C는 객체 지향 기능을 추가한 C 의 확장이다. Objective-C는 동적 바인딩을 사용하는 메시징 구조를 이용한다. 동적 바인딩은 객체 타입이 실행 시간에 밝혀지는 것을 뜻한다. 메시지를 받았을 때 동작할 코드를 컴파일러가 아닌 런타임이 결정한다. C의 핵심 개념을 이해하고 있으면 Objective-C를 효과적으로 작성하는 데 도움이 된다. 특히 메모리 모델과 포인터를 잘 이해하고 있어야 한다. #2 : 헤더에 헤더를 포함하는 것을 최소화하라 항상 헤더를 포함하는 것을 최대한 미루라. 이는 보통 헤.. 2017. 8. 10.
[Effective Objective-C] #5 열거형을 사용해 상태, 옵션, 상태 코드를 정의하라 [Effective Objective-C] #5 열거형을 사용해 상태, 옵션, 상태 코드를 정의하라 출처 : Effective Objective-C -enum 은 시스템 프레임워크 전반에 걸쳐 광범위하게 사용되지만 개발자들은 잘 활용하지 않는다.enum 은 예를 들어 에러 상태 코드들이나 조합할 수 있는 옵션들에 사용될 수 있는 상수들을 정의하는 데 매우 유용하게 쓰일 수 있다. enum EOCConnectionState{ EOCConnectionStateDisconnected, EOCConnectionStateConnected,}; -enum 을 사용하면 코드가 읽기 좋아진다.컴파일러는 열거형의 각 멤버에 유일한 값을 부여한다.0으로 시작해 1씩 증가시킨 값을 각 멤버에 부여한다.이런 열거형 내부의 타.. 2017. 7. 26.
[Kotlin Tutorial] Kotlin 기초 #2 - Chap2. Kotlin basics [Kotlin Tutorial] Kotlin 기초 #2 - Chap2. Kotlin basics 참조 : Kotlin in Action 2.4. Iterating over things: "While" and "For" loops -Kotlin 에서 for loop 은 for-each loop 하나밖에 없다. 2.4.1. The “while” loop -Java 와 동일 2.4.2. Iterating over numbers: ranges and progressions -일반적인 for loop 를 쓰려면 range 를 쓰면 된다.Range 는 closed, inclusive 하다 즉 아래의 예에서는 1과 10 모두를 포함한다.val oneToTen = 1..10 -val hundredToOneWithSte.. 2017. 7. 25.
[Kotlin Tutorial] Kotlin 기초 #1 - Chap2. Kotlin basics [Kotlin Tutorial] Kotlin 기초 #1 - Chap2. Kotlin basics 참조 : Kotlin in Action 2.1. Basic elements : Functions and variables 2.1.1. Hello, world! -fun main(args: Array){ println(“Hello, world!”)} fun 는 function 을 정의하는 keywordtype 은 variable 이름 다음에 옴function이 class 정의 안에 있지 않아도 된다Array 가 class 이다 ( Java 는 아니징 ) -> Kotlin 에서는 모든 것이 Object 이다System.out.println 대신 println; (semicolon) 넣을 필요 없다 ( option.. 2017. 7. 25.
[Java] GC 에 대한 이야기 [Java] GC 에 대한 이야기 http://www.javaworld.com/article/2078645/java-se/jvm-performance-optimization-part-3-garbage-collection.html -System.gc() 를 호출하는 것이 GC 를 보장하지 않는다. -gc 가 호출되면 gc 는 자신이 실행되어도 안전한 시점인지 확인 후 실행된다.안전한 시점이라는 것은 지속적인 object allocation 이 아닐 때, optimized CPU instruction 의 중간이 아닐 때 와 같은 경우가 있겠다. -GC 는 여러 가지 variation 이 있지만 다음 두가지는 모든 GC 가 동일하다.1. OOM 이 나지 않도록 사용되지 않는 메모리를 free 시킨다.2. pe.. 2017. 5. 25.
[Effective Java] int 상수 대신 enum 을 사용하자. [Effective Java] int 상수 대신 enum 을 사용하자. - int enum pattern 이라고 불리는 int 를 이용한 분기는 단점이 많다. - 타입 안전을 보장하지도 않고, 편리하게 사용할 수 있는 방법도 제공하지 않는다. 즉 취약하다. - int enum 상수를 출력 가능한 문자열로 쉽게 바꾸는 방법도 없다. - 하나의 int enum 그룹에 있는 모든 상수를 loop 처리하거나, 그룹 사이즈를 알 수 있는 좋은 방법도 없다. - int enum 패턴의 변이로 String enum 패턴이 있는데 더더욱 바람직하지 않다. print 하는 부분에서는 좋지만, 문자열 비교에 의존하여 성능 문제가 생길 수도 있다. 더욱 문제가 되는 것은 필드명 대신 string 상수 값을 클라이언트 코드에.. 2016. 12. 19.
[Effective Java] 태그(tagged) 클래스보다는 클래스 계층을 사용하자. [Effective Java] 태그(tagged) 클래스보다는 클래스 계층을 사용하자. - 인스턴스들이 두 개 이상의 특성으로 분류되고 그런 특성을 나타내는 태그(tag) 필드를 갖는 클래스들을 태그 클래스라고 한다. 예를 들어 Figure 라는 class 가 있는데, 생성자의 종류에 따라 Rectangle 도 되었다가 Circle 도 될 수 있는 녀석. 한 Class 가 조건에 따라 많이 다른 특성의 class 의 형태로 변하는 녀석을 말한다. - 태그 클래스(Tagged class) 는 단점 투성이다. enum 선언, 태그 필드, switch, if 문 등을 포함해서 각종 복잡한 코드로 가독성을 떨어뜨린다. 다른 종류의 인스턴스에 속하는 부적절한 필드를 인스턴스가 가지고 있어 필요 없는 메모리 할당과.. 2016. 11. 14.
[Network] OSI 7 Layers - Layer 4 Transport [Network] OSI 7 Layers - Layer 4 Transport 출처, 참조 : http://luuzun.blog.me/50189217223http://defoenet.com/ccna/ Layer 4. 전송계층 : 데이터 전송 ( TCP - Transmission Control Protocol ) 응용프로그램 계층으로 데이터 전송을 담당한다.주로 TCP 프로토콜을 사용하며, 포트( 0~65535 ports ) 를 통해 패킷을 응용 프로그램으로 전송한다.Transport Layer 에서는 데이터의 신뢰성, 흐름제어에 focus 되어 있다.가상 회로 구축, 유지 및 종료, 전송 오류 검출 및 복구의 기능을 갖는다. Layer 5 로부터 전달받은 패킷에 Src port, Dst port 를 덧붙인.. 2014. 4. 20.
[Network] OSI 7 Layers - Layer 2 Data LInk [Network] OSI 7 Layers - Layer 2 Data LInk 출처, 참조 : http://luuzun.blog.me/50189217223http://defoenet.com/ccna/ Layer 2. 데이터 링크 계층 : 에러 검출, 흐름 제어 ( Mac Address ) 데이터 단위는 Frame.Frame 은 3 Layer 에서 전달된 Packet 에 출발지 & 목적지의 MAC( Media Access Control ) Address 를 붙인다.목적지 MAC 주소는 주로 게이트웨이 MAC 주소이며, ARP ( Address Resolution Protocol ) 을 이용해 목적지를 확인한다. 데이터 전송 양을 제어하며, 전송과정에서 변형, 손실된 데이터는 CRC ( Cyclic Redun.. 2014. 4. 10.
반응형