HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🧑🏻‍💻
박진형
/
🌲
Resume - 형욱 (1)
/
🤔
프로젝트 자세히보기
/
🛩️
프로젝트 관리
/
🏉
패키지 구조, 이미지 업로드, 설정 정보 관리, 멘토님 말씀
🏉

패키지 구조, 이미지 업로드, 설정 정보 관리, 멘토님 말씀

생성일
Nov 19, 2022 09:26 AM
tag
Property
🫠 패키지 구조🧨 문제점✨ 해결 방법은…?🐶 Image Upload🔐 시큐리티 부분🪬 프로젝트 설정👏 멘토님 말씀
 

🫠 패키지 구조

도메인 별로 나눈 이 패키지 구조.. 이대로 괜찮은가?

🧨 문제점

  • 화면 하나하나가 여러 도메인이 너무 엮어 있어서 어디에 책임을 줘야 될지에 대해서 논란의 여지가 많다.
    • ex) 인스타그램 개인 페이지
    • 해당 화면은 개인 페이지긴 하지만 게시글까지 조회하고 있음
    • 하지만 PostService 에서 이미 MemberGiver를 참조 하고 있기 때문에, MemberService에서 PostGiver를 참조하면 순환 참조 문제가 발생됨
    • 이를 위해 일단 MemberController에서 PostService를 참조하는 것으로 진행 중…
 

✨ 해결 방법은…?

  • 화면(UseCase) 별로 분리한다..?

🐶 Image Upload

  • ImageManager
    • 클래스 명은 이미지 인데, 이미지 관련된 검사가 없다.
    • 이미지 등록까지 트랜잭션으로 묶는 것이 맞는 것인가.
    • create에 for문 부분은 어떻게 할 것인가.
      • 객체로 묶어서 stream을 돌리는 방법 1
      • …?
    • 이미지 업로드로 넘겨줄 때, ServerFileName & Path를 나눠서 넘겨주는 부분
      • 두개를 합쳐서 넘겨줘도 되지 않는가..?
    • 추가적으로 Aws - S3로 대체될수도 있도록 Interface도 생각해보면 좋을 듯
      • 다른 것으로 갈아끼울 수 있도록 구현하는 것도 좋을듯?
      • But! Inteface를 너무 남용하는건 좋지 않음!

🔐 시큐리티 부분

  • 멘토님 : 특정 경로는 필터를 스킵을 하거나 인증을 허용해줘야 하는데 이런 부분도 외부 설정으로 빼내어 사용할 수 있을 겁니다.
    • notion image
      notion image
  • Security - filterChain 설정 부분의 들여쓰기 컨벤션
    • notion image
      이 부분도 코딩 컨벤션과 같은 곳에 규칙을 문서화 하는건 어떨지..?
      원래는 들여쓰기를 최대 몇개로 제한을 했지만, 이 부분은 어쩔 수 없으니 이렇게 하겠다..? 🤔
       
      멘토님 : 이런 컨벤션도 맞춰주세요. 원래라면 메소드 체이닝은 한줄에 한개로 제한하지만, 아래와 같은 경우에는 “XX에 대한 설정 비활성화” 라는 의미이므로 예외 적으로 한줄에 두 메소드를 사용한다던가 예외라도 컨벤션을 정하세요.
      notion image
 

🪬 프로젝트 설정

  • Keyword
    • Git 설정
    • 아니면 private 하게 가져가라..?
    • 설정이 외부로 노출되지 않아야 한다.

👏 멘토님 말씀

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