티스토리 뷰
Study/FastCampus
[Java Project] Part 2. 게시판 서비스 만들기 - 로그인 페이지 기능 테스트 및 게시판 페이지 기능 구현
코딩하는 앤지 2023. 9. 5.728x90
반응형
1. 로그인 페이지 기능 테스트
(1) 로그인 페이지 테스트
- 이전에 springsecurity의 의존성을 미리 설정을 해두었다.
- 새로운 시큐리티 설정 방법은 공식 문서에서도 찾아볼 수 있다.
- https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter
- 관련 테스트는 모든 요청에 대해 인증이 열리도록 설정한 것이다.
- 이때 Auto configuration 설정이 이동되어서 http에 빨간 밑줄이 생긴다.
- localhost:8080/login에서 로그인 페이지가 잘 작동되고 있는지 확인할 수 있다.
- 보장되는 기능이기 때문에 최소한의 테스트만 해도 괜찮다.
(2) GitKraken을 사용하여 깃프로젝트 정리
- 모든 테스트가 작성되었을 때, 다음 이제까지 커밋된 내용들이 많은 것을 확인할 수 있다.
- 코드리뷰를 하기에 사이즈가 매우 커질 때 사용할 수 있는 방법이 있다.
- Main 브랜치와 같은 위치에 새로운 feature 브랜치를 생성한다.
- 예를 들어 페이지 구현 작업은 #21번 이슈였기 때문에 feature/#21이라고 해줄 수 있다.
- 이후 페이지 기능 테스트 관련 내용에 대한 pull request를 feature/#21에다가 하는 것이다.
- 코드리뷰를 하고 merge를 해주면 #21번 브랜치에 #21번 서비스 개발 내용이 담기게 된다.
- 개발을 이어나갈 때는 혼란을 피하기 위해서 기존의 브랜치를 다시 사용하지 않고 #21 브랜치 위치에서 새로운 브랜치를 생성하여 구현을 하면 될 것이다.
- 중간중간 코드리뷰를 완료한 뒤 #21번에 해당되는 모든 구현을 마쳤을 때, main 브랜치로 merge하게 되면 비교적 안전하게 구현 단계를 넘어갈 수 있을 것이다.
- 즉, 이와 같은 방법을 통해 코드리뷰의 부담을 분할할 수 있다.
2. 게시판 페이지 기능 구현
(1) 게시판 페이지 구현
- 테스트 내용을 보면서 필요한 내용을 구체적으로 구현해 간다.
- searchArticles (여러 개 조회)
- null 이나 내용이 비어 있을 때는 모든 게시글을 불러온다.
- Swich를 사용하여 searchType에 따라 keyword를 검색할 수 있도록 구현한다.
- 부분 검색이 가능하도록 Containing을 사용한다.
- serchArticle (단 건 조회)
- article id를 사용하여 한 개의 글만 조회한다. 이때 만약 에러가 난다면 게시글이 없습니다라는 EntityNotFoundException을 던져준다.
- saveArticle
- dto.toEntity를 활용하여 단순하게 save를 할 수 있다.
- updateArticle
- Id를 사용해 article을 불러오고 내용을 업데이트하고 다시 저장하는 과정을 해야하는 부분인데, findById를 사용하면 select 쿼리가 발생한다. 그렇지 않기 위해서는 getReferenceById를 사용할 수 있다.
- 또한 참고로 save 제외할 수 있는데, 트랜젝션이 끝날 때 변경된 내용을 인지하고 update 쿼리가 실행되기 때문인다.
- 없는 게시글일 경우에는 EntityNotFoundException을 try catch로 남겨준다.
- deleteArticle
- 지원해주는 deleteById 메소드를 사용하면 쉽게 삭제 가능하다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
#패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완
728x90
반응형
'Study > FastCampus' 카테고리의 다른 글
[Java Project] Part 2. 게시판 서비스 만들기 - 게시글 및 로그인 페이지 기능 구현 (0) | 2023.09.07 |
---|---|
[Java Project] Part 2. 게시판 서비스 만들기 - 게시판 페이지 기능 구현 (0) | 2023.09.06 |
[Java Project] Part 2. 게시판 서비스 만들기 - 게시판 페이지 세부 기능 테스트 (0) | 2023.09.04 |
[Java Project] Part 11. 자소서 작성 팁 (0) | 2023.09.03 |
[Java Project] Part 2. 게시판 서비스 만들기 - 로그인 페이지 생성 & 디자인 (1) | 2023.09.02 |
댓글