🫠 패키지 구조
도메인 별로 나눈 이 패키지 구조.. 이대로 괜찮은가?
🧨 문제점
- 화면 하나하나가 여러 도메인이 너무 엮어 있어서 어디에 책임을 줘야 될지에 대해서 논란의 여지가 많다.
- 해당 화면은 개인 페이지긴 하지만 게시글까지 조회하고 있음
- 하지만 PostService 에서 이미 MemberGiver를 참조 하고 있기 때문에, MemberService에서 PostGiver를 참조하면 순환 참조 문제가 발생됨
- 이를 위해 일단 MemberController에서 PostService를 참조하는 것으로 진행 중…
ex) 인스타그램 개인 페이지
✨ 해결 방법은…?
- 화면(UseCase) 별로 분리한다..?
🐶 Image Upload
- ImageManager
- 클래스 명은 이미지 인데, 이미지 관련된 검사가 없다.
- 이미지 등록까지 트랜잭션으로 묶는 것이 맞는 것인가.
- create에 for문 부분은 어떻게 할 것인가.
- 객체로 묶어서 stream을 돌리는 방법 1
- …?
- 이미지 업로드로 넘겨줄 때, ServerFileName & Path를 나눠서 넘겨주는 부분
- 두개를 합쳐서 넘겨줘도 되지 않는가..?
- 추가적으로 Aws - S3로 대체될수도 있도록 Interface도 생각해보면 좋을 듯
- 다른 것으로 갈아끼울 수 있도록 구현하는 것도 좋을듯?
- But! Inteface를 너무 남용하는건 좋지 않음!
🔐 시큐리티 부분
- 멘토님 : 특정 경로는 필터를 스킵을 하거나 인증을 허용해줘야 하는데 이런 부분도 외부 설정으로 빼내어 사용할 수 있을 겁니다.


- Security - filterChain 설정 부분의 들여쓰기 컨벤션

이 부분도 코딩 컨벤션과 같은 곳에 규칙을 문서화 하는건 어떨지..?
원래는 들여쓰기를 최대 몇개로 제한을 했지만, 이 부분은 어쩔 수 없으니 이렇게 하겠다..? 🤔
멘토님 : 이런 컨벤션도 맞춰주세요. 원래라면 메소드 체이닝은 한줄에 한개로 제한하지만, 아래와 같은 경우에는 “XX에 대한 설정 비활성화” 라는 의미이므로 예외 적으로 한줄에 두 메소드를 사용한다던가 예외라도 컨벤션을 정하세요.

🪬 프로젝트 설정
- Keyword
- Git 설정
- 아니면 private 하게 가져가라..?
- 설정이 외부로 노출되지 않아야 한다.
👏 멘토님 말씀
- 문서를 만드는 것도 중요하지만 계속해서 Update 해 나아가는 것도 중요하다! (예시로 스프린트 규칙이나 Git 컨벤션 같은 경우도 이야기를 나누면서 수정하는?)
- Stream, Generic, Interface 익숙해지기도 꾸준히 하는것을 추천 (하루 10분씩만 투자할 것)
- 회고하고 바로 다음 스프린트를 진행하는 것보다는 회고를 하고 스프린트는 그 날까지는 남겨 넣고, 그 다음날 스프린트 시작하는 것을 추천
- 로그인 안해도 페이지 볼 수 있는 부분도 있었으면 좋겠다. 😎