WIL 5주차(지수) - 회원가입, 로그인
web진행사항
- 회원가입
- 로그인 (세션, 쿠키 사용하기)
소스코드는 깃 허브 에서 보실 수 있습니다.
느낀 점
고민했던 부분
- login, signup 과정에서 id, password Policy를 어떻게 정할지 고민하였다.
- 패스워드를 정규식 검증을 이용해 검증하려고 만들었다가, 팩토리 패턴으로 검증하여 넘겨주는 방식으로 수정하기 위해 코드를 밀었다.
- 팩토리 패턴을 공부하며 로직을 만들어봤는데 너무 문제가 많아 다시 코드를 들어내고 푸쉬해놓은 상태
팩토리 패턴
출처 : https://woovictory.github.io/
- 장점
- 추상화 의존 가능하다 (DIP)
- 정규식을 통하여 작성하면 test 코드를 만들기 힘든데, password policy라는 인터페이스를 구현하여 팩토리로 묶어주게 되면, 수정에 용이하고, 검증 가능한 테스트 생성이 가능하다.
- loginId를 팩토리를 통해 생성하기 때문에 LoginId의 접근 제어를 패키지 프라이빗으로 생성가능하다
- 단점
- 정규식을 사용하면 간단하게 해결할 수 있는 검증 단계를 이렇게 까지 클래스를 많이 만들어가며 사용해야 할까?
- 클래스가 많아져 싱글톤을 사용하지 않는다면, 검증 할 때 마다 많은 클래스 객체를 생성해야 한다.
- 해결 방법 static 메소드를 만들어 검증하는 방법 생각해 적용 해볼 계획이다.
- 현재 loginId, password를 raw한 String 값으로 사용하기 때문에 팩토리를 적용하기 위해선 모두 클래스로 분리가 필요해진다.
결론
- 현재 진행하는 클론 코딩을 2주 안에 완성해야 하기 때문에, 의존성과 응집도 등을 고려하여 코딩을 하다보면 너무 진도가 못나가는 것 같아서, 패키지 구조를 기존 Layer를 기준으로 나눴던 방식으로 돌려놓고 다시 진행할 계획입니다.