[Devcourse] - 1 차 프로젝트 회고록

청주는사과아님·2024년 9월 15일
1

side-story

목록 보기
1/7
post-thumbnail

프로그래머스에서 운영하는 데브코스에 참여한 지도 벌써 두 달이 지났습니다.
그동안 배운 내용도 인상 깊었지만, 특히 저번 주에 진행했던 프로젝트 과정이 기억에 남습니다.

이번 포스팅에서는 그 프로젝트를 돌아보며 좋았던 점, 아쉬웠던 점, 그리고 앞으로의 계획을 정리하고자 합니다.


🛎️ 프로젝트의 시작

지난 두 달 동안 데브코스는 백엔드 개발자의 필수 역량을 키우는 데 집중했습니다.
Servlet 기반 웹 개발부터 시작해, Spring Boot, Spring Data, Security 까지 다양한 기술을 다루며 백엔드 개발의 변천사를 경험할 수 있었습니다.

그래서 1 차 프로젝트는 데브코스에서 제시한 서비스 시나리오를 바탕으로,"지금까지 알려준걸로 직접 만들어봐!" 처럼 도전 과제를 해결하는 방식으로 진행되었습니다.


🖍️ 프로젝트 과정

데브코스에서 제시한 시나리오는 간단했습니다.
온라인 커피 주문 서비스를 가정해, 고객은 원하는 커피를 주문하고 관리자는 커피의 종류와 제고 등을 CRUD 하는 시스템을 개발하는 것이었습니다.

프로젝트는 총 1 주일동안 진행되었습니다.
3 일 은 팀원 각자가 개별적으로 개발을 진행했습니다. 2 일 은 LMS 강의를 클론 코딩하며 학습했고,
마지막 2 일 은 팀원간 협업으로 추가 기능을 구현하며 프로젝트를 마무리했습니다.

서비스 상황이 간단했기에 저희는 빠르게 클론 코딩을 마쳐, [09/10] 부터 협업을 시작했습니다.


👩‍💻 팀원과의 협업

저희는 기본 기능 외에도 로그인 및 유저 권한 조회, 유저 등급별 주문 할인, 주문 취소 및 주문 상품 추가 기능을 덧붙이기로 하였습니다.

저는 이 중 로그인 기능 을 담당하여 JWT 토큰을 이용한 Access 및 Refresh 토큰 인증 기능을 구현했습니다.

이를 통해 "Refresh 토큰을 꼭 DB 에 넣어 관리해야 할까?" 라는 의문점을 "서비스의 형태에 따라 유동적이다" 는 것을 깨달아 해소하였습니다.

팀원 간 협업은 주로 PR 후 code review 를 통해 진행하여, 코드의 개선점과 궁금한 점 등을 논의하였습니다.

코드 리뷰 1코드 리뷰 2

이 과정을 통해 코드 리뷰 스킬merge conflict 최소화 같은 비개발적 역량도 크게 향상될 수 있었습니다.


🚨 트러블 슈팅

프로젝트 도중 예상치 못한 버그가 발생하기도 했습니다.
저희는 버그를 발견하면 이를 issue 로 정리하고, Assignees 를 지정해 논의하며 해결책을 찾아갔습니다.

이러한 협업 과정을 통해 문제를 신속히 발견하고 보완할 수 있었고, 협업의 중요성을 다시금 실감할 수 있었습니다.

버그 확인 issue버그 fix PR

📤 프로젝트 마무리

각자 담당한 기능을 모두 구현한 후, 저희는 브랜치를 나눠 순차적으로 merge 를 진행했습니다. 해당 과정에서 merge conflict 이 일어나기도 했지만, 그동안 쌓은 비 개발적 역량을 통해 빠르게 해결할 수 있었습니다.

또한 모든 브랜치 merge 가 완료된 후, 프로젝트를 설명하는 README 를 작성하였습니다.
README 에서 추가된 기능을 설명하고 프로젝트 중 발생한 트러블 슈팅 경험을 정리해 프로젝트의 진행 과정을 담고자 노력하였습니다.

PR 기록들Repo README

이 후 완성한 프로젝트를 공개하여 다른 팀에게 평가를 받고, 팀원들간 보완점을 이야기하는 등 서비스의 CI/CD 에 대해 논의하였습니다.


💭 회고

이번 프로젝트는 제게 큰 성장을 안겨준 경험이었습니다.
대학교 시절에도 다양한 프로젝트를 진행해봤지만, 백엔드 중심의 프로젝트는 이번이 처음이었습니다.
Spring Framework 를 이용한 실제 애플리케이션 개발을 경험하며 백엔드의 기초 역량을 탄탄히 쌓을 수 있었고, 특히 팀원들과의 협업이 개발 과정에서 얼마나 중요한지 느낄 수 있었습니다.

기술적으로는 JWT 인증과 권한 관리, 그리고 Spring Security 를 다루며 좋은 인증 전략에 대해 생각해 볼 수 있었습니다. 학습하며 궁금했던 의문점들도 직접 구현하며 해소할 수 있었고, 서비스의 형태에 따라 달라질 수 있다는 점을 배우게 되었습니다.

하지만 아쉬운 점도 존재합니다.
다른 팀의 경우 Swagger, REST Docs 를 활용해 API 문서화를 진행하거나, Toss Payment API 를 적용해 결제 시스템을 구현하기도 했습니다.
이를 보며 저희도 수업에서 배우지 않은 기술들을 적극적으로 활용했으면 어땠을까 하는 생각이 들었습니다.

4 팀 README 14 팀 README 2

??? 혹시 하루가 48 시간 이신가요??

이번 프로젝트를 통해 스스로 많은 생각을 하게 되었습니다.
지금까지 많은 것을 배웠지만, 그만큼 더 배움이 남아 있다는 생각에 막막함이 들기도 합니다.

"이 모든 것을 언제쯤 내 것으로 만들 수 있을까?" 라는 고민이 들기도 하지만, 결국 중요한 것은 한 걸음씩 꾸준히 나아가는 과정이라 믿습니다.

결국 우리는 개발자니까요.
비록 지금 당장은 부족해 보일지라도 꾸준히 나아가다 보면 언젠가는 더 큰 성장을 이뤄낼 수 있을 거라 생각합니다.
취업이 다소 늦어진다 해도, 중요한 건 올바른 방향으로 꾸준히 전진하는 것이라 믿습니다.

저도 언젠가 능숙한 개발자로서 더 큰 프로젝트를 이끌 수 있기를 바라며, 오늘도 한발씩 나아가겠습니다.


profile
나 같은게... 취준?!

0개의 댓글