<aside>
▪️ 2024. 1. 26 (금) 오후 17시 00분~오후 17시 30분 - 권태관 멘토님
</aside>
1️⃣ 프로젝트 현황 공유
<aside>
💡 프로젝트 매니징을 위해 사용 언어, 역할 분담, 프로젝트 진행 현황 등을 우선적으로 공유해주세요
✔️ 원활한 멘토링을 위해 미리 작성해주시면 감사드리겠습니다❗
✔️ 필요시 이미지/링크/파일 등을 활용해도 좋습니다.
✔️ 멘토링 종료 후, 해당 템플릿을 수정/삭제 하지 말아주세요. 🚫
</aside>
<aside>
▪️ 프로젝트 깃허브 링크
https://github.com/Kernel360/f1-Orury-Backend (백엔드)
https://github.com/Kernel360/f1-Orury-Client (프론트엔드_Client)
https://github.com/Kernel360/f1-Orury-Admin (프론트엔드_Admin)
</aside>
2️⃣ 멘토링 요청사항
<aside>
💡 ✔️ 질문 내용이나 갯수에는 제한이 없습니다:)
✔️ 효과적인 멘토링을 위해 히스토리, 요청사항 등을 최대한 상세하게 작성해주세요.
</aside>
-
질문2
- 리뷰에 대한 반응을 다음과 같이 생성/수정과 삭제 두 개의 API로 나누고 있습니다.

- 그런데, 프론트로부터 하나의 API로 생성/수정/삭제 가 가능하냐는 요청이 들어왔습니다.
- 이유는, 리뷰하나당 반응은 하나만 남길 수 있는데, 다음과 같은 분기처리가 프론트 로직이 복잡해지기 때문입니다.
- 반응이 없는데 생성하는 경우
- 1번 반응이 존재하고, 2번 반응으로 바꾸려고 하는 경우
- 기존 반응을 제거하는 경우
- 이 경우 모두 분기처리를 해야 하기 때문에 하나로 통합해달라는 것인데, 이를 통합하기엔 다음과 같은 문제가 존재합니다.
- 하나의 API가 생성/수정/삭제를 전담하기에 책임이 많아짐
- 생성/수정은 PUT인데 삭제는 DELETE기에, RESTful 하지 않은 API가 됨
- 이러한 문제 해결이 가능한 하나의 API로 개발하는 방법이 있을까요?
- 퍼사드 패턴… 적용 검토
- 둘 중 하나가 손해를 감내해야한다.
-
질문3
- 소셜로그인 개발을 진행했습니다.
- 소셜로그인을 진행하고, 소셜 정보 기반으로 저희 서비스의 회원 시스템과 비교를 하는데요, 여기서 아래와 같이 분기처리가 진행됩니다.
- 여기서 if문으로 분기처리를 진행하고 있어서 코드가 길어지고 가독성이 떨어지는 문제가 있는데, 객체지향적인(?) 코드로 리팩토링을 진행하면 훨씬 깔끔하게 할 수 있을 것 같습니다만, 감이 잘 안잡혀서 조언을 얻고자 합니다.

- 로그인 분기처리하는 역할을 하는 추상클래스를 만들고 얘를 상속받아서 거기서 구현?
- 여러 곳에서 호출하니까 퍼사드 패턴 적용 검토해보기
- 질문4
- JwtTokenProvider을 아래와 같은 코드로 구현을 했는데, 테스트코드 작성에 어려움을 겪고 있습니다.
- 코드
- 특히, parseToken()의 경우에는 private 접근제어자로 처리되어 있는데,
이와 같이 private 메서드는 따로 이 메서드만 테스트해야 할지, 아니면 다른 메서드에서 호출하는 것만으로도 테스트 해도 될지 궁금합니다.
- 그리고 parseToken()을 할 때, SecretKey를 활용하는데, 실제 토큰을 파싱할 수 있는 SecretKey를 써야지만 테스트가 가능합니다.
} catch (final MalformedJwtException | IllegalArgumentException exception) {
- 질문5
- 로그인에 관한 테스트코드를 작성해야 하는데, 소셜로그인 기반으로 회원시스템을 제공하고 있어서 어떤 방식으로 테스트코드를 짜야할지 감이 잘 안잡힙니다. 코드를 한번 봐주시면서 어떻게 짜야할지 방향성을 잡아주시면 감사하겠습니다.
"<https://kauth.kakao.com/oauth/token>",
- 요런 url property로 빼서 관리해주기