두 번째 협업 프로젝트를 진행하며 경험한 내용과 느낀 점을 정리한 글입니다.
이번 프로젝트에서는 인스타그램의 핵심 기능을 참고하여
백엔드 시스템을 개발하는 협업을 진행하였다.
프론트엔드 없이 백엔드 API 설계와 구현에 집중하였으며,
실무와 유사한 경험을 쌓기 위해 실제 서비스 수준의 품질과 안정성을 목표로 설정하였다.
회원가입/로그인, 게시물 작성 및 조회, 댓글, 좋아요, 팔로우 기능 등
소셜 미디어 서비스의 주요 기능을 중심으로 백엔드 API를 구현하였다.
JWT 기반 인증/인가 기능을 적용하였고,
RESTful API 설계 원칙을 따르며 개발을 진행하였다.
또한 코드 리뷰를 통해 품질 향상을 시도하였다.

기획 단계
프로젝트 시작 전, 팀원들과 어떤 기능을 구현할지 논의하였다.
인스타그램의 핵심 기능 중 백엔드에서 구현 가능한 영역을 중심으로 기능 범위를 정의하였다.
기획 회의를 통해 회원가입/로그인, 뉴스피드, 댓글/좋아요, 팔로우, 프로필 관리 기능을 우선 개발 대상으로 선정하였다.
API 명세서 작성을 위해 Postman과 Guthub를 활용하였고, API 설계 방향을 정리하였다.
개발 단계
각자 맡은 기능에 대해 기본 API 설계를 먼저 진행하였다.
Git Flow 전략을 적용하여 기능별 브랜치를 분리하고, PR 기반으로 협업을 진행하였다.
초기에는 Spring Boot 기본 구조와 JPA 설정부터 시작하였고, 이후 JWT 기반 인증/인가 기능을 우선 구현하였다.
기본적인 CRUD 기능부터 점차 예외처리, 트랜잭션 처리, 페이징, 검색 등의 고도화 작업도 함께 진행하였다.
테스트 및 디버깅
기능 개발이 완료된 후, Postman을 이용하여 각 API에 대한 테스트를 진행하였다.
테스트 중 발생한 예외 상황과 버그를 팀원들과 함께 논의하고 수정하였다.
서로의 PR을 리뷰하며 코드 품질을 개선하였고, 테스트 데이터를 활용하여 시나리오 검증도 병행하였다.
마무리 단계
전체 기능을 통합한 후, 최종 점검을 진행하였다.
API 문서를 정리하고, 각 기능에 대한 테스트 결과를 기록하였다.
프로젝트 진행 결과와 팀원들의 역할, 느낀 점을 PPT로 정리하여 발표 준비도 함께 진행하였다.

패키지 구조가 다르다 보니 머지 시 충돌이 자주 발생하였다.
팀장으로서 내가 직접 PR을 검토하고 머지 작업을 진행하는 방식으로 정리하였다.
PR 단계에서 패키지 구조를 통일한 뒤 머지하니 충돌을 줄일 수 있었다.
예외 처리 방식이 팀원마다 달라서 코드 일관성이 떨어졌다.
이에 팀장으로서 공통 예외 클래스를 직접 만들어 적용하였다.
팀원들이 이후 기능 개발 시 해당 예외 구조를 활용하도록 안내하여 코드의 일관성을 유지할 수 있었다.
이번 프로젝트를 통해 JWT 인증 구현, RESTful API 설계, 트랜잭션 처리, 테스트 코드 작성 등 다양한 기술을 직접 구현해보았다.
특히 Spring Security와 JWT를 활용한 인증/인가 구현 과정에서 많은 경험을 쌓을 수 있었다.
복잡한 기능을 설계하고 구현하면서 코드 품질과 유지보수성에 대해 더 깊이 고민하게 되었다.
협업 과정에서 초기에 명확한 코드 구조와 규칙을 합의하는 것의 중요성을 깨달았다.
패키지 구조나 예외 처리 방식이 통일되지 않으면 이후 작업에서 충돌이 잦아지는 경험을 하였다.
또한 팀장 역할을 맡으면서 PR 관리, 코드 리뷰, 머지 전략 수립 등 협업을 원활하게 진행하기 위한 과정도 배우게 되었다.
이번 경험을 통해 효율적인 협업 방법과 커뮤니케이션의 중요성을 다시 한번 느꼈다.
