안녕하세요! 오늘은 Java의 Map 인터페이스를 구현한 여러 클래스들의 차이점을 깊이 있게 알아보려고 합니다. Map은 자료구조의 꽃이라고 할 수 있는데요, 각각의 특징과 장단점을 이해하면 우리가 만드는 프로그램의 성능을 크게 향상시킬 수 있습니다.Map 구현체 비교구현체검색 속도정렬 여부스레드 안전주 사용처HashMapO(1)❌❌일반적인 상황TreeMapO(log n)✅❌정렬이 필요한 경우ConcurrentHashMapO(1)❌✅멀티쓰레드 환경1. HashMap - 가장 기본적인 MapHashMap은 가장 일반적으로 사용되는 Map 구현체입니다. 내부적으로 '해시 테이블'이라는 자료구조를 사용하여 데이터를 저장합니다.public class HashMapExample { public static ..
안녕하세요! 오늘은 Java의 Set 컬렉션에 대해 자세히 알아보려고 합니다. 데이터 중복 제거나 고유 값 관리 상황에서 Set은 정말 유용한 도구인데요. 특히 최근 제가 진행한 프로젝트에서 사용자 활동 로그의 중복 제거 작업을 진행하면서 얻은 경험을 바탕으로 각 Set 구현체의 특징과 활용법을 공유하고자 합니다.1. 문제 상황: 데이터 중복 제거와 순서 관리실제 프로젝트에서 마주친 다음과 같은 상황을 예시로 들어보겠습니다:사용자 활동 로그에서 중복된 이벤트를 제거해야 하는 상황상품 카테고리를 자동으로 정렬해서 보여줘야 하는 상황장바구니에 담은 상품의 순서를 그대로 유지해야 하는 상황이러한 요구사항들을 효과적으로 처리하기 위해 각각 다른 Set 구현체를 사용할 수 있습니다.2. Set 구현체별 특징과 ..
블로그에 프리프로젝트 회고글을 쓴지 꽤나 많은 시간이 지났다 그동안 메인프로젝트(깃헙링크)가 시작되고 마무리되었다. 그 이후 커리어 세션을 통해서 이력서 작성법, 자기소개서 등에 대한 내용을 배우고 코드스테이츠 백엔드 부트캠프의 6개월 과정을 모두 수료했다. 그동안 프로젝트를 통해서 알게 된 내용들에 대해서 블로그로 너무 정리하고 싶었는데 사실 엄청나게 긴장하며 몰입했던 메인프로젝트가 끝나니 팽팽했던 고무줄을 탁 놓은 것처럼 마음이 풀린 것과 아내가 메인 프로젝트 동안 굉장히 힘들어했다. 직장으로 따지면 밤낮 없는 야근하는 남편을 한달동안 옆에서 지켜본 거니 눈 앞에 있는데 여러모로 단절되어있는 것이 정서적으로나 육아를 홀로 담당하며 누적된 육체적 피로도 굉장히 높았을 것이다. 2주 동안은 가족과의 시간..
드디어 모든 교육과정이 끝나고 기대와 설렘으로 시작한 프리프로젝트가 시작되고 끝났다. 사실 프로젝트 중간에도 글을 쓰고 싶었는데 팀장, 프로젝트, 가정, 육아의 콜라보가 나를 쉴 틈 없이 몰아붙여서 중간 기록을 남기지 못한게 아쉽다. 하지만 그래도 끝 마무리를 지으며 경험과 깨달음들을 두서 없이 적어내려 한다. (아마 나중에 다시보고 정리 하지 않을까 싶다) 프리프로젝트의 주제는 개발자들이 한번 이상은 신세졌다는 'stack overflow' 사이트를 클론코딩 하는 것이었다. 팀은 랜덤으로 배정되었고 우리팀은 모두가 비전공자 출신의 팀이었다. 나는 프론트도 독학이지만 그래도 스스로 개인 프로젝트를 해보면서 비동기 통신으로 서버에 API 요청을 보내 데이터를 받아 가공해서 간단한 기능들을 구현해본 경험이 ..