깃헙뉴비 프로젝트를 만들기에 앞서서 설계하는 과정을 기록해보려 한다.
어떤 설계를 했는지, 어떻게 설계를 했는지를 기록해본다.
프로젝트를 만들기에 앞서서 몇가지 설계 단계를 가져보고 있다.
아래는 우리 팀과 함께한 설계 목록이다.
프로젝트 요구사항 파악
와이어프레임 짜기
역할분담
코드컨벤션
rest api 컨벤션
네이밍 컨벤션 : 페이지명, js, css
git branch
api 명세서
역할 분담은 아래와 같다.
나: 댓글 기능(CRUD), 추가페이지
채영님 메인페이지,상세페이지 (CRUD)
의성님: 로그인 + 회원가입 (CRUD)
종용님: 좋아요 , 프로필수정(GET, (CU))
사실 github 브랜치를 경험해보고 숙달해보는 목적으로 프로젝트를 만들었는데
각자 구현해보고 싶은 기능들을 추가하다보니 많은 기능들이 추가되었다..
프로젝트를 진행하면서 전반적인 상황을 보며 역할 분담과 구현할 기능이 변동될 가능성이 높다.
상세페이지, 메인 페이지
로그인 페이지, 메인 페이지
추가 페이지
수정 페이지
카카오톡 로그인 페이지
git branch는 크게 main, feature, dev로 나눈다.
main : release(배포)될 수 있는 코드를 관리한다.
feature : feature 브랜치는 dev 브랜치에서 기능 추가 및 수정 .. 등 변경 사항이 있을 때마다 추가되었다가 삭제된다.
너무 많은 브랜치가 존재하면 유지보수가 어렵기 때문에 기능 개발을 마쳤다면 feature 브랜치를 제거해준다.
dev : 버전이 업데이트되기 전 코드가 여기서 관리된다. dev 브랜치에서 전체적인 동작이 문제없이 작동한다면 main에 merge(병합)한다.
정리하자면
나무 기둥(main) -> 넓은 가지(dev) -> 얇고 여러개의 가지(feature)라고 생각하면된다.
우리 팀이 정한 branch의 네이밍 예시는 아래와 같다.
main/dev/feature/detail-page-comment
댓글 조회
@GetMapping("/comments/{commentId}")
댓글 작성
@PostMapping("/comments")
댓글 수정
@PatchMapping("/comments/{commentId}")
댓글 삭제
@DeleteMapping("comments/{commentId}")
추가 페이지
@GetMapping("/posts")
@PostMapping("/posts")
rest api 명세서는 개개인별로 작성해보는 시간을 가져서 서로 상이한 부분이 있다.
아무래도 이번 프로젝트는 Spring mvc 방식으로 개발하기 때문에 api 명세서는 언제든지
수정 및 확장할 예정될 수 있다.