<aside>
▪️ 2024. 1. 19 (금) 오후 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>
- 질문 1
- 서버에 실행중인 프로세스가 없는데, 도메인을 입력하면 화면의 띄워집니다.. 원인이 뭔지 한번 봐주실 수 있으실까요..
- 질문2
- 저희 팀은 Jwt 토큰 기반 인증과 OAuth 인증 로그인을 인증 방식으로 채택하여 구현해놓은 상황입니다.
Refresh 토큰 구현도 완료하여 정상 작동됨을 확인했는데, 몇 가지 걸리는 부분이 있어 여쭙습니다.
-
JwtTokenProvider의 쓰임
- 인증을 요구하는 대다수의 api에서 Access토큰을 검증하기 위해,
JwtTokenFilter에서 JwtTokenProvider의 검증 메서드를 호출하고 있습니다.
- 그리고 OAuth 인증이 성공했을 때, 로그인의 응답에 해당 유저 정보를 기반의 JwtToken을 발급해 주기 위해,
OauthSuccessHandler에서, JwtTokenProvider에 구현된 JwtToken 발급 메서드를 호출하고 있습니다.
- 또한 Refresh토큰 기반으로 Access토큰을 재발급해줄 때도,
AuthController에서 JwtTokenProvider의 메서드를 호출하고 있습니다.
- 위 세 경우에서 JwtTokenProvider를 모두 다른 클래스에서 활용하고 있는데, 이런 쓰임이 적절한 것인지 의문이 듭니다.
-
OAuthSuccessHandler
- Spring Security의 oauth2Login()를 활용하여 OAuth 인증을 구현했습니다.
- OAuth 인증을 한 응답을 OAuth2UserService에서 인증 객체로 담고,
이 인증된 객체를 OAuthSuccessHandler에서 경우를 나눠 응답을 반환하고 있습니다.
- 3가지 경우
*인증된 이메일로 조회된 계정이 없는 경우*
*인증된 이메일로 조회된 계정이 있으나, 다른 소셜로그인으로 가입한 경우*
*정상적으로 로그인 인증된 경우*
- OAuthSuccessHandler 캡쳐본
- 그러나 위 경우에 대해 응답을 싣는 로직이 SuccessHandler에 구현되는 것이 적절한 것인지 확신이 서지 않습니다.
filter에서가 아닌, Controller에서 인증 객체를 뜯어 검증하는 것이 더 적절하지 않나,,,
SuccessHandler에 조금은 과중한(?) 로직이 들어간 게 아닌가 하는 생각이 듭니다.
⇒ 리팩토링이 필요하다면 어떤 지점에서 필요한지 피드백 받고 싶습니다!
- 질문4
- orury-image 버킷에 도메인(review, post, user)별로 폴더 생성 후 이미지를 저장하려고 합니다.
이미지를 저장할 때 현재시간_유저ID 형태로 저장을 하려고 하는데 올바른 형식인지 궁금하며 현업에서는 어떤 형태로 S3에 이미지를 저장하는지 궁금합니다.
- 질문5
- 하나의 버킷에 이미지를 전부 담는 구조로 되어있는데 만약 하나의 버킷에 전부 담을 수 없는 상황이 생기면 어떤 방식으로 저장하는 것이 좋은 방법인지 궁금합니다.
-
질문6

- 해당 메서드는 S3 버킷에 업로드하는 메서드 입니다.
- 리뷰 : 생성, 수정, 삭제
마이페이지 : 프로필 수정
게시글 : 게시글 생성, 수정, 삭제
- 많은 기능에서 해당 메서드를 호출하고, 모든 기능들이 DB 정보를 수정하기 때문에 EntityListener를 활용하여 해당 메서드를 사용하는 것에 대해 어떻게 생각하시는지 궁금합니다.
- Controller Layer에서만 서버통신이 이루어지는 것 같은데 S3 버킷과 통신하는 로직이 다른 Layer에서 사용되어도 문제가 없을지 궁금합니다.