Java 21의 Virtual Thread: 운영체제 개념과 효율성, 장단점 정리
Java 21에서 도입된 Virtual Thread의 동작 원리를 운영체제의 멀티프로그래밍·멀티태스킹·멀티스레딩 개념과 연결해 설명하고, 장단점과 활용 시나리오를 정리합니다.
Java 21에서 도입된 Virtual Thread의 동작 원리를 운영체제의 멀티프로그래밍·멀티태스킹·멀티스레딩 개념과 연결해 설명하고, 장단점과 활용 시나리오를 정리합니다.
Java에서 멀티스레드 프로그래밍 시 발생하는 레이스 컨디션의 원인을 예제로 살펴보고, synchronized·Lock·Atomic을 활용한 해결 방법을 정리합니다.
JVM 메모리 구조와 가비지 컬렉션의 동작 원리를 정리하고, Serial GC부터 G1 GC, ZGC까지 주요 GC 알고리즘의 특징을 비교합니다.
jstat으로 GC 상태를 모니터링하는 방법과 Young/Old/Metaspace 영역별 증상에 따른 GC 튜닝 기준을 정리합니다.
Java의 함수형 인터페이스 Supplier의 개념과 사용법, 지연 초기화(Lazy Initialization)에 활용되는 이유를 예제로 정리합니다.
레거시 QnaService의 삭제 로직을 도메인 모델로 옮기는 리팩터링 과제와 그에 대한 리뷰 피드백을 정리합니다.
익명 클래스를 람다로 바꾸고 스트림의 map, filter, reduce와 Optional을 활용해 리팩토링한 학습 기록입니다.
Set 컬렉션을 대상으로 학습 테스트를 작성하고 JUnit5의 ParameterizedTest로 중복 코드를 제거한 기록입니다.
들여쓰기 depth와 메서드 크기 제한, else 금지 조건 아래 문자열 사칙연산 계산기를 구현한 과제와 리뷰 피드백을 정리합니다.
문자열 덧셈 계산기를 TDD로 구현하고 리뷰 피드백에 따라 상수화, 책임 분리, 예외 처리를 리팩토링한 기록입니다.
사다리 게임에 참여자 이름을 출력하는 기능을 구현하고, 생성자 책임 분리와 제네릭 활용에 대한 리뷰 피드백을 정리합니다.
사다리 게임 실행 결과를 출력하는 기능을 구현하고, 유틸리티 클래스 분리와 명령·조회 책임 분리에 대한 리뷰 피드백을 정리합니다.
자동차 경주 게임을 처음 구현하며 View 책임 분리와 축약어 지양, 경계값 테스트에 대한 리뷰 피드백을 정리합니다.
자동차 이름과 우승자 판별 기능을 추가하며 원시값 포장과 일급 컬렉션 설계에 대한 리뷰 피드백을 정리합니다.
자동차 경주 코드를 MVC 패턴으로 리팩터링하며 사용자 정의 예외와 전략 패턴 적용에 대한 리뷰 피드백을 정리합니다.
넥스트스텝 수강신청 미션에서 DB 설계 없이 도메인 모델부터 TDD로 구현하며 받은 리뷰 피드백을 정리합니다.
for문 대신 자바 Stream을 활용해 리스트·맵 변환, 중복 체크, null 처리, reduce 등을 정리한 예제 모음입니다.
자바의 익명 클래스가 무엇인지 살펴보고, 중복 코드를 익명 클래스로 리팩토링하는 예제와 인터페이스 구현 방식, 사용 시 얻을 수 있는 이점을 정리합니다.
@JsonIgnoreProperties(ignoreUnknown=true) 어노테이션으로 정의되지 않은 JSON 프로퍼티를 무시해 역직렬화 오류를 방지하는 방법을 정리합니다.
Collectors.toMap()에서 키가 중복될 때 발생하는 Duplicate Key 예외와 Merge Function으로 해결하는 방법을 정리합니다.
NPE를 예방하기 위해 사용했던 null 체크, partition, Function.identity() 방어 코드를 모아 정리합니다.
프록시 서버를 거쳐 이미지를 받아오는 코드에서 방어 코드와 예외 처리가 부실해 발생한 NPE를 해결한 과정을 정리합니다.
회원 등록·수정·조회 API를 예제로, 엔티티 대신 DTO를 사용해 API 스펙과 엔티티를 분리하는 방법을 정리합니다.
스프링 부트 내장 톰캣 환경에서 서블릿을 등록하고, HttpServletRequest와 HttpServletResponse로 요청과 응답을 다루는 방법을 정리합니다.
서블릿과 JSP만으로 회원 관리 애플리케이션을 만들어보며 한계를 확인하고, 컨트롤러·모델·뷰로 역할을 분리하는 MVC 패턴을 적용합니다.