Latte 개발일지 : 7. Question, Interview List, Interview 개발

이동건·2021년 9월 8일
1

Latte

목록 보기
7/9

지금까지 포스트에 대한 구현을 해 왔다. 이제 Question에 대한 구현을 Post를 약간만 바꿔서 완료해 주자!

우선 테스트코드를 작성해 준다.


Post 클래스에서 다음처럼 QnA 생성 메서드를 만들어준다.

PostService에서 Qna를 만들 수 있도록 생성해준다.

그리고 다음처럼 qna를 등록할 수 있도록 post와 똑같이 만들어 주었다.

테스트를 실행해보자!


정상적으로 동작하는 걸 확인할 수 있었다.

이제 interview list 화면을 만들어주자.

다음처럼 각 인터뷰에 대한 좋아요, 북마크 수, 여부, 태그들, 타이틀, 컨텐츠를 가져오도록 한다.


우선 다음과 같이 테스트를 작성해 주었다.

InterviewSearchCondition부터 만들어주자.

그리고 InterviewListDto를 만들어 주었다.

그리고 InterviewRepositoryCustom 안에 메서드를 정의해 준다.

그리고 구현해준다.


전체적으로 post와 비슷하게 구현하였다.
InterviewListDto에 맞는 데이터를 QueryDsl로 불러왔다.
카운터쿼리는 역시 따로 작성하여 최적화하였다.


테스트가 통과하는지 확인한다.

초록 막대가 나타는 것을 확인했다!

이제 적합한 api를 작성해주도록 하자.

http://localhost:8080/api/v1/interviewListRecent?page=0&size=7&userId=1 으로 요청을 보내니 다음과 같이 데이터가 잘 오는 걸 확인할 수 있었다.

이번엔 리퀘스트 페이지를 만들어주자.


새로 인터뷰 할 시니어에게 질문할 수 있는 페이지이다.
간단하게 타이틀과 본문으로 이루어져있다.

다음처럼 새로운 도메인을 만들어주었다.
간단하게 사용자, 인터뷰, 타이틀과 컨텐츠로만 구성하였다.
딱히 사용자가 수정 / 삭제를 하지는 않는 부분이라 isDeleted를 넣지는 않았다.

그럼 테스트 코드를 작성해 주자.

그럼 SeniorRequestRepository를 만들어준 후 service에서 createSeniorRequest를 작성한다. SeniorRequestRepository는 Spring Data Jpa가 제공하는 기본 메서드만 사용할 예정이니 따로 쓸 코드는 없다.


다음과 같이 작성한 후 테스트를 실행해 본다.

잘 동작하는 걸 확인할 수 있었다.
그럼 api를 작성해 주도록 한다.

다음처럼 작성하였고
http://localhost:8080/api/v1/seniorRequest
로 요청했을 때

다음과 같이 잘 나타나는 걸 확인할 수 있었다.

이제 인터뷰 상세 화면을 구현한다.

내부의 대화 부분은 텍스트가 아닌 이미지로 대체하기로 하였으며 이미지 관련된 부분은 아마존 s3를 사용하므로 그냥 String 값으로 처리해 주면 된다.
아래의 추천은 추후에 변경될 가능성이 있으므로 위의 상세와 아래의 추천 두 개로 나누어 구현한다.

우선 테스트 코드를 작성해준다.

우선 InterviewDetailDto부터 만들어준다.


다음과 같이 인터뷰 detail에서 필요한 내용을 dto로 만들어주었다.

이제 이 dto를 불러올 수 있게 loadInterview를 만들어준다.

테스트를 통과하는지 확인한다.

야호! 초록막대!
잘 동작하는 걸 확인할 수 있었다!

이제 api를 작성해 준다.

다음과 같이 작성해 주었다.
http://localhost:8080/api/v1/interview?userId=1&interviewId=5
요청을 보내자 다음과 같이 잘 결과가 나타나는 걸 확인할 수 있었다.

이제 하단부의 인터뷰 추천을 구현해주자.
우선 테스트 코드를 작성한다.

구현해 주었다.

그리고 만

profile
코드를 통한 세계의 창조

0개의 댓글