프로젝트를 시작하며
지금까지는 혼자서 하는 토이 프로젝트를 제외하고는 팀과 협업하는 프로젝트에서 백엔드를
맡아 개발한 적이 없었다.
아무것도 없는 백지상태에서 무언가를 설계한다는 것은 생각보다 어려운 일이라는 것을 알게 됐다.
쉽게 감이 잡히질 않았을 때 다행히 여러 번 프로젝트를 경험하셨던 팀원분들 덕분에
ERD, 요구사항 명세서, API명세서, 컨벤션 등등
단계별로 차근차근 프로젝트를 시작할 수 있었다.
컨벤션
프로젝트를 시작하기 전에 우리 팀의 컨벤션을 정했다.
지금까지는 깃컨벤션정도만 정하고 프로젝트를 했었지만 이번프로젝트에서는 코드 컨벤션까지 상세하게 정한 뒤 개발에 들어갔다.
이렇게 코드 컨벤션을 정해놓고 나니 팀원들 간의 코드가 일관성 있게 짜였고 결과적으로 코드리뷰를 할 때 많은 도움이 되었던 것 같다.
프로젝트 진행
코드리뷰
사실 이번프로젝트를 하면서 성장하는데 가장 도움이 되었던 부분은 코드리뷰였다.
이전까지는 이렇다 할 코드리뷰를 해본 적도 받아본 적도 없었다.
그래서 지금까지는 돌아가고, 충돌 나지 않고, 에러가 터지지 않으면 쓸만한 코드라고 생각했던 것 같다.
하지만 이번 코드리뷰를 통해서 단순 돌아가기만 하는 코드를 짜는 건 의미 없다는 걸 알게 됐다.
프로젝트를 진행하면서 여러 번의 코드리뷰를 받게 되니
점점 코드를 한 줄씩 짤 때마다 최대한 정당성을 부여하기 위해 노력하게 되었다.
과연 이게 최선인지, 더 나은 방법은 없는지, 유지보수를 위해서는 어떻게 설계하는 게 좋은지 등
뛰어난 팀원분들에게 여러 조언을 받으며 프로젝트 전보다 실력이 많이 늘어감을 느꼈다.
프로젝트에서 경험한 것
이번 프로젝트에서 나는 회원 도메인을 맡아 OAuth2, JWT를 이용한 소셜 로그인, 이메일인증, 그 외에
회원과 관련된 다양한 API에 대한 작업을 맡았다.
대학수업에서 OAuth를 실습해 본 적이 있었지만 실제 서비스에 도입하는 것은 처음이었다. 더군다나 백엔드와 프론트엔드를
전부 구현해야 했기 때문에 백엔드부터 개발했는데 지금 생각해 보면 프론트 개발과 동시에 했었다면 좀 더 시행착오를 줄였을 수 있었을 것 같다.
이번 프로젝트에서는 이메일과 비밀번호를 이용한 서비스 자체적인 회원가입과, OAuth를 이용한 소셜 로그인을 모두 지원했기 때문에
둘 다 구현하였다. 이 과정에서 프론트 작업도 같이해야 해서 시간적으로 더 오래 걸리고 시행착오가 많았지만 오히려 이런 경험을 통해 프론트엔드와 백엔드가 서로 어떻게 소통하는지 프론트엔드에서 필요로 하는 데이터가 무엇인지를 고민하며 백엔드 작업을 할 수 있어서 좋은 경험이 되었던 것 같다.
서비스 중 권한을 변경해야 하는데 이때 인증절차가 필요하여 이메일 인증을 추가하였다.
이번 프로젝트 개인적인 작업물들은 블로그에 한 번씩 정리를 해둬야 할 것 같다.
프로젝트를 통해 느낀 점
우선 코드리뷰의 중요성을 가장 많이 느낀 것 같다.
당장 돌아가는 것도 중요하지만 추후의 유지보수성이나 가독성을 생각하여 좀 더 체계적으로 코드를 짜는 것이
더 중요하다는 것을 느꼈다.
프로젝트를 진행하며 분명 처음 설계 했을 때는 문제가 없을 것 같았지만 막상 진행을 하다 보면
이런저런 이유로 기존의 설계를 바꿔야 하는 일들이 생겼다. 최대한 처음부터 잘 설계하는것이
가장 좋겠지만 만약 수정해야 할 부분이 생기면 빠르게 대응하는 것도 실력이라는 것을 느꼈다.
보완해야 할 점
사실 이번 프로젝트에서는 테스트 코드를 작성하기로 하였다. 하지만 프론트와 백을 둘 다 작업해야 했기에
개발일정이 촉박하여 테스트 코드를 미처 작성하지 못했다.
따라서 이 부분은 추후 개인적으로라도 작성해서 업데이트할 예정이다.
'후기' 카테고리의 다른 글
데브코스 백엔드과정 최종프로젝트 후기 (1) | 2025.01.07 |
---|---|
데브코스 백엔드과정 3차 프로젝트 후기 (2) | 2024.11.14 |