HashMap은 내부에서 어떻게 동작하는가? HashMap은 Map 인터페이스의 해시테이블을 기반으로 한 구현입니다. 이 구현은 모든 map 연산을 제공하고, null 값과 null 키를 허용합니다. 이 클래스는 map의 순서를 보장하지 않습니다. Java HashMap은 null 키와 null 값을 허용합니다. HashMap은 순서가 지정된 컬렉션이 아닙니다. 키 집합을 통해 HashMap을 반복할 수는 있지만, HashMap에 추가되는 순서를 보장하지는 않습니다. HashMap은 비동기화되고 null 값을 허용한다는 점을 제외하면 Hashtable과 거의 유사합니다. HashMap은 맵 엔트리를 저장하기 위해 내부 클래스인 Node를 사용합니다. HashMap은 버킷 또는 빈(bin)이라고 불리는 여..
어제 드디어 유데미에서 "Spring Boot 3 & Spring Framework 6 마스터하기!" 강의를 완강하였습니다. 총 38시간 정도의 긴 강의라, 12월 말부터 듣기 시작했는데 3월 말에 겨우 끝냈네요. 약 3개월 정도의 긴 수강 기간이었습니다. 이번 포스팅에서는 해당 강의의 전체적인 커리큘럼과, 추천 대상, 완강 후기 등을 소개하겠습니다. 이 강의를 들을지 말지 고민하는 분들께 도움이 되는 글이 되면 좋겠네요. 배울 내용 당연히 제목부터 Spring이 들어간 만큼, Spring Boot와 Spring 내용이 강의의 중심이 됩니다. 그 외에도 React.js, Javascript의 기술 스택으로 어드민 프론트를 구성하는 방법, Maven과 Gradle의 빌드 툴, Docker와 AWS 등의 D..
지난번에는 코드트리가 어떤 사이트인지, 어떤 커리큘럼을 가지고 있고 코드트리의 특별한 기능은 어떤 게 있는지 살펴보았습니다. [후기] 알고리즘 학습을 위해 선택한 "코드트리" (1) 이번에는 코드트리에서 어떤 식으로 학습을 진행하는지 알아보겠습니다. 학습 단계 코드트리 학습 단계는 크게 세 단계가 있어요. 개념을 익힐 수 있는 "기본 개념" 문제로 연습해 볼 수 있는 "연습 문제" 실제로 내가 풀어보는 "테스트" 각각의 단계에 대해 더 자세히 알아보겠습니다. 기본 개념 말 그대로 기본 개념을 알려주는 단계입니다. 그렇다고 이론만 알려주는 것은 아니고 문제로도 연습해 볼 수도 있어요. 왼쪽 화면에서 기본 개념을 알려줍니다. 꽤 상세하게 알려주니 개념을 학습하기에 무리는 없어요. 기본문제에서는 입력 형식 /..
이벤트 중심 아키텍처의 세계에서 효율적인 소통을 위해서는 적절한 메시지 브로커를 선택하는 것이 중요합니다. 가장 인기있는 두 개는 Kafka와 RabbitMQ이며, 각각 장단점이 있습니다. 이 두개는 비슷한 기능을 수행하지만 서로 다른 아키텍처, 성능 및 사용 사례를 가지고 있습니다. 여기서는 두 브로커의 아키텍처 차이점과 성능을 비교하고 Kafka와 RabbitMQ의 몇 가지 일반적인 사용 사례를 살펴봅시다. 아키텍처 [Kafka] Apache Kafka는 높은 처리량 및 실시간 데이터 처리 기능으로 유명한 오픈 소스 분산 이벤트 스트리밍 플랫폼입니다. Kafka는 프로듀서가 메시지를 작성하고 컨슈머가 해당 주제를 구독하여 메시지를 받는 pub-sub 모델을 따릅니다. Kafka는 메시지를 분산 커밋 ..
ChatGPT에게 실생활 시나리오를 포함하여 Java Streams API를 가르쳐 달라고 부탁했습니다. 이 글에서 ChatGPT가 얼마나 잘 해냈는지 보실래요? 기본 직원 클래스 만들기 Prompt 1: create an employee class with multiple data fields, make sure to include a list, a map, dates and numbers along with Boolean and string. (list, map, dates와 numbers, boolean, string을 포함한 여러 데이터 필드로 직원 클래스를 만들어 줘) import java.util.Date; import java.util.HashMap; import java.util.List;..
시스템 디자인은 복잡하고 하나의 디자인이 모든 경우에 적합한 것도 아닙니다. 아래에서 면접에서 사용할 수 있는 유용한 규칙을 공유하겠습니다. 📌 읽기가 많은 시스템의 경우- 캐시 사용을 고려 📌 쓰기가 많은 시스템의 경우 - 비동기 처리를 위해 Message Queue 사용 📌 낮은 지연시간을 요구하는 경우 - 캐시 및 CDN 사용을 고려 📌 ACID 원칙이 필요한 경우 - RDBMS/SQL DB로 이동 📌 비정형 데이터의 경우 - NoSQL DB로 이동 📌 복잡한 데이터(비디오, 이미지, 파일)의 경우 - Blob/Object 저장소로 이동 📌 복잡한 사전 계산이 필요한 경우 - Message Queue & 캐시를 이용 📌 대용량 데이터 검색 - 검색 인덱스, 트리 또는 검색 엔진을 고려 📌 SQL 데..
NullPointerException 위험을 줄이려면 메서드에서 null 값을 반환하지 않도록 노력하세요. 값이 없는 경우를 전달하기 위해서는 Optional, 빈 컬렉션, 또는 에러 핸들링을 사용하는 것과 같은 대체 전략을 사용하십시오. 📌 null을 반환하는 대신, Optional을 사용하여 값의 부재를 명시적으로 표현하는 것을 고려하세요. 이를 통해 클라이언트는 값이 있는 경우와 없는 경우를 모두 처리할 수 있습니다. import java.util.Optional; // A service class that may or may not find a user class UserService { // Simulating a method that may or may not find a user by ID ..
Topic 5: Hibernate/Spring-data Jpa/Database(SQL or NoSQL) 이 토픽에서는 Hibernate JPA 프레임워크가 등장하는 데이터 계층을 다룹니다. 면접관이 데이터베이스 담당자라면 그에 관련해 더 깊이 물어볼 수 있습니다. [토픽] JPA 레파지토리 엔티티들의 관계 SQL 쿼리 관계형과 비관계형 DB 개념 DB에서의 CRUD 연산 join, indexing, procs, functions [질문] SQL과 NoSQL의 차이는 무엇인가요? 데이터베이스의 샤딩이 무엇인가요? JPA란 무엇인가요? 부모-자식 관계란 무엇인가요? 조인이란 무엇인가요? 관련된 아티클1, 아티클2 Topic 6: 코딩 자바 코딩 토픽에서는 스트림 API를 사용하여 코드를 작성하는 것이 중요하..
지금 참가하고 있는 개발자 모임에서 코드트리와 협업하는 이벤트가 생겼습니다. 솔직한 후기 글만 작성하면 무료로 체험할 수 있다는 말에 얼른 신청을 하였습니다. 꼭 코딩테스트를 위한 준비라기보다는 부족했던 알고리즘 지식을 조금 더 보충할 수 있는 좋은 기회가 될 거라 기대하였습니다. 코드트리는 어떤 사이트인가요? 코드트리는 알고리즘 공부나 코딩테스틀 위한 학습 사이트입니다. 사이트에 들어가보면 가장 먼저 커리큘럼이 소개되어 있습니다. 총 6개의 레벨로 구성되어 있습니다. 여기서 1레벨은 무료로 학습할 수 있으니 결제가 고민된다면 한 번 체험해 보고 결정하시는 것을 추천드립니다. 어떤 커리큘럼을 고를지 고민돼요 이렇게 레벨이 많으면 좋긴 한데, 지금 내 실력에 어떤 커리큘럼을 공부하면 좋을까 고민이 되더라구..
면접을 통과한다는 것은 일반적으로 두 번의 씨름을 통과함을 의미합니다. HR과의 면담은 보통은 더 쉽습니다. 대부분의 사람들이 어려움을 겪는 것은 기술 면접입니다. 특히 대기업과 IT 회사는 일반적으로 인터뷰 하나당 약 1시간을 확보합니다. 자바는 배울 것이 많은 방대한 주제입니다. 자바 외에도, 면접관들은 여러분의 프로젝트, 아키텍처, 클라우드 컴퓨팅, 쿠버네티스 등에 대해 물어볼 것입니다. 다룰 것이 너무 많아요! 🤮 그래서 기본기를 잘 익히고 코딩 실력을 연습하는 데 집중해야 합니다. 각 주제를 철저히 다루면서 차근차근 진행해 나가도록 하겠습니다. 이제 1시간의 면접을 시작한다고 가정하겠습니다. 각 주제에 대해 8~10분을 배정해 면접을 진행하고, 면접관으로서 어떤 질문을 할 것인지 알아보겠습니다...