
Java 에서 생성자 파라미터가 많거나 선택적 필드가 있을 경우 생성자나 정적 팩토리 메서드만으로는 가독성과 유지보수성이 떨어질 수 있습니다. 이럴 때 사용할 수 있는 패턴이 바로 Builder 패턴이며 이를 매우 간단하게 적용할 수 있도록 도와주는 것이 Lombok의 @Builder 어노테이션입니다.🛠️ 사용 방법@Builder 를 사용하면 아래 예시 코드처럼 가독성이 뛰어나고 간단하게 객체를 생성할 수 있습니다.@Builderpublic class Comment { private Long id; private String content; private Member member; private Article article; private Comment parent;}// 객..

Java 를 비롯한 현대 프로그래밍 언어는 대부분 객체지향(OOP)을 기반으로 설계됩니다. 개발자는 도메인 모델을 클래스로 정의하고 객체 간의 메시지를 주고받으며 시스템을 구축하게 됩니다.하지만 우리가 데이터를 저장할 때는 여전히 관계형 데이터베이스를 사용합니다. 이는 두 패러다임의 충돌을 야기합니다. 개발자는 데이터를 저장하기 위해 SQL 을 작성하고 객체를 직접 DB 와 연결하는 반복적인 코드를 작성하게 됩니다. 이 과정에서 객체 간의 책임과 협력이라는 객체지향의 핵심이 사라지고 데이터 저장과 조회 중심의 데이터 중심 설계로 바뀌게 됩니다.패러다임 불일치란 무엇일까?객체지향과 관계형 데이터베이스는 전혀 다른 개념과 철학을 기반으로 합니다.이를 흔히 "패러다임 불일치(Paradigm Mismatch)"..

Java 14 부터 도입된 record 키워드는 기존의 번거로운 데이터 클래스 작성 방식을 개선하기 위해 등장했습니다.이후 Java 16 에서 정식으로 안정화 되었고 현재는 간결하고 안전한 DTO 또는 Value Object 작성에 널리 사용되고 있습니다.왜 record 가 필요했을까?Java 14 이전에는 아래 예시 처럼 단순히 데이터를 담는 클래스를 만들기 위해 많은 Boilerplate 코드를 작성해야 했습니다.public class Person { private final String name; private final int age; public Person(String name, int age) { this.name = name; this.age = a..

Lombok 이란?Lombok 은 자바에서 보일러플레이트 코드를 줄여주는 라이브러리입니다. 자바 개발 시 반복적으로 작성해야 하는 보일러플레이트 코드는 개발자의 생산성을 저하시키는 주요 요인 중 하나입니다. Lombok 은 이러한 문제를 해결하기 위해 등장한 라이브러리로, Annotation을 사용하여 자동으로 코드를 생성해 주는 기능을 제공합니다. 예를 들어 getter/setter, equals, hashCode, toString 메서드와 같은 반복적인 코드를 자동으로 생성할 수 있어 코드가 더 깔끔하고 간결해집니다.Lombok 은 컴파일러에 훅(hook)을 걸어 자바의 컴파일 과정에 개입하기 때문 컴파일 시점에 작동하게 됩니다. 그리고 지정된 Annotation 에 따라 필요한 메서드나 필드를 자동..

SOLID 원칙 이란?로버트 마틴이 2000년대 초에 명명한 객체 지향 프로그래밍의 다섯 가지 기본 원칙을 마이클 페더스가 원칙의 앞 글자를 따서 다시 SOLID라는 이름으로 소개한 것입니다. SOLID 원칙은 객체지향 설계에서 유지보수성과 확장성을 높이기 위한 다섯 가지 설계 원칙을 의미합니다. 이 원칙들은 시스템을 더 유연하고 확장 가능하게 만드는데 중요한 역할을 합니다. SOLID 의 5가지 원칙SRP (Single responsibility principle) - 단일 책임 원칙OCP (Open/closed principle) - 개방 폐쇄 원칙LSP (Liskov substitution principle) - 리스코프 치환 원칙ISP (Interface segregation principle) ..