회원 계정 도메인
① 기존 ERD(게시글, 댓글)에 회원 계정 도메인 설계를 반영한다.
각 게시글과 댓글이 유저 계정을 인식하게 끔 연관 관계를 설정한다.
② 회원 계정 도메인을 구현한다.
③ 회원 계정 Repository를 생성한다.
④ data.sql : INSERT문을 통해 테스트용 회원 계정 데이터를 DB에 넣는다.
⑤ REST API 테스트 코드 : 회원 정보는 API로 노출하지 않기 위해 모든 http 요청에 대응하는 테스트를 작성한다.
모든 http 메서드에 대해 404 not found가 발생하는지 확인한다.
로그인 페이지(Spring Security)
Spring Security가 자동으로 생성하는 로그인 페이지를 이용한다.
① 의존성을 추가한다.
start.spring.io > Gradle Project(v) > ADD DEPENDENCIES... > 검색 : spring web, spring security, thymeleaf
> EXPLORE > implementation : 복사 + 붙여넣기(security, thymeleaf-extras-springsecurity5 만)
thymeleaf-extras-springsecurity5 : spring security와 thymeleaf를 함께 넣어야 만 추가되는 의존성
② Gradle의 변경 사항을 적용한 후 Application Server를 재 실행한다.
Load Gradle Changes : [Ctrl + Shift + O]
[Services] Application Server Reboot : [Ctrl + Shift + F10]
③ 로그인 기능을 구현하지 않은 상태이므로 SecurityConfig를 통해 모든 요청에 대해 인증이 열리도록 설정한다.
https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter
클래스 상속 방식(구) > 빈 컴포넌트 방식(현)
④ Application Server를 재실행한 후 localhost:8080/articles에 접근하여 로그인 화면이 뜨지 않는지 확인한다.
Build Project : [Ctrl + F9]
localhost:8080/articles
⑤ 인증과 관련된 테스트를 위해 인증 관련 컨트롤러 테스트 코드를 생성한다.
⑥ "[GET] 로그인 페이지 - 정상 호출" 테스트 코드를 작성한다.
스프링 시큐리티가 자동으로 생성한 로그인 컨트롤러를 테스트 한다.
⑦ 전체 테스트 코드를 실행하여 문제없이 통과되는지 확인한다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
#패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완
'Java > [패스트캠퍼스] 50일 포트폴리오 챌린지' 카테고리의 다른 글
[27일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (1) | 2023.09.03 |
---|---|
[26일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (0) | 2023.09.02 |
[24일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (0) | 2023.08.31 |
[23일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (0) | 2023.08.30 |
[22일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) (0) | 2023.08.29 |