[팀 프로젝트-JPA 활용 게시판] branch 전략 및 패키지 구조

2025. 4. 14. 18:18·프로젝트/프로젝트 회고

Branch 전략

우리 조는 프로젝트 전에 어떤 branch 전략을 사용할 지 의논하였다.

5개의 큰 틀의 branch를 사용하는 Git-flow 전략 그리고 Git-flow의 복잡한 부분을 축소화 시킨 Github-flow 전략이 있는데, 아직 규모가 큰 프로젝트는 아니기도 하고 branch에서 작업하는 인원이 작기 때문에 축소화된 Github-flow 전략을 택하였다.

Github-flow 전략은 기본적으로 master branch에 대한 규칙만 정확하게 정립되어 있다면 나머지 가지들에 대해서는 특별한 관여를 하지 않으며 pull request 기능을 사용하도록 권장한다.

우선 API를 기반으로 기능별로 작업을 진행할 예정이기에 branch를 아래와 같이 나누었다.

  • post: 게시물
  • user: 회원
  • dev: 개발 branch
  • error: 에러 핸들러
  • like: 게시물 및 댓글 좋아요
  • follow: 회원 팔로우
  • comment: 댓글
  • auth: 로그인

 

기능 목록

사용자 관련 기능

  • 사용자 등록: 이메일, 비밀번호, 이름, 나이 입력
  • 사용자 로그인: 등록된 이메일과 비밀번호로 로그인
  • 사용자 로그아웃: 토글로 로그아웃 가능
  • 사용자 정보 조회: ID 또는 이름으로 검색
  • 사용자 정보 수정: 사용자 이름, 이메일, 나이, 비밀번호 수정 (수정된 정보: 이름, 나이 반환)
  • 사용자 삭제: ID와 비밀번호 입력하여 계정 삭제 (관련 데이터 삭제: 게시물, 좋아요, 댓글, 팔로우 관계)

게시물 관련 기능

  • 게시물 생성: 제목과 내용 입력 후 저장
  • 게시물 조회: 모든 게시물 또는 특정 게시물 조회 (ResponseEntity 형식)
  • 게시물 수정: 기존 게시물 제목과 내용 수정
  • 게시물 삭제: 본인의 게시물 삭제

댓글 관련 기능

  • 댓글 생성: 게시물에 댓글 내용 입력 후 저장
  • 댓글 조회: 원하는 게시물의 모든 댓글 조회 (ResponseEntity 형식, 페이징 기능 사용 가능)
  • 댓글 수정: 기존 댓글 내용 수정
  • 댓글 삭제: 본인의 댓글 삭제

팔로우 관련 기능

  • 팔로우 생성: 토글로 팔로우 생성
  • 팔로우 수정: 팔로우 토글 (true: 활성화, false: 비활성화)
  • 팔로우 조회: 자신이 팔로우하는 회원의 팔로워, 팔로잉 조회

게시물 좋아요 관련 기능

  • 게시물 좋아요 생성: 토글로 게시물 좋아요 생성
  • 게시물 좋아요 수정: 좋아요 토글 (true: 활성화, false: 비활성화)
  • 게시물 좋아요 조회: 해당 게시물의 좋아요 갯수 확인

댓글 좋아요 관련 기능

  • 댓글 좋아요 생성: 토글로 댓글 좋아요 생성
  • 댓글 좋아요 수정: 좋아요 토글 (true: 활성화, false: 비활성화)
  • 댓글 좋아요 조회: 해당 댓글의 좋아요 갯수 확인

 

패키지 구조

branch 뿐만 아니라 패키지 구조도 매우 중요하기 때문에 팀원들과 회의를 진행하였다.

패키지 구조는 도메인형 과  계층형이 나뉜다. 작은 프로젝트일땐 계층형이 간편하기 때문에 지금까지 계층형으로 많이 해왔지만 팀 협업상 도메인형이 더 효율적이고 가독성도 올라갈 것 같아 도메인형 으로 패키지 구조를 구성했다.

└─newsfeed
    │  NewSfeedApplication.java                # 애플리케이션 시작점
    │
    ├─board
    │  ├─controller
    │  │      BoardController.java              # 게시판 관련 요청 처리
    │  │
    │  ├─dto
    │  │      BoardResponseDto.java              # 게시판 응답 DTO
    │  │      CreateRequestDto.java              # 게시판 생성 요청 DTO
    │  │      CreateResponseDto.java             # 게시판 생성 응답 DTO
    │  │      LikesResponseDto.java              # 게시판 좋아요 응답 DTO
    │  │      PageResponseDto.java               # 페이지네이션 응답 DTO
    │  │      PeriodRequestDto.java              # 기간 요청 DTO
    │  │      UpdateRequestDto.java              # 게시판 수정 요청 DTO
    │  │
    │  ├─entity
    │  │      Board.java                          # 게시판 엔티티
    │  │
    │  ├─repository
    │  │      BoardRepository.java                # 게시판 데이터 접근
    │  │
    │  └─service
    │          BoardService.java                  # 게시판 서비스 인터페이스
    │          BoardServiceImpl.java              # 게시판 서비스 구현
    │
    ├─comment
    │  ├─controller
    │  │      CommentController.java              # 댓글 관련 요청 처리
    │  │
    │  ├─dto
    │  │      CommentPageResponseDto.java         # 댓글 페이지 응답 DTO
    │  │      CommentResponseDto.java             # 댓글 응답 DTO
    │  │      CommentSaveRequestDto.java          # 댓글 저장 요청 DTO
    │  │      CommentUpdateRequestDto.java        # 댓글 수정 요청 DTO
    │  │
    │  ├─entity
    │  │      Comment.java                        # 댓글 엔티티
    │  │
    │  ├─repository
    │  │      CommentRepository.java              # 댓글 데이터 접근
    │  │
    │  └─service
    │          CommentService.java                # 댓글 서비스 인터페이스
    │          CommentServiceImp.java             # 댓글 서비스 구현
    │
    ├─common
    │  │  Const.java                             # 상수 정의
    │  │
    │  ├─config
    │  │      PasswordEncoder.java                # 비밀번호 인코더
    │  │      WebConfig.java                      # 웹 관련 설정
    │  │
    │  ├─entity
    │  │      BaseEntity.java                     # 기본 엔티티 (생성일, 수정일 포함)
    │  │
    │  ├─filter
    │  │      LoginFilter.java                    # 로그인 필터
    │  │
    │  └─handler
    │          ErrorResponseDto.java              # 오류 응답 DTO
    │          GlobalExceptionHandler.java         # 전역 예외 처리기
    │          GlobalFieldError.java              # 필드 오류 처리
    │
    ├─exception
    │      AccessDeniedException.java              # 접근 거부 예외
    │      AlreadyExistsException.java             # 이미 존재하는 예외
    │      LoginAuthException.java                 # 로그인 인증 예외
    │      MisMatchPasswordException.java          # 비밀번호 불일치 예외
    │      MisMatchUserException.java              # 사용자 불일치 예외
    │      NullResponseException.java              # 널 응답 예외
    │      SelfFollowNotAllowedException.java      # 자기 자신을 팔로우할 수 없는 예외
    │      WrongPasswordException.java             # 잘못된 비밀번호 예외
    │
    ├─follow
    │  ├─controller
    │  │      FollowController.java                # 팔로우 관련 요청 처리
    │  │
    │  ├─dto
    │  │      FollowResponseDto.java               # 팔로우 응답 DTO
    │  │      FollowSingleResponseDto.java         # 개별 팔로우 응답 DTO
    │  │
    │  ├─entity
    │  │      Follow.java                          # 팔로우 엔티티
    │  │
    │  ├─repository
    │  │      FollowRepository.java                # 팔로우 데이터 접근
    │  │
    │  └─service
    │          FollowService.java                  # 팔로우 서비스 인터페이스
    │          FollowServiceImpl.java              # 팔로우 서비스 구현
    │
    ├─like
    │  ├─controller
    │  │      BoardLikeController.java            # 게시판 좋아요 관련 요청 처리
    │  │      CommentLikeController.java           # 댓글 좋아요 관련 요청 처리
    │  │
    │  ├─dto
    │  │      BoardLikeResponseDto.java           # 게시판 좋아요 응답 DTO
    │  │      CommentLikeResponseDto.java          # 댓글 좋아요 응답 DTO
    │  │
    │  ├─entity
    │  │      BoardLike.java                       # 게시판 좋아요 엔티티
    │  │      CommentLike.java                     # 댓글 좋아요 엔티티
    │  │
    │  ├─repository
    │  │      BoardLikeRepository.java             # 게시판 좋아요 데이터 접근
    │  │      CommentLikeRepository.java            # 댓글 좋아요 데이터 접근
    │  │
    │  └─service
    │          BoardLikeService.java               # 게시판 좋아요 서비스 인터페이스
    │          BoardLikeServiceImpl.java           # 게시판 좋아요 서비스 구현
    │          CommentLikeService.java              # 댓글 좋아요 서비스 인터페이스
    │          CommentLikeServiceImpl.java         # 댓글 좋아요 서비스 구현
    │
    ├─login
    │  ├─controller
    │  │      LoginController.java                 # 로그인 관련 요청 처리
    │  │
    │  ├─dto
    │  │      LoginRequestDto.java                 # 로그인 요청 DTO
    │  │      LoginResponseDto.java                # 로그인 응답 DTO
    │  │
    │  ├─repository
    │  │      LoginRepository.java                 # 로그인 데이터 접근
    │  │
    │  └─service
    │          LoginService.java                   # 로그인 서비스 인터페이스
    │
    └─user
        ├─controller
        │      UserController.java                 # 사용자 관련 요청 처리
        │
        ├─dto
        │      UpdateUserRequestDto.java           # 사용자 수정 요청 DTO
        │      UserRequestDto.java                  # 사용자 요청 DTO
        │      UserResponseDto.java                 # 사용자 응답 DTO
        │
        ├─entity
        │      User.java                           # 사용자 엔티티
        │
        ├─repository
        │      UserRepository.java                  # 사용자 데이터 접근
        │
        └─service
                UserService.java                   # 사용자 서비스 인터페이스
                UserServiceImpl.java                # 사용자 서비스 구현

 

 

'프로젝트 > 프로젝트 회고' 카테고리의 다른 글

[팀 프로젝트-배달어플] S.A 작성  (0) 2025.04.23
[팀 프로젝트-JPA 활용 게시판] 댓글 기능 + orphanRemoval로 깔끔한 삭제 처리  (0) 2025.04.21
[팀 프로젝트-JPA 활용 게시판] S.A 작성  (0) 2025.04.09
[일정관리]일정 수정 및 삭제  (0) 2025.03.26
[일정관리]일정 생성 및 조회  (0) 2025.03.25
'프로젝트/프로젝트 회고' 카테고리의 다른 글
  • [팀 프로젝트-배달어플] S.A 작성
  • [팀 프로젝트-JPA 활용 게시판] 댓글 기능 + orphanRemoval로 깔끔한 삭제 처리
  • [팀 프로젝트-JPA 활용 게시판] S.A 작성
  • [일정관리]일정 수정 및 삭제
코딩로봇
코딩로봇
금융 IT 개발자
  • 코딩로봇
    쟈니의 일지
    코딩로봇
  • 전체
    오늘
    어제
    • 분류 전체보기 (131) N
      • JavaScript (8)
      • SQL (10) N
      • 코딩테스트 (29)
        • Java (15)
        • SQL (12)
      • Java (10)
      • 프로젝트 (20)
        • 트러블슈팅 (6)
        • 프로젝트 회고 (12)
      • git,Github (2)
      • TIL (34) N
      • Spring (16) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스파르타 코딩 #부트캠프 #첫ot
    java #arraylist #list #배열
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩로봇
[팀 프로젝트-JPA 활용 게시판] branch 전략 및 패키지 구조
상단으로

티스토리툴바