본문 바로가기

전체 글68

[java] EnumMap 정리 EnumMap 파헤치기회사에서 프로젝트를 진행하다가 EnumMap으로 상태관리하는 선임님의 코드를 보고 문득 파헤쳐보고 싶어졌습니다.EnumMap개요EnumMap이란?Enum 타입의 상수를 키(Key)로 사용하기에 최적화된 자료구조내부적으로 배열(array)을 기반으로 구현되어 있어 일반 HashMap과는 차이가 존재합니다.HashMap과 비교HashMap은 키에 제약이 없지만, EnumMap는 오직 Enum 타입의 상수만을 키로 사용할 수 있습니다.HashMap은 null을 키로 허용하지만 EnumMap은 허용하지 않습니다.HashMap의 내부구조는 해시테이블로 구현되어있지만, EnumMap은 배열을 사용하여 구현됩니다.일반적으로 Enum을 키로 가진다면 EnumMap의 성능이 더 압도적입니다.둘다 스.. 2025. 7. 15.
7월의 목표 7월 중순에 적는 7월의 목표책 IT 엔지니어를 위한 네트워크 입문 자바 최적화 왜 그들만 부자가 되는가트러블 슈팅 정리 1회 포스팅 1회 (Elastic Search 운영시 겪었던 일)키워드 정리 1회 EnumMap 2025. 7. 15.
Spring Kafka + Apache Avro Spring Kafaka에서 Avro Message를 사용할 때 발생할 수 있는 에러를 핸들링하는 방법을 학습할 것이다. Poison Pill이란 개념을 알아야하는데, Poison Pill은 메시지를 받았을 때 알 수 없는 본문이나 포맷 이슈 등으로 문제가 발생하는 상황을 말한다. 이런 경우 계속해서 재시도처리하는게 아닌, 이 메시지를 받아서 적절하게 잘 처리해야한다. Avro로 인코딩된 메시지를 수신했을 때 Poison Pill이 발생할 수 있다. 예를 들어서 consumer는 Avro로 인코딩된 데이터를 원하지만 producer에서 StringSerializer를 사용해 메시지를 보냈다면 문제가 발생할 수 있다. 이런 경우 " Unknown magic byte" 라는 메시지를 포함한 에러를 발생.. 2025. 7. 4.
이번 dnd13기 지원자 서류를 읽으면서.. 서류를 읽으면서.. dnd13기 운영진에 참여하게되었다. 원래 10기때 참여하긴 했는데, 인력관리가 생각보다 나랑 안 맞는걸 알았고 내가 정말 부족하다고 느껴서 1년정도 운영진을 쉬면서 내공을 쌓았다. 그 결과 서류를 검토하면서 안 보이던 것들이 보이기 시작하고 지원자들의 논리의 어긋남, 커밋들을 보면서 어떤 방식을 사용했는지 등 눈에 더 익어왔다. 이번에는 약 70개의 서류를 읽었다. dnd 운영진을 다시 한 이유 dnd 운영진에 참여한 이유는 여러가지가 있는데, 사실 지원자 서류를 읽으려고도 있어서 이 글에 포함하게 되었다. 원래 사람들을 도와주는 것도 좋아하지만, 결국 도와주려면 여러가지 방향성 제시를 해줘야하는데 나는 이 방향성을 제시하려면 내가 먼저 그 길에 가보았거나 또는 뛰어난 지식이 있어서.. 2025. 6. 30.
Java21에 나온 ZGC-Generation적용해보기 요즘 자바최적화란 서적을 읽고 있다.가비지컬렉터에 대한 얘기가 나오는데, Java21에서 Generation-ZGC가 나오게 되면서 많은 개선이 있었으니 기본 G1GC에서고성능 실시간 처리, 비동기처리, 로그 수집등의 경우 ZGC를 고려해보는 것도 좋지않나해서 마침 지금 만들고 있는 프로젝트에 적용해볼까한다. 지금 적용해보는 프로젝트는 외부와 통신도 많고 WebFlux로 구성되다보니 비동기 처리할 일도 많다. 또한 소켓연결을 통한 실시간처리도 필요한 부분도 있어서 활용하면 좋겠다 생각했다.적용법간단하다. JVM옵션에-XX:+UseZGC -XX:+ZGenerational -Xlog:gc이렇게 적어주면 된다. 다만 -Xlog:gc는 내가 실행되었는지 여부를 파악하기 위해 추가한 것이므로 필요없으면 적지 않아.. 2025. 6. 18.
[개발책]클라우드 네이티브 서평 책 제목: 클라우드 네이티브책 출간일: 2020-06-23출판사: 한빛 미디어저자: 보리스 숄내 주관적인 평점: ★ ★☆ ☆ ☆ 이 책은 클라우드 네이티브 틀을 마련해주긴하지만 뭔가 공식화된 얘기들로 다뤄진다.거의 키워드 중심으로 설명되며, 번역도 매끄러운편은 아니라 가독성을 해쳤다. 용어들이 많이 나오는데, 용어에 대해 독자가 어느정도 알고 있음을 기반으로 시나리오를 그려나가다보니 어려운 부분이 많았다.이스티오, 시타텔, 파일럿, 믹서 이런 단어들이 나오는데 이스티오는 써봤다해도 다른 것들은 처음보는 단어, 솔루션인데 저런 솔루션을 사용하면 어떤 시나리오에는 좋다는 등의 이야기를 하니 공감이 되지 않아서 빠르게 넘겨진 부분도 많았다. 비슷하게 aws나 Azure의 어떤 서비스들이 어떤 시나리오에 좋게 .. 2025. 6. 12.