-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[feature] 회원가입 API #14
Conversation
객체 선언만 해주어서 nullPointerException 발생, Bean으로 등록하여 관리
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JisooPyo님! 리뷰 남겼습니다.
많이 배워갑니다. 수고 많으셨어요!
src/main/java/com/snsIntegrationFeedService/user/controller/UserController.java
Outdated
Show resolved
Hide resolved
src/main/java/com/snsIntegrationFeedService/user/service/PasswordValidation.java
Outdated
Show resolved
Hide resolved
src/main/java/com/snsIntegrationFeedService/user/service/UserService.java
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
패턴매칭, 유사 비밀번호 체크
private boolean containPrivateInformation(String account, String email, String password) { | ||
int atIndex = email.indexOf("@"); | ||
String id = email.substring(0, atIndex); | ||
|
||
return password.contains(account) || password.contains(id); | ||
} | ||
|
||
private boolean followRules(String password) { | ||
boolean numberEnglish = Pattern.matches("^(?=.*[0-9]+)(?=.*[a-zA-Z]+).+", password); | ||
boolean englishSpecialSymbol = Pattern.matches("^(?=.*[a-zA-Z]+)(?=.*[!@#$%^&*]+).+", password); | ||
boolean specialSymbolsNumber = Pattern.matches("^(?=.*[!@#$%^&*]+)(?=.*[0-9]+).+", password); | ||
|
||
return numberEnglish || englishSpecialSymbol || specialSymbolsNumber; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
패턴매칭과 유사한 비밀번호 설정 체크를 이렇게 할 수 있군요 !
많이 배워갑니다 ㅎㅎ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
정규식은 언제 해도 너무 귀찮네요 흑흑
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR 승인
관련 Issue
변경 사항
Check List
트러블 슈팅
1. 컬럼 기본값 설정 오류 문제
User Entity에서 isAccessed를 다음과 같이 설정했는데,
UserService 에서 다음과 같이 User 객체를 @builder 로 생성한 다음, 저장하려고 했더니 오류가 발생하였다.
발생한 오류
찾아보니 내가 설정해 준 기본 값 false는 Java 객체 레벨에서 설정을 해 준 것이지, 데이터베이스 레벨에서의 초기화가 아니라고 한다.
User 테이블이 만들어지는 SQL문을 살펴보면 다음과 같이 기본값이 잡혀 있지 않음을 알 수 있다. Column에 기본값이 잡힌다면
is_accessed bit default false not null
이 되어야 한다.@ColumnDefault
를 사용하여 디폴트 값을 정해준 뒤, 나머지 필드를 생성자로 만들어서 객체를 생성한 뒤 DB에 저장한다.@Builder
를 통해 객체를 만들 때@Builder.Default
를 사용하여 isAccessed 필드를@Builder
의 Default 값으로 설정해준다.참고링크
2. NullPointerException
객체를 초기화해주지 않고 선언만 해서 PasswordValidation 객체가 null값이 되어서 해당 객체의 메서드를 불러오지 못한 것이 문제였다.
PasswordValidation을 Bean으로 등록한다.(의존성 주입)