본문 바로가기

💻 개발 이야기/Java, Kotlin2

[Kotlin] value class를 활용해서 "원시 값과 문자열을 포장하라" 성능 최적화하기 안녕하세요! 이번 글에서는 "모든 원시 값과 문자열을 포장하라" 원칙에 대해 알아보고, Kotlin으로 성능 최적화 하는 방법에 대해 알아보겠습니다. 요약 객체지향 생활체조의 "모든 원시 값과 문자열을 포장하라" 원칙을 Kotlin으로 구현할 때 value class를 '잘' 활용하면 불필요한 오버헤드를 줄일 수 있습니다. 생성 성능 측정 결과, 유의미한 차이는 없었습니다. 참조 및 연산 성능 측정 결과, value class가 일반 클래스보다 약 32% 느렸습니다. JVM Heap dump를 분석한 결과, value class가 일반 클래스에 비해 약 58%의 공간만 차지했습니다. 이 글에서 얻을 수 있는 것 객체지향 생활체조의 "모든 원시 값과 문자열을 포장하라" 원칙을 이해할 수 있다. Kotlin.. 2023. 12. 10.
[Kotlin] 코루틴 이해를 위한 배경 지식 안녕하세요. 황진성입니다. 최근에 이직을 했고, 합류한 팀에서 비즈니스 로직 틈틈이 코루틴을 사용하는 것을 확인했습니다. 저는 비동기, 병렬 처리 등에 대해서 제대로 공부하거나 사용해 본 적이 없어서 코드를 명확하게 이해하는 것이 힘들었습니다. 단순히 공식 문서에서 예제 한두번 돌려보고 대충 이해하고 쓰기만 했습니다. 꼼꼼히 코드 리뷰를 해주실 때 잘못 사용된 부분을 알려 주시긴 하는데, 언제까지 이렇게 개발할 수 없었습니다. 이 참에 코루틴에 대해 어느 정도 자세히 알아보고자 합니다. 코루틴과 코루틴을 감싸고 있는 이야기를 모두 해볼까 하는데, 여러 개의 포스트로 나눠서 차근차근 정리해 보겠습니다. 1편에서는 "코루틴을 감싸고 있는 이야기"에 집중해서 이야기해보겠습니다. 동시성(Concurrency)과.. 2023. 6. 24.