HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🍗
[New] 조규현팀
/
인스타뀨램
인스타뀨램
/
🚠
UseCase, 시퀀스 다이어그램, 패키지 구조
🚠

UseCase, 시퀀스 다이어그램, 패키지 구조

생성일
Jun 14, 2022 11:04 AM
tag
Property
유스케이스 draw.io 로 옮기고 링크 걸어놨습니다. 확인부탁드려요패키지 구조 설계 (개발자) - 혜빈 🤔 멘토님께 여쭤볼 질문 사항시퀀스 다이어그램 형식 통일하기멘토님 말씀url path 형식 정하기 Reponse 형식 정하기예외처리 형식 정하기🐶 성공 예시👾 실패 예시 (예외처리 응답)
 
 
  • branch 전략 정하기(개발자)
    • 나중에 멘토님이 가이드 주실 예정
    •  
  • 커밋 단위 나누기 (개발자)
    • test : Following 단위테스트(repository, service ,controller),
    • test : Follwing 통합테스트
    • feat : Following 개발
    •  
  • 회원 가입 기능이 개발 되어야 백로그도 작성되는거 아닌가?
    • 뼈대 코드 (진형)
      • // https://mvnrepository.com/artifact/com.google.guava/guava implementation group: 'com.google.guava', name: 'guava', version: '31.1-jre' // https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.12.0' // https://mvnrepository.com/artifact/commons-io/commons-io implementation group: 'commons-io', name: 'commons-io', version: '2.11.0'
    • 도메인만 있으면 훼이크로 가능하다 !
 

유스케이스 draw.io 로 옮기고 링크 걸어놨습니다. 확인부탁드려요

패키지 구조 설계 (개발자) - 혜빈

도메인 // global 패키지도 따로 가져가야할지?
  • exception // 도메인별로 exception 패키지를 또 따로 가져가야하나?
  • security // member만 사용하는 기능이라 어디에 둘지 생각을 해봐야한다.
  • configuration
post
  • controller
  • service
  • domain
    • Post
    • PostRepository
  • dto
  • user
  • comment
  • commentLike
  • follow
  • likePost
  • likeComment
  • image
 
  • security는 configuration으로
  • API Response, ErrorResponse는 패키지 어디에 둘지..?
    • 지금 드는 생각은 global/dto/apiresponse..?
    • exception도 global/exception??
    • global/exception/ErrorResponse
  • 자바 개발환경 (17)
    <장점>
    • 패키지를 나누는 것의 목표는 비슷한 모듈을 하나의 디렉토리에 구성해서 업무적 응집도를 높이는데 있습니다.
    • 도메인 별로 패키지를 나누고 하나의 디렉토리로 구성하여 응집도를 높일 수 있습니다.
    • 필요한 파일을 찾을 때도 도메인 별로 쉽게 찾을 수 있습니다. → 개인 차이
     
    <단점>
    • 기능이 늘어나고 도메인 간의 경계가 모호해질 경우 분류하기가 어려워집니다.
      • ⇒ 저희 팀의 경우 파격적으로 기능이 늘어나지 않고, 도메인이 정확히 나와있기 때문에 명확하게 분류할 수 있습니다
    • 프로젝트에 대한 이해도가 낮을 경우 전체적인 구조를 파악하기 어렵습니다.
      • ⇒ 저희 팀은 프로젝트에 대한 이해도가 높습니다 !
     
    • 깃 레포 만들기 (SM,PO) → 가이드 대로 LINK
    ➡️
    • 작업 레포는 백엔드ORG에서 생성합니다.
    • 도중에 필요한 권한이 생기면 #스펜서-실험채널 에서 남겨주세요.
    • DTO 관습 규칙
      • notion image
    • 테스크 분할 (? 멘토님에게 물어보기) → 논의
    • API 명세, 시퀀스 다이어그램 정하기 → 각자 테스크 분할로 이루어진
      • 3시까지 !!! 해오세요
     
     
    남는 시간
     
     

    🤔 멘토님께 여쭤볼 질문 사항

     

    시퀀스 다이어그램 형식 통일하기

    멘토님 말씀

    • 프론트도 생각해서 도메인위주로 생각하자 !
    • 추가 안건
      • Rest Docs or Swagger 기술비교? (개발자 직책이 조사를 해보자!)
        • 둘다 사용한다면 어떤걸 더 중심으로 할지 정하기 ! 프론트를 생각한다면 Swagger 그게 아니라면 RestDocs
         
    • 도메인 방식으로 할지? (결정)
      • 장점 : 가독성이 좋다, 휴먼 리소스 적다 (상대적으로),
      • 단점 : 덜 세부적이다.
    • 레이어 방식으로 진행할지?
      • 장점 : 자세하다
      • 단점 : 가독성이 떨어질 수 있다. , 휴먼 리소스가 든다.
     

    url path 형식 정하기

    • prefix
      • /api/v1/posts vs /api/posts(결정)

    Reponse 형식 정하기

    • HttpStatus 코드 응답값에 따로 담아줄 것인가?
      • 일단 빼는걸로 !

    예외처리 형식 정하기

    🐶 성공 예시

    // 단일건 { "response": { "id": 3000001, "barcode": "49319927-68ed-4bc3-b022-6c099195f48c", "itemId": 10, "qty": 1 }, } // 다중건 { "response": [ { "id": 3000000, "barcode": "12cbf5bf-2c96-4172-acb6-4c24a853d255", "itemId": 6, "qty": 1 }, { "id": 3000001, "barcode": "49319927-68ed-4bc3-b022-6c099195f48c", "itemId": 10, "qty": 1 } // ... ], }

    👾 실패 예시 (예외처리 응답)

    { "code" : V0001 "message" : 간단 메시지 }
    코드
    내용
    v0012
    아이디값 오류
    v1231
    비밀번호 오류