[내일배움캠프 Spring 4기] 53일차 TIL - UserDetailsImpl과 User | Builder 패턴

서예진·2024년 2월 26일
0

오늘의 학습 키워드

▸ 오늘의 코드카타
▸ UserDetailsImpl과 User
▸ Builder 패턴


▼ 오늘의 코드카타

2024년 2월 23일 - [프로그래머스] 29 : 할인 행사


✅ UserDetailsImpl과 User

[내일배움캠프 Spring 4기] 51일차 TIL - 투두앱 [todoParty] 리팩토링 | Global 예외처리 | Entity, DTO 테스트

  • 위의 TIL에서 UserDetailsImpl을 넘겨주는 것과 User Entity를 넘겨주는 것의 차이에 대해 의문을 남기고 글을 마무리 했었다.
  • 찾아본 결과, User를 넘겨주는 것이 더 좋다는 것을 알게되었다.
  • Controller 단에서 Service 단으로 User를 넘겨줘야할 때 UserDetailsImpl이 아니라 User를 넘겨주어야 한다.
  • 왜냐하면, 최대한 좁은 scpoe, 필요한 것들만 넘기는 것이 좋기 때문이다.
  • UserDetailsImpl 안에 User가 있기 때문에 User를 넘겨주는 것이 좋다.
  • 또한, UserDetailsImpl을 넘겨준다면 테스트 코드를 짤 때, mocking 해야하기 때문에 어려움이 있다.

✅ Builder 패턴

- Builder 패턴의 장점

  • 필요한 데이터만 설정할 수 있다.
  • 유연성을 확보할 수 있다.
  • 가독성을 높힐 수 있다.
  • 변경 가능성을 최소화할 수 있다.

- 사용법

  • Builder 패턴을 사용하는 방법 중 하나는 바로 lombok의 @Builder 어노테이션을 사용하는 것이다.
  • Builder 패턴을 사용하고자 하는 객체에 @Builder를 달아준다.

- 예시

@Builder
public class User {
	private String username;
        private String nickname;
        private String password;
}
  • 위와 같이 객체에 @Builder가 달려있다면 아래와 같이 사용하면 된다.
User user = User.builder()
			.username("username")
        	.nickname("nickname")
        	.password("12345")
        	.build();

profile
안녕하세요

0개의 댓글