Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 오블완
- 국비지원
- UpstageAILab#국비지원
- 패스트캠퍼스업스테이지에이아이랩
- 업스테이지패스트캠퍼스
- UpstageAILab
- 패스트캠퍼스
- 패스트캠퍼스업스테이지부트캠프
- 티스토리챌린지
- 패스트캠퍼스AI부트캠프
Archives
- Today
- Total
김민주
[TIL] 241114 본문
Do - List
- 코드카타
- 회원 정보 수정 기능 - @ToBuilder 오류 해결
- 회원가입 유효성 검사 추가
- 회원 정보 수정 및 회원 탈퇴 시 출력 문구 통일
- 팀원 코드리뷰 + Merge (Conflicts 해결)
@Builder, @ToBuilder
User에 @Setter가 아닌 @Builder를 사용하여 구현하는 도중, toBuilder가 인식이 안 되는 오류가 발생했습니다.
@Builder 어노테이션에는 다음과 같이 'toBuilder' 속성을 지정할 수 있습니다. (default = false 이므로 오류가 발생한 것)
해당 속성을 지정하게 되면 아래와 같이 toBuilder() 메서드를 사용할 수 있으며, 해당 메서드는 기존 객체 인스턴스의 값으로 초기화되는 필더를 가져옵니다.
따라서 toBuilder() 메서드는 기존의 인스턴스를 기반으로 builder를 사용하여 일부 값을 변경할 때 활용할 수 있습니다.
* 참고 자료: https://wildeveloperetrain.tistory.com/298
* 관련 이슈: https://github.com/projectlombok/lombok/issues/1244
회원가입 유효성 검사
프로젝트 필수 구현 기능 중 사진의 체크 표시된 부분을 구현하기 위해 유효성 검사를 추가합니다.
- 기존 코드
public void signup(SignupRequestDto signupRequestDto) {
String username = signupRequestDto.getUsername();
String password = passwordEncoder.encode(signupRequestDto.getPassword());
...
- 수정된 코드
public void signup(SignupRequestDto signupRequestDto) {
String username = signupRequestDto.getUsername();
String password = signupRequestDto.getPassword();
// username 유효성 검사: 4~10자, 소문자 알파벳과 숫자로만 구성
if (!username.matches("^[a-z0-9]{4,10}$")) {
throw new IllegalArgumentException("아이디는 4자 이상 10자 이하이며, 알파벳 소문자와 숫자로만 구성되어야 합니다.");
}
// password 유효성 검사: 8~15자, 알파벳 대소문자, 숫자, 특수문자 포함
if (!password.matches("^(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!@#$%^&*()])[A-Za-z\\d!@#$%^&*()]{8,15}$")) {
throw new IllegalArgumentException("비밀번호는 8자 이상 15자 이하이며, 알파벳 대소문자, 숫자, 특수문자를 포함해야 합니다.");
}
password = passwordEncoder.encode(password);
...
기존에는 password를 받고 바로 암호화를 했는데, 유효성 검사를 해야하므로 암호화 하는 부분을 검사 이후로 뺐습니다.
'STUDY > TIL' 카테고리의 다른 글
[TIL] 241118 - EC2에서 Docker Compose하기 (3) | 2024.11.18 |
---|---|
[TIL] 241115 - Mockito 기반 테스트 코드 작성 (1) | 2024.11.15 |
[TIL] 241113 (0) | 2024.11.14 |
[TIL] 241112 - AI API 키 발급 및 테스트 (2) | 2024.11.12 |
[TIL] 241111 (0) | 2024.11.11 |