프로젝트 명 :
지금 뭐해?
프로젝트 팀 :
스프링 N 코드 ( 이승언, 나유화, 김창민, 김도균 )
깃허브 링크 :
https://github.com/banasu0723/Newsfeed
GitHub - banasu0723/Newsfeed
Contribute to banasu0723/Newsfeed development by creating an account on GitHub.
github.com
KTP 회고 )
Keep - 현재 만족하고 있는 부분
- 팀원들과의 소통이 원할하게 진행되었다
- 도메인 별로 나눠서 개발을 하여 깃허브에서 conflict도 거의 발생하지 않았었다.
- 개발하는 도중 어려운 부분에 대해서 서로 도움을 주었다.
- 작업할 도메인별로 분리된 구조가 코드작성과 유지보수 측면에서도 도움이 되었다. 팀원들 간에 명확한 역할 분담이 있었기 때문에 각자가 맡은 기능에 집중할 수 있었다. 덕분에 각자가 책임감을 가지고 작업에 임할 수 있었으며, 다른 팀원의 코드 변경이 내 작업에 미치는 영향을 최소화할 수 있었다. 이러한 분업 구조가 프로젝트 전반의 속도와 안정성에 긍정적인 영향을 미쳤다.
- 공동작업하는 깃허브 관련해서 브랜치 이름, 팀원 과반의 approve 이후 merge, 코드 리뷰 등깃허브 관련 팀 규칙이 전부 잘 준수되어 깃허브 관련하여 불미스러운 일이 발생하지 않아 편하게 작업할 수 있었다.
- 우선 업무 분할을 모두가 만족할 수 있게 분할한 점이 좋았다. 도메인 별로 구현할 기능을 분리하고, 해당 도메인에서 어떤 기능을 지원할지 결정한 후 각자가 원하는 도메인을 선택했는데, 운이 좋게 모두가 만족할 결과가 나왔다.
- 3 Layer Architecture를 통해 관심사 분리를 진행했는데, 팀원 모두가 담당 기능들을 적절한 관심사로 구분했기 때문에통합 과정에서 별 다른 트러블이 발생하지 않았고, 의도하지 않은 동작 발생시 코드 파악이 쉬웠기 때문에 수정 시간도 단축할 수 있었다.
Problem - 불편하게 느끼는 부분
- 팀원들의 코드와 내가 작성한 코드를 연관 짓는 과정에서 팀원들의 코드를 이해하는 과정이 생각보다 시간이 꽤 걸렸고, 그 코드들을 다 기억하기가 힘들었었다.
- 메인별 분리가 초기 코드작성에는 편리했지만 각 팀원이 자신의 도메인에 맞게 코드를 작성하다 보니 코드의 구조나 로직이 서로 상이했고, 이를 파악하는 데 시간이 필요했다. 주석 또한 일관되지 않아 코드를 읽고 이해하는 데 어려움이 있었다.
- 각자 코드를 작성하고 기능 테스트까지는 마쳤지만, 리팩토링은 진행하지 못했다. 프로젝트 기간이 짧았고, 리팩토링에 대한 충분한 논의가 이루어지지 않아서 코드 품질을 개선할 시간이 부족했다.
- 개발 일정상 테스트 코드 작성할 시간이 부족하여 테스트 코드 미작성으로 인해 새로운 오류가 늦게 발견되는 경우가 많았다.
- 코드 스타일 차이점에서 불편함을 느낄 수 있었다. 각자 개발 경험이 다르기 때문에 코드 스타일이 상이했다. 여기서 발생하는 문제를 방지하고자 코드 컨벤션을 정했지만, 코드 작성시 코드 컨벤션을 위반하는 사례들이 발생했고, 각자의 기능을 사용하는 경우 이해가 안될 상황이 발생할 수 있었다.
- 기능 테스트에 어려움이 있었다. 본 프로젝트는 백엔드 프로젝트였기 때문에 별도의 UI 구현이 이루어지지 않았다. 그렇기 때문에 데이터 입력을 PostMan과 같은 프로그램을 사용해야만 했는데, 친절한 UI가 제공되지 않다보니 기능 테스트를 위해 데이터를 입력하는 과정이 너무 번거로웠다.
Try - Problem에 대한 해결책, 당장 실행 가능한 것
- 팀원끼리 주석을 상세하게 작성하거나 코드 컨벤션을 정해 서로 코드를 쉽게 이해하도록 해야겠다.
- 도메인별로 작업을 분리하더라도 코드 작성 시 일관성을 유지할 수 있도록, 코드 컨벤션을 강화하고 예외 처리에 대한 명확한 규칙을 마련해 설계 단계부터 적용해야 한다. 또한, 리팩토링 계획을 세워 코드 품질을 개선할 수 있도록 해야 한다. 이를 통해 서로의 코드를 쉽게 이해하고, 유지보수성을 높일 수 있을 것이다.
- 테스트 작성에 대한 규칙을 세우고, 새로운 기능 추가 시 반드시 테스트 코드를 작성하는 방식을 도입하는 것도 하나의 방법이 될 수 있다.
- 대표적인 코드 컨벤션에 맞춰서 코드 작성하는 연습을 진행하면 좋을것 같다. 정식 프로젝트가 아닌, 토이 프로젝트 진행시, Google이나 국내에선 흔히 말하는 네카라쿠베와 같은 IT 대기업에서 정한 코드 컨벤션에 맞춰서 코드를 작성하는 연습을 하면 좋다고 판단된다.
- 인공지능 서비스를 이용해보자. 요즘은 인공지능 서비스가 어느정도 양질의 코드를 제공해준다. 현 단계는 실제 배포하는 프로그램 제작이 아닌 학습 단계이기 때문에 앞단 구현, 즉 학습 대상이 아닌, 개발자가 부재인 파트는 인공지능을 이용해서 코드를 받아 테스트를 진행해도 좋다고 생각한다.
'TIL' 카테고리의 다른 글
TIL : 2024/09/24 아웃소싱 프로젝트 마무리 (0) | 2024.09.25 |
---|---|
TIL : 2024/09/20 아웃소싱 프로젝트 (1) | 2024.09.23 |
TIL : 2024/09/04 뉴스 피드 프로젝트 개발 마무리 & 모의 면접 (2) | 2024.09.04 |
TIL : 2024/09/03 뉴스피드 프로젝트 개발 시작 및 모의면접 준비 (0) | 2024.09.04 |
TIL : 2024/09/02 뉴스피드 프로젝트 시작 (5) | 2024.09.03 |