HoneyByte

코드 리뷰 문화와 베스트 프랙티스 — 좋은 리뷰어와 좋은 작성자가 되는 법

효과적인 코드 리뷰는 작은 PR + 명확한 피드백 + 자동화 세 축으로 구성된다. Google의 eng-practices에 따르면 "리뷰어는 코드베이스 전반의 품질을 올리는 방향으로 승인하되, 완벽주의로 리뷰를 지연하지 말라"고 한다. 실무에서는 200줄...

HoneyByte

Spring Boot 테스트 전략 — @SpringBootTest부터 Testcontainers까지

Spring Boot의 테스트 전략은 피라미드 구조로 접근한다. 빠르고 가벼운 단위 테스트(Unit Test)를 기반으로, 웹 계층만 로딩하는 `@WebMvcTest`, 데이터 계층만 로딩하는 `@DataJpaTest` 등 슬라이스 테스트를 활용해 빌드 속도를 유지하면서 각 계층을...

HoneyByte

Spring Boot 예외 처리와 검증 — 커스텀 예외부터 RFC 7807까지

Spring Boot의 예외 처리 전략은 예외 계층 설계 → `@RestControllerAdvice` 전역 처리 → `@Valid` 입력 검증 → 일관된 에러 응답 4단계로 구성된다. 커스텀 예외는 `ErrorCode` 열거형으로 관리하고, `@ExceptionHandler`가 이를 잡아...

HoneyByte

Spring Data JPA — ORM, 관계 매핑, N+1 문제, QueryDSL 완전 정복

JPA(Java Persistence API) 는 객체-관계 매핑(ORM) 표준으로, SQL 대신 객체로 DB를 다룰 수 있게 한다. Hibernate가 JPA의 기본 구현체, Spring Data JPA가 그 위에 `JpaRepository`를 제공한다. N+1 문제는 1번 쿼리로...

HoneyByte

Spring Boot 레이어드 아키텍처 — Controller/Service/Repository 완전 해부

Spring Boot의 표준 3-Tier Layered Architecture는 `Controller → Service → Repository` 흐름으로 각 계층이 명확한 책임을 가진다. Entity는 DB 매핑 객체이고 DTO는 계층 간 데이터 운반 객체로 역할이 다르다 —...

HoneyByte

Spring Boot 의존성 주입과 IoC 컨테이너 — 원리부터 실전까지

IoC(Inversion of Control) 는 객체의 생성과 의존성 연결을 개발자가 아닌 프레임워크(컨테이너)가 담당하는 설계 원칙이다. DI(Dependency Injection) 는 IoC를 구현하는 구체적인 패턴으로, 객체가 직접 의존 객체를 `new`로 생성하지 않고 외부에서 주입받는다....

HoneyByte

DesignPattern: SOLID 원칙 완벽 가이드

SOLID 원칙은 로버트 C. 마틴(Uncle Bob)이 제안한 객체 지향 설계의 5가지 핵심 원칙으로, SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), ISP(인터페이스 분리 원칙), DIP(의존성 역전 원칙)를 의미합니다. 이 원칙들은...

HoneyByte

DevCulture: Git 워크플로우 마스터 — 브랜치 전략과 협업

Git 워크플로우는 팀의 규모, 프로젝트의 특성, 배포 주기에 따라 다양한 형태로 발전합니다. 이 포스트에서는 가장 널리 사용되는 Git Flow와 최근 각광받는 Trunk-based Development(TBD)를 심층적으로 비교하고, 각 워크플로우의 장단점 및 실제...