Development/BootCamp
패스트캠퍼스X야놀자 백엔드 부트캠프_토이 프로젝트(1차) 후기
Klay_J
2023. 9. 15. 12:30
이번 토이프로젝트를 진행하면서 잘했다고 생각하는 부분도 있고, 부족했다고 생각하는 부분도 있기에, 회고하는 차원에서 블로그 글을 남겨보고자 한다.
목적 : 부족한 부분에 대한 정확한 인지 후 향후 보완 계획 수립
1. 프로젝트 개요
- 목표 : 여행 & 여정을 기록하고 조회할 수 있는 자바 콘솔 애플리케이션 개발
여행 : 여정은 1:N의 관계를 가짐
1. 잘한 점
- [프로젝트 관리] 기한 준수
- [프로젝트 관리] 매일 2회 ( 오전/오후 ) 스크럼 회의를 진행하여 체크주기를 면밀히 가져감
- [기획] 초기 기획에서 서비스 흐름에 대해 정의한 부분을 대부분 지키며 개발 진행
- 특히 이 과정에서 플로우 차트를 그린 것은 잘한 일
- [개발] 커밋 컨벤션을 사전에 약속하고 대부분 지키며 개발 진행
- [개발] 각자 맡은 기능을 명확하게 분리하여 혼선을 최소화
- [개발] git 브랜치 전략을 정하고 시작
- [개발] 주요 변수에 대한 유형과 변수명을 정하고 시작
- [개발] Lombok,Gson 등 주요 라이브러리 약속 후 시작
2. 부족한 점
- [프로젝트 관리 Git] Git 활용법 미숙. 커밋하면 어떻게 되는지? push하면 어떻게 되는지? rollback하면 어떻게 되는지??깃 컨벤션이란??pull이란??merge란??rebase,patch란?? 브랜치 전략은?? 이 부분에 대한 명확한 인지와 숙달이 부족했음
- [프로젝트 관리 Git] main-controller 브랜치가 아닌, develop 브랜치를 main전에 하나 더 만들었어야..?
- [개발] 컨트롤러에서 서비스 주입 시, 생성자가 아닌 private new로 했음. 문제는 이걸 팀원들과 통일한 것이 아니라서, 누구는 생성자 주입, 누구는 새로운 객체 생성하는 방식으로하여 코드가 클린하지 못함.
(내가 못함..내가 문제야 ㅠㅠ) - [개발] 예외처리 방법 미숙. 어떻게 예외처리하는 것이 더 효율적인가? 효율적인 예외처리의 정의는?? 뷰단에서 미리 걸러야하는지? try-catch 는 언제? throws는 언제? 등등
- [개발] 객체를 더 작게 쪼갰으면 어땠을지?? 현재 여정뷰/여행뷰 이렇게 나뉘어져 있는데, 여정 조회뷰/여정 등록뷰/여행 조회뷰/여행 등록뷰 입력 / 출력부 총 8개로 쪼개는 게 더 객체지향적일까?
- [개발] view 뿐 아니라, 모든 기능별로 딕셔너리를 쪼갰어야할까?? (2개말고 4개로) 만약 이렇게 나눴다면, 각 기능별 컨트롤러만 호출하면 되니깐 훨씬 편하지 않았을까?
- [개발] 테스트 코드 부재/ 기능 정상동작을 확인하기 위해선 데모를 전부 돌려봐야한다는 불편함을 겪음
- [개발] DTO와 모델의 차이를 정확히 알지 못함
- [의사소통] 유사한 역할을 하는 메서드가 있었는데, (stringToLocaldatetime) 동준님이랑 나랑 서로 각자 만들어서 쓰고 있었음.. 이런건 코드 리뷰를 통해 내가 먼저 통일하자고 했어야하는 아쉬움
- [의사소통] 커밋 전 확인할 사항을 좀 더 구체화해서 정했으면 좋았을 것. 코드 tab 정리, 안쓰는 import문 정리 등등
- [기획] UI 화면을 대략적으로 그려놓고 시작했다면 좋았을 것
3. 앞으로의 방향은?
- Java 8 문법 학습 - optional, 람다식 등
- git 관련 강의 찾아보기
- 예외처리에 대한 심화 학습
작동은 잘된다.
다만 전반적으로 아쉬운 점은 내가 만든 코드가 내 맘에 안들었다는 점...왜 마음에 안들었는지 생각해보면, 코드가 객체지향적이지 못하고, 팀원들과 함께 짠 코드가 최적이지 못했다는 점..? 내가 개발자로서 협업능력이 떨어져서 그랬다고 생각한다. 부족한 부분 보완해서 다음엔 더 잘할 수 있도록...!