본문 바로가기
[책 정리] 삶의 균형(from #3 먹고 사는 게 뭐라고) - 하마터면 열심히 살뻔했다 - 자신의 치우침을 안다는 건 균형을 잡는 첫걸음이다. - 우리의 삶은 시시각각 변하는 파도와 같다. 파도 위에서 넘어지지 않고 균형을 잘 잡으려면 꼿꼿해선 안 된다. 유연해야 한다. 힘을 빼고 이리저리 휘둘릴 각오를 해야 한다는 이야기다. 파도에 맞춰 무게중심을 이쪽에서 저쪽으로, 저쪽에서 이쪽으로 쉴 새 없이 옮겨야 넘어지지 않는다. 그 모습을 멀리서 보면 마치 위태롭게 흔들리는 것처럼 보여도 자세히 보면 열심히 균형을 잡고 있는 것이다. 그러니 지금의 내 삶이 매우 불안해 보일지라도 너무 걱정할 것 없다. 이건 흔들리는 것이 아니라 파도를 타는 것이니까. 2018. 9. 4.
[책 정리] 잘 그리고 싶어서 (from #1 이러려고 열심히 살았나) - 하마터면 열심히 살뻔했다 -잘 하고 싶어서, 틀리고 싶지 않아서. 이런 마음 때문에 힘이 들어간다. 힘이 들어간다는 건 경직된다는 것, 유연하지 않다는 것, 자연스럽지 않다는 것, 욕심을 내고 있다는 것, 겁을 먹고 있다는 것이다. - 힘을 빼면 넘어지고, 뒤처질까 봐 힘을 뺄 생각을 못 했다. 부끄럽지만 겁을 먹었다. 힘을 뺀다는 건 딱딱하지 않다는 것, 유연하다는 것, 자연스럽다는 것, 욕심을 내지 않는다는 것, 겁을 먹지 않는다는 것이다. 2018. 8. 20.
[Effective Objective-C] #39 핸들러 블록을 사용해 코드가 여러 개로 나뉘는 것을 막으라 [Effective Objective-C] #39 핸들러 블록을 사용해 코드가 여러 개로 나뉘는 것을 막으라 출처 : Effective Objective-C -특정 상황에서 앱이 특정 시간 동안 응답하지 않으면 자동으로 종료될 수 있다.특히 iOS 앱은 반드시 종료된다.시스템 와치독(system watchdog)은 특정 시간 동안 메인 스레드가 중단된 앱은 강제로 종료시킨다. -비동기 메서드를 쓰면 일을 끝냈을 때 완료 사실을 알고 싶어 하는 것들에 완료 사실을 알려주는 방법이 필요하다.이를 할 수 있는 방법이 몇 가지 있다.일반적으로 쓰는 방법은 객체가 따를 수 있는(conform) 델리게이트 프로토콜을 이용하는 것이다.델리게이트 객체는 비동기 작업의 완료 같은 적절한 이벤트가 발생하면 알림을 받을 수.. 2017. 10. 3.
[Java Concurrency] 스레드 풀 활용 [Java Concurrency] 스레드 풀 활용 8.1. 작업과 실행 정책 간의 보이지 않는 연결 관계 - 일정한 조건을 갖춘 실행 정책이 필요한 작업에는 다음과 같은 것들이 있다. 의존성이 있는 작업 스레드 한정 기법을 사용하는 작업 응답 시간이 민감한 작업 ThreadLocal 을 사용하는 작업 - 스레드 풀은 동일하고 서로 독립적인 다수의 작업을 실행할 때 가장 효과적이다. - 특정 작업을 실행하고자 할 때 그에 맞는 실행 정책을 요구하는 경우도 있고, 특정 실행 정책 아래에서는 실행되지 않는 경우도 있다. 다른 작업에 의존성이 있는 작업을 실행해야 할 때는 스레드 풀의 크기를 충분히 크게 잡아서 작업이 큐에서 대기하거나 등록되지 못하는 상황이 없도록 해야 한다. 스레드 한정 기법을 사용하는 작업.. 2017. 4. 27.
[Effective Java] 객체 참조는 그 객체의 인터페이스 타입으로 하자 [Effective Java] 객체 참조는 그 객체의 인터페이스 타입으로 하자 - 객체를 참조할 때는 클래스보다는 인터페이스를 사용해야 한다. 만일 적합한 인터페이스 타입이 있다면, 매개 변수, 반환 값, 변수, 필드 모두 다 인터페이스 타입을 사용해서 선언해야 한다. 유일하게 객체의 클래스를 참조할 필요가 있는 경우는 생성자에서 객체를 생성할 때이다. - 인터페이스를 객체의 타입으로 사용하는 습관을 들이면, 프로그램이 훨씬 더 유연해진다. - 인터페이스의 구현체(클래스)를 변경하고자 하는 이유는, 새로 변경한 구현체가 더 좋은 성능을 내는 경우가 많다. - 만일 적합한 인터페이스가 없다면, 객체를 참조하는 타입을 인터페이스 대신 클래스로 하는 수밖에 없다. 적합한 인터페이스가 없는 경우는 보통 fina.. 2017. 2. 9.
[Effective Java] 제네릭 메소드를 애용하자. [Effective Java] 제네릭 메소드를 애용하자. - 클래스를 제네릭화 하듯 메소드 또한 제네릭화 하면 좋다. 특히 static 유틸리티 메소드가 제네릭화의 좋은 후보이다. 제네릭 메소드는 제네릭 타입과 유사한 방법으로 작성한다. - 타입 매개변수를 메소드 선언부에 추가한 후 그 타입 매개변수를 메소드 내부에서 사용하면 된다. 타입 매개변수를 선언하는 타입 매개변수 목록은 return 타입 앞에 둔다. - 바운드 와일드 카드 타입 ( bounded wildcard types ) 를 사용하면 그 메소드를 더 유연하게 만들 수 있다. - 제네릭 메소드는 제네릭 생성자를 호출할 때 반드시 지정해야 하는 타입 매개변수 값을 명시적으로 지정할 필요가 없다. 컴파일러가 메소드 인자의 타입을 조사하여 타입 매.. 2016. 12. 1.
반응형