본문 바로가기
won2dev-log
HomeArchiveTagsCategoriesAboutProjects
HomeArchiveTagsCategoriesAboutProjects
won2dev-logwon2dev-logwon2dev-log

비전공 개발자의 로그 | won2dev-log

Navigation
  • Home
  • Archive
  • About
  • Projects
Categories
  • Docs
  • TIL
  • Automation
  • Git · GitHub
  • Project
Tags
  • TIL
  • Java
  • Spring
  • Backend
  • n8n
더보기
About

기록을 거름 삼아 공유는 성장을 만든다.

LicensePrivacy
© won2dev 2026. All rights reserved.
Home›TIL›TIL - (3) Spring 어노테이션 정리: Lombok Getter, Setter와 생성자
TIL

TIL - (3) Spring 어노테이션 정리: Lombok Getter, Setter와 생성자

won2dev·2026년 04월 09일
#TIL#Spring

학습 키워드

  • Lombok (롬복)
  • Getter / Setter
  • @NoArgsConstructor, @AllArgsConstructor
  • @RequiredArgsConstructor (의존성 주입)

학습 한 내용

자바에서는 객체의 필드(데이터)를 외부에서 직접 수정하게 두지 않고, 메서드를 통해서만 접근하게 만드는 게 원칙이다. 하지만 모든 필드에 일일이 메서드를 만드는 건 노가다인데, 이를 Lombok이라는 라이브러리가 대신 해준다. 참고로 컴파일 시 코드가 생성되기 때문에 디버깅이 복잡할 수 있다

Getter와 Setter: 데이터의 출입문

  • @Getter: 변수 값을 가져올 때(Get) 쓴다. getUsername()처럼 "그 데이터 나한테 줘"라고 요청하는 문이다.
  • @Setter: 변수 값을 세팅할 때(Set) 쓴다. setUsername("철수")처럼 "이 값을 데이터에 저장해"라고 명령하는 문이다.
  • 왜 직접 안 쓰고 얘를 쓰나? 나중에 데이터에 제한을 걸고 싶을 때(예: 나이는 0보다 커야 함) 이 메서드 안에서만 로직을 수정하면 되기 때문에 유지보수가 편해진다.
  • 다만, 모든 필드에 Setter를 사용하는 것은 좋은 설계가 아니다. Setter는 객체의 상태를 무분별하게 변경할 수 있기 때문에 필요한 경우에만 사용해야 한다.

생성자(Constructor) 자동화

  • @NoArgsConstructor: 파라미터가 하나도 없는 기본 생성자를 만들어준다. JPA나 프레임워크가 객체를 만들 때 필수다.
  • @AllArgsConstructor: 모든 필드를 한 번에 채워서 객체를 만들 수 있는 생성자를 만들어준다.
  • @RequiredArgsConstructor: final이 붙은 필수 필드들만 모아서 생성자를 만들어준다. 주로 스프링에서 다른 서비스나 컴포넌트를 주입(DI)받을 때 필수적으로 사용한다.

공유하기
이전 글TIL - (4) Spring 어노테이션 정리: Mockito를 활용한 단위 테스트다음 글 TIL - (2) Spring MVC와 WebFlux의 차이: 블로킹과 논블로킹

목차

  • 학습 키워드
  • 학습 한 내용
  • Getter와 Setter: 데이터의 출입문
  • 생성자(Constructor) 자동화

카테고리

TIL

태그

#TIL#Spring

최근 글

Git 요약 (1) - Rebase, Stash, Squash MergeTIL - MSA 핵심 요소 정리TIL - (4) Spring 어노테이션 정리: Mockito를 활용한 단위 테스트TIL - (2) Spring MVC와 WebFlux의 차이: 블로킹과 논블로킹TIL - (1) Spring 아키텍처, Go랑 비교하며 이해한 것들