프로젝트 흐름
Keep - 유지할 점
▪️자유로운 소통 분위기
팀원의 의견을 경청하고 반응해주는 태도.
▪️와이어프레임을 먼저 짜고 그 안에서 어떤 API가 필요한지 고민하고 ERD를 작성한 것
명확한 와이어프레임이 있으니 막연하게 어떤 API가 필요하다고 이야기하는게 아니라, 진짜로 필요한 기능만 얘기하게 돼서 좋았다. (스코프가 무한정 확산 되는 것을 방지. 핵심기능과 부가기능을 구분하는데에 유용)
▪️API명세, 엔티티를 구체적으로정한 것
변수명을 미리 정해둔 덕분에 각자가 만든 코드를 합칠 때 충돌이 적게 일어났다.
또한 각 기능에 대해 (요청을 어떻게 받을 것이고, 응답은 어떻게 할 것인지, 각 상황별 HTTP 응답은 무엇으로 할 것인지) 구체적으로 회의를 해둔 덕분에 불필요한 의사소통도 줄어들었다.
▪️패키지 구조를 정해둔 것
기능이 많아질수록 파일 역시 기하급수적으로 늘어나기 때문에 이를 관리해주는 것이 중요하다는 것을 많이 느꼈다.
기능별로 패키지를 분리 하고 , 그 패키지 안에서 3 Layer 패키지를 따로 만들어둔 덕분에 원하는 기능의 파일을 찾기가 수월했다.
▪️적절한 리소스 분배
사람마다 개발 속도에는 차이가 있다.
공평하게 분량을 나누는 것보다 좀 더 빠른 사람이, 혹은 더 여유가 있는 사람들이 적극적으로 남은 리소스를 담당해주는 것이 프로젝트의 수월한 진행에 도움이 되는 것 같다.
▪️일정관리 표 사용
일정을 표로 만들어두니 각자가 담당한 부분을 언제까지 끝내야 다른 사람이 개발을 시작할 수 있는지, 구체적인 흐름이 한 눈에 보여서 좋았다. 만약에 일정표가 없었다면 괜찮겠지라는 생각으로 기능개발을 내일로 미뤘다가 마감일을 못 맞추는 참사가 일어나지 않았을까.
▪️깃 커밋 규칙, 코드 컨벤션 정하기
여러 사람이 함께 개발을 하다보니 가독성이 정말 중요하다는 것이 느껴졌다.
내가 만든 코드는 ‘슥-’ 지나가듯이 봐도 무엇을 구현한건지 알 수 있지만, 다른 사람의 코드는 그렇지 않다.
그래도 양식이 통일되어있으니 가독성이 올라가서 다른 사람의 코드를 읽는데에 도움이 되었다. (커밋 규칙도 동일)
Problem - 아쉬운 점
▪️DB 통일하기, 개발환경 통일하기
이번에 우리 팀은 운 좋게 모두가 MySQL을 사용했지만, 만약에 누구 하나라도 다른 DB를 사용했더라면 오류가 일어났을지도 모른다..
이 부분은 미처 생각하지 못한 부분이었는데, 기억해뒀다가 다음 프로젝트 때는 꼭 팀원들과 회의를 해야겠다.
▪️ 공통응답 객체 만들기
컨트롤러에서 API마다 요청, 응답을 받는 양식이 서로 너무나도 달랐다.
이 부분 역시 회의를 통해서 정해놔야겠다는 생각이 들었다.
▪️ 예외처리 및 예외 응답 형태 ENUM으로 관리하기
어떤 예외 상황이 있는지는 회의를 했지만, 예외를 어떻게 처리하고 응답해줄지는 미처 상의하지 못했다. 이로인해 중복되는 예외처리 코드가 많아져서 지저분해지기도 했다.
▪️ 요구사항을 제대로 정리하자
’일단 시작하자!’라는 생각에 요구사항을 제대로 정리하지 않았더니 다 완성해서 빼먹은 기능을 발견하기도 했다.
시간이 있어서 다행이었지 어쩌면 제출 후에 발견할 수도 있던 부분이다.
▪️ 트러블 슈팅/TIL 미리미리 작성하자
중간중간 ‘이 내용 좋은데?’ 싶은게 몇 가지가 있었는데 바쁘니까 다음에 하겠다는 생각으로 미뤘더니 정작 필요할 때 가서는 생각해내고싶어도 생각이 안 났다.
그리고 문제는 미리 정리해두는 것이 기억에도 더 잘 남고 다음에 같은 실수를 저지를 확률이 줄어든다.
바쁘면 키워드라도 정리해두자!! (무엇보다 발표자가 힘들어진다.)
▪️ 수정사항이 생기면 노션에 바로바로 업데이트하자
수정 사항이 생겼을 때 코드만 신경쓰고 노션을 챙기는 걸 깜빡할 때가 있다.
하지만 팀원들은 노션을 참고해서 개발하고 있다는 사실을 잊지 말자.
수정사항을 반영하지 않아서 에러가 터질 수도있다.
또, 마지막에 README를 작성할 때도 코드가 아닌 노션을 보고 작성하는데, 수정사항이 반영되어있지 않다면 코드를 추가로 참고해야해서 시간이 더 소요된다.
Try - 문제 해결을 위해 시도할 점
▪️프로젝트 시작 전 필요한 부분을 정하고 시작하자.
ex) DB, 개발환경, 요구사항, API 명세, ERD, 변수명, 예외처리 방법, 공통응답객체...
▪️ 수정사항 발생시 팀원에게 적극적으로 알리고, 공통적으로 관리하는 문서에도 빠르게 반영하자.
▪️ 5분 기록보드 활용하기
트러블 슈팅/TIL은 미리미리 작성하자. 시간이 없다면 ‘키워드’라도 간단하게 적어두자.