본문 바로가기
[Effective Kotlin] Item 49: Prefer Sequence for big collections with more than one processing step 이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서 Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다. # Iterable 과 Sequence 를 동일한 것으로 보기 쉽다. 하지만 Sequence 는 lazy 하게 작동하며, terminal operation 을 만나면 작동한다. 반면 Iterable 은 중간과정에서 collection 을 계속 만들어낸다. # sequence 를 사용함으로써 갖는 장점은 아래와 같다. 자연적인 순서를 보장한다. 최소한의 작업을 한다. 무제한이 가능하다. 매번 collection 을 만들지 않는다. Order is important # sequence.. 2022. 6. 10.
[Effective Kotlin] Item 48: Eliminate obsolete object references 이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서 Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다. # 미사용 object 에 대해 null 을 세팅해주자. function type 의 경우 variable capture 효과가 있으므로 더 유용하다. # state 를 갖게 되면 항상 메모리 관리를 신경써야 한다. # 가독성 좋은 코드가 일반적으로 메모리 릭에도 안전한 편이다. 읽기 어려운 코드가 메모리 릭을 더 못 발견하게 하며, CPU 도 낭비하곤 한다. 그러므로 가독성 좋은 코드를 작성하도록 하자. # Cache 를 사용할 때는 SoftReference 를 잘 활용하도록 하.. 2022. 6. 9.
[Effective Kotlin] Item 47: Consider using inline classes 이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서 Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다. # function 뿐만 아니라 single value 를 가진 class 도 inline 될 수 있다. class 앞에 value 을 붙여주면 된다. (돼왕 : 책에는 inline 으로 나오지만, inline modifier 는 deprecated 되고 value 로 변경되었다. value class Name(private val value: String){ /../ } # value class 안에 있는 함수들은 static method 로 치환된다. # 일반적으로 value .. 2022. 6. 8.
[Effective Kotlin] Item 46 : User inline modifier for functions with parameters of functional types 이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서 Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다. # inline modifier 를 붙여주면 컴파일 단계에서 호출하는 부분을 inline 이 정의된 구현으로 변경해준다. 이 동작은 아래의 장점을 가진다. type argument 가 reified 될 수 있다. 더 빠른 수행이 된다. non-local return 이 허용된다. 물론 단점도 있는데 이는 나중에 알아본다. A type argument can be reified # Java 가 처음부터 generic 을 가지고 있던 게 아니었다. J2SE 5.0 버전과 함께 2004.. 2022. 6. 7.
[Effective Kotlin] Item 45: Avoid unnecessary object creation 이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서 Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다. # 동일 내용의 string literal 과 값이 작은 Boxed primitive 는 동일 JVM 안에서 재사용된다. (Integer cache 는 -128~127 의 숫자를 들고 있다.) # Int? (nullable) primitive type 은 null 을 받아들여야 하기 때문에 Integer 로 사용되고, Int 의 경우 primitive int 가 사용된다. Is object creation expensive? # Objects 는 추가 공간을 점유한다. 64-bit.. 2022. 6. 6.
[책 정리] 방관자와 참여자 - 지금 이대로 좋다. - 우리 주변을 보면 정치든 종교든 자기만 옳다고 외치는 극단적인 사람들이 있는데 정치는 종종 그런 극단적인 소수에 의해 좌우됩니다. 왜 그럴까요? 그들은 행동하기 때문입니다. 반대로 신사적이고 합리적인 사람들은 인격적으로는 참 좋은데 사회 변화에는 큰 기여를 하지 못합니다. 내 옷에 흙탕물이 튈까봐 행동하지 않기 때문입니다. - 중도적인 사람들도 평화적으로 행동을 해야 합니다. 그래야 세상이 좋은 쪽으로 바뀔 수 있어요. - 더럽다고 피하지 말고 악쓴다고 같이 악쓰지도 말고 방관자에서 참여자로 삶의 태도를 바꿀 때 좀 더 나은 세상으로 나아갈 수 있습니다. 끝 2022. 6. 5.
[책 정리] 남이 한 말로 괴롭다면 - 지금 이대로 좋다. - 남이 한 말로 지금 내가 괴롭다면 그 말이 그 사람의 스트레스로 꽁꽁 뭉친 쓰레기라고 여겨보세요. 쓰레기는 받는 즉시 버려야 합니다. - 세상을 살다 보면 사람들이 나에게 쓰레기 봉지를 던져줄 때도 있어요. 받자마자 그냥 버리면 될 텐데 그걸 다 끌어 안고 다니면서 '아빠는 이런 쓰레기를 주었고, 엄마는 이런 쓰레기를 주었고, 선생님은 이런 걸 주었잖아' 라며 남 탓하는 게 우리 인생이에요. 끝 2022. 6. 4.
[책 정리] 내가 너무 미워요 - 지금 이대로 좋다. - 자기를 그리는 마음속의 상은 현실의 내 모습과 늘 차이가 있습니다. 그 차이가 크면 클수록 현실의 자기를 미워하고 자학하게 되는데 그럴 때 가장 소극적인 현상이 부끄러움을 느끼는 것입니다. - 자기가 별 것 아님을 자각하고 지나치게 높이 설정한 허상을 놓아버리는 좋은 방법은 엎드려 절하는 것입니다. 끝 2022. 6. 3.
[책 정리] 행복과 불행은 내가 만드는 것 - 지금 이대로 좋다. - 두 눈 다 잘보이던 사람이 한쪽 눈을 다치면 불행하다고 생각합니다. 하지만 앞을 못 보던 사람이 한쪽 눈이 보이게 되면 행복해하겠지요. 똑같이 한쪽 눈으로 세상을 보지만 그 조건이 한 사람에게는 불행이 되고 다른 사람에게는 행복이 됩니다. - 행복과 불행은 다른 사람이나 어떤 조건이 만드는 것이 아니라 내가 만들 때가 많습니다. 끝 2022. 6. 2.
반응형