패캠 부트캠프에서 진행하는 첫 번째 팀 프로젝트이다. 5명의 조원으로 구성되었고 5일 동안 진행되었다.
기능 구현은 매우 단순 했으나 팀 프로젝트가 거의 1년 만이라 단순한 기능의 비해 많이 시간이 소요되었다.
프로젝트 주제 및 진행과정 정의하고 미숙했던 부분과 궁금한 사항을 정리해 보자.
과제 주제
Java Application을 활용한 간단한 여행/여정 기록 및 조회하기
1. Json, csv 파일로 데이터 입출력하기
2. 예외처리
3. MVC 패턴 활용하기
프로젝트 진행 과정
1. 요구사항 분석
간단한 팀원소개 이후 요구사항을 분석을 먼저 진행하였다.
요구하는 기능이 주어진 인원보다 적을 수 있어 5명의 팀원이 각각의 역할을 분배할 수 있는 요구사항 분석이 중요했다.
기능단위로 요구사항으로 분리하여 총 다섯 가지로 나누어 진행하였다.
1. 메인화면 구성
2. 여행등록
3. 여정등록
4. 여행조회
5. 여정조회
2. 프로젝트 세팅 및 구성
프로젝트 세팅
Languages : Java 11
Build Tool : Gradle
Test : Junit 5
DB : Json , CSV File 대체
VCS : Github + Git
프로젝트 세팅은 위로 구성했으면 팀원 간에 이견은 발생하지 않았다.
프로젝트 구성
프로젝트 패키지 구성은 계층형과 도메인형이 있는데 현재 프로젝트는 규모가 작으니 계층형이 더 맞을 수 있지만
도메인형으로 구성해보고 싶다는 의견이 많아 도메인형으로 구성하게 되었다.
3. Git Flow
우아한 형제들 기술 블로거의 나온 Flow를 참고하였다.
https://techblog.woowahan.com/2553/
- master : product로 배포할 브랜치(혹은 배포된 브랜치)
- develop : 개발버전 브랜치
- feature : 각 기능별, 서비스별 개발중인 브랜치
- release : master로 올리기전 준비하는 브랜치
- hotfixes : master에서 나온 버그를 빠르게 수정하는 브랜치
git-flow branch (프로젝트 내 전략)
- master(main) : 과제의 배포할 브랜치
- develop : 개발버전 브랜치
- feature : 각 기능별, 서비스별 개발중인 브랜치 (구성원 이름으로 명칭)
나도 실무경험을 했지만 워낙 작은 프로젝트 또는 회사 내부 규약이 정해져 있지 않아 VCS Flow에 대해 무지해서 팀원들에게 이야기해 적용하게 되었다.
서버배포하여 상용오픈이 되는 프로젝트는 아니라 간소하게 flow를 적용했지만 프로젝트하면서 어떤 방식으로 진행되는구나 정도의 느낌을 알 수 있었다.
추가적으로 공부해 볼 필요를 느끼고 다음 주부터 그룹스터디 프로젝트를 진행하는데 적극 활용해 봐야겠다.
4. 기타
그 외에도 UI 구성, 파일 저장 방식, 파일 명명 규칙 등을 진행하였다.
미숙한 부분 정리
프로젝트 진행 간 부족한 부분을 정리하고 후에 블로그의 정리하도록 하자.
1. Json 라이브러리 (Json-simple, Jackson, Gson)별 차이점 및 사용방법
2. DTO, VO, Entity의 차이
3. DTO의 사용범위
4. 계층형과 도메인 패키지의 차이점
5. Git Flow
6. Git Convention 타입 별 정확한 구분과 commit, push 단위
그 외에도 Git 기초 사용법과 Github PR에 대해서도 알아봐야겠다. 팀원 중 PR에 익숙한 사람이 없어 코드 리뷰를 실시간으로 진행하고 PR은 그냥 Merge를 진행했다.
그리고 요구분석할 때 API 명세나 기능 인터페이스 정의를 하지 않아 구현 중 동일 작업을 하는 케이스가 발생했다.
다음 프로젝트 때는 해당 부분을 명확히 정리하고 가야겠다.
리팩토링 및 클린코드는 현재 공부하고 있지만 아직도 대충 짜는 습관이 남아있어 그 부분도 신경써서 개발해야 될 거 같다.
회고
개인적으론 1년 만에 프로젝트라 쉽지는 않았다. 하지만 팀원들이 어느 정도 프로젝트와 자바에 대한 지식이 있어 금방 적응이 가능했다.
우리 조는 나 포함 3명이 경험자, 2명이 처음 개발을 접한 팀으로 구성되었다,
처음 개발을 접하는 두 분은 자바 로직은 짜는 건 어느 정도 아니지만 패키지 구성 및 MVC 패턴, 리팩토링 이런 부분에 대해서 잘 알지 못해 프로젝트 간 100% 참여하기가 어려웠다.
후에 프로젝트 끝난 후 프로젝트 관련 설명을 해드렸으나 중간에 소외되는 부분에 대해선 다음 프로젝트에 개선이 돼야 될 거 같다.
다음 프로젝트는 전까지 준비해야 될 것을 정리
1. 스프링 기초 복습하기
2. Git 복습하기
3. JPA 기초 복습하기
4. junit 테스트 방식 공부하기
'프로젝트&부트캠프 > 패스트캠퍼스x야놀자 백엔드과정' 카테고리의 다른 글
[패스트캠퍼스x야놀자 개발자벡엔드 부트캠프] 미니프로젝트를 마치며 정리할 내용 기록하기 (0) | 2023.12.06 |
---|---|
[패스트캠퍼스x야놀자 개발자벡엔드 부트캠프] Java 과제 2 (0) | 2023.09.01 |
[패스트캠퍼스x야놀자 개발자벡엔드 부트캠프] Java 과제 1 (0) | 2023.08.25 |