Preface
취업 준비를 하면서 팀플 경험이 적어도 한 번 정도는 있어야 하지 않을까 하는 생각이 들었다.
남들 다 해보는 팀플인데, 나 혼자만 경험이 없으면 감점 요인이 될 것 같아 카카오 오픈 채팅, 당근마켓, okky 등 올릴 수 있는 모든 곳에 팀원을 구하는 글을 올렸지만, 일주일이 지나도 연락 오는 사람이 없어 어쩔 수 없이 혼자 주제를 선정하고 프로젝트를 시작했다.
그런데 다음날 다행히도 카카오 오픈 채팅에 한 분이 들어오셨다.
백엔드를 준비하는 분이셨고, 김영한님의 스프링 강의를 보며 공부한 점, 최대한 빠르게 프로젝트를 마치고 입사지원을 시작하고 싶은 점 등 나와 비슷한 부분이 많아 바로 팀 프로젝트를 시작했다.
팀원 분도 그렇고, 나도 그렇고 팀 프로젝트 경험이 없어 깃허브 브랜치 설정 부분부터 시간을 많이 썼던 것 같다.
브랜치 설정을 마친 후부턴 매일 8~9시간씩 빠르게 작업을 진행했고, 노션을 통해 작업일지를 기록하기로 했다.
메모리 DB를 사용해 기본적인 CRUD를 생성하는 v0과 H2 DB로 변경한 v1까지는 크게 어려운 부분 없이 쭉쭉 진행했던 것 같다.
다만, v1을 마무리하는 시점에서 문득 버전 관리가 너무 부실하다는 생각이 들었다.
각자의 로컬 브랜치에서 작업을 마친 뒤, 병합 브랜치로 합친 후 최종적으로 메인 브랜치에 머지하는 방식을 사용하고 있었지만, 해당 방식으론 변경 사항 추적도 힘들었고, 충돌도 자주 발생했다.
그리고 무엇보다 누가 어떤 작업을 했는지 한눈에 알아볼 수 없었다.
그날 밤 유튜브와 구글링을 통해 조사한 내용을 바탕으로 현업에 있는 친구와 버전 관리에 관한 이야기를 나누었고, 다음날 팀원 분과 두 시간 가량의 회의를 진행하며 모든 작업을 진행할 때 issue를 생성한 뒤, 작업을 마치면 pr을 통해 서로의 코드를 검토한 후 병합 브랜치에 머지하기로 결정했다.
이후 ERD를 생성하고 본격적으로 최종 버전인 v2 작업을 시작했던 것 같다.
v2 버전은 강의에서 다뤘던 내용이 아닌, 추가로 필요하다고 생각되는 부분들을 직접 고민하고 조사하여 프로젝트에 구현해야 했기에 완성까지 시간이 꽤 걸렸다.
기능들이 하나둘 추가되니 오류가 터지는 부분도 많았고, 사이드 이펙트가 발생하는 부분도 생겼다.
해결하기 쉽진 않았지만, 오류를 잡는 작업이 실력 향상에 가장 큰 기여를 한 것 같다고 생각한다.
기능 구현을 마친 후엔 AWS의 EC2, RDS, S3를 사용해 배포했다.
사실 배포 작업은 금방 끝날 줄 알았는데, AWS 작업이 생각보다 많이 복잡했다.
원격 서버와 디비 테스트를 마치고 깃허브에 변경사항을 푸쉬하는 과정에서 access key가 노출되는 문제도 발생했다.
다행히 AWS에서 즉시 메일을 보내줘서 바로 해결하긴 했는데, 혹시나 해킹당할까 무서워서 MFA도 설정하고 결제 알림도 등록해두었다.
결제 내역도 매일 확인하는 중이다..ㅋㅋ
어찌저찌 프로젝트를 마치긴 했지만, 부족한 부분이 너무 많다.
배포 전엔 발견하지 못했지만, 실제로 배포된 사이트를 이용해보며 발견한 오류도 많고, 배포 자동화도 구현되어있지 않다.
또, 현재 프로젝트는 mybatis로 구현되어 있어 추후 JPA를 학습한 후 JPA를 사용하는 버전도 생성해야 한다.
거슬리는 부분이 한두 군데가 아니지만, 첫 팀 프로젝트에서 팀원과의 마찰 없이 배포까지 무사히 마쳤다는 것에 의의를 두고 있다.
아, 그리고 프론트 준비하시는 분을 구하지 못해서 디자인은 깔끔하게 포기했다.
공동 노션엔 정말 기본적인 사항들만 기록되어있어 개인 노션을 따로 정리했다.
노션: https://flicker-fall-0da.notion.site/0f0c3bead3014b50b6f7a2e00a5cbaec
동작 영상: https://k-mozzi.tistory.com/354
깃허브: https://github.com/k-mozzi/used_device_market_v2
'etc. > Project' 카테고리의 다른 글
중고기기 거래 사이트 v2 동작 영상 (0) | 2024.01.15 |
---|---|
중고기기 거래 사이트 v0 동작 영상 (0) | 2023.12.15 |
카카오 책 검색 REST API를 사용한 웹사이트 제작 (0) | 2023.07.13 |
Chat-GPT를 이용한 가상 피아노 (0) | 2023.03.07 |
php, MySQL을 사용한 게시판 (0) | 2022.11.08 |
댓글