팀 프로젝트를 진행하면서 계속 사용하고있는 Builder와 Mapper에 대해 정리해보려고 합니다.
[Builder]
@Builder는 빌더 패턴을 자동으로 생성해주는 기능을 제공합니다.
우선 빌더 패턴이란? -> 객체를 생성할 때 매개변수가 많고 복잡한 경우 객체를 더 쉽게 생성하기 위한 디자인 패턴입니다.
@Builder 어노테이션을 사용하면 해당 어노테이션이 붙은 클래스의 빌더를 자동으로 생성해줍니다. 이를 통해 코드를 더 간결하게 작성할 수 있으며, 가독성을 높이고 객체 생성 시 발생할 수 있는 실수를 줄일 수 있습니다.
@Builder 어노테이션을 사용할 때 형식은 아래와 같습니다. 아래 코드를 예시로 확인해보죠!
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Person {
private String name;
private int age;
private String address;
}
// 사용 예시
Person person = Person.builder()
.name("홍정욱")
.age(27)
.address("경기도 용인시")
.build();
위 코드에서 볼 수 있듯, @Builder 어노테이션을 달아둔 클래스에 값을 입력할 때 .builder() --- .builder();로 2개의 builder() 사이에 값을 넣어주면 됩니다. 이러한 빌더를 사용하여 Person 객체를 만들 때 각 필드에 대한 메서드를 체인 형태로 호출하여 속성 값을 설정하고 build() 메서드를 호출하여 최종적으로 객체를 생성합니다.
[Mapper]
Mapper란 주로 데이터를 한 형식에서 다른 형식으로 변환하는 역할을 수행하는 클래스 또는 컴포넌트를 의미합니다. 주로 객체 간의 매핑(mapping)을 담당하는데 사용됩니다.
자바에서는 주로 데이터베이스와 객체 간의 매핑에 사용되는 ORM(Object-Relational Mapping) 프레임워크에서 Mapper를 사용합니다. 이러한 ORM 프레임워크에서 Mapper는 SQL 쿼리나 데이터베이스의 특정 테이블에 대한 매핑 정보를 담고 있는 인터페이스나 클래스를 가리킵니다. 이를 통해 데이터베이스와 자바 객체 간의 변환 작업을 쉽게 할 수 있습니다.
또한, DTO(Data Transfer Object)와 같은 객체 간 데이터 전송을 담당하는 클래스를 말하기도 합니다. 이러한 Mapper는 주로 서로 다른 시스템 간의 데이터 전송이나 통신 시에 객체 간의 변환을 담당하며, 데이터의 구조를 맞추고 매핑하는 역할을 수행합니다.
위 내용을 짧게 정리하자면, Mapper는 데이터 형식이나 구조를 변환하는데 사용되며, 이를 통해 데이터의 이동과 변환을 효율적으로 처리할 수 있도록 도와준다 고 할 수 있습니다.
오늘은 예전에 강의때 배우긴 했지만 본격적으로 사용하고있는 Builder와 Mapper를 정리해 봤습니다. 내일도 새로운 내용들을 정리하면서 복습하는 느낌으로 작성해 보겠습니다!
'개발노트' 카테고리의 다른 글
최종 팀 프로젝트(7) - 네이버 소셜로그인 (0) | 2024.01.15 |
---|---|
최종 팀 프로젝트(6) - 카카오 소셜로그인 (0) | 2024.01.13 |
최종 팀 프로젝트(4) - 커밋 안했을때 실수 돌이키기 (0) | 2024.01.09 |
최종 팀 프로젝트(3) - 인터페이스 분리 (0) | 2024.01.08 |
최종 팀 프로젝트(2) - 서면 피드백 후 SA수정 (0) | 2024.01.05 |