본문 바로가기

프로그래밍/후기

소프티어부트캠프 3기 최종프로젝트 후기

프로젝트 배경

최종 프로젝트에 앞서 뽑기를 통해 4인팀에 선정되었다. 2 web FE, 2 web BE팀으로 평균적으로 5인팀이었던 것에 비해 사람이 한 사람 적은 단점이 있지만 뭐 하면 되겠지? 라는 마인드였다.

 

프로젝트 초기

기획이 제일 어려웠던 것같다. 기획 아이디어만 있다면 무엇을 만들지 어떤 포인트를 가지고 갈지가 결정되는데 팀원중에 좋은 아이디어를 가져와서 빠르게 개발및 환경 설정에 들어갈 수 있었던 것 같다. 최종 주제로는 화물운송용달 서비스 가 선정 되었고 첫주에는 기술스택이나 ERD, API문서 등의 설계에 들어갔다. 우리는 고객앱 그리고 예약을 잡는 기사앱 두개를 전부 하려고 했고 그만큼 인력에 비해 시간이 부족했던것 같다.

 

다 끝나고 와서 드는 생각인데 구현도 물론 중요하지만 설계를 더 단단히 하고 갔어야 됬다. 우리 같은 경우에는 서비스에 비회원을 넣고자 하였는데, ERD나 코드면에서 예약 쪽에서 오히려 방대해지고 처리하기 힘들어졌다. 

프로젝트 중기

나는 차량 추천 알고리즘 및 예약 생성 쪽으로 작업하였고 다른 분은 인증/인가 프론트 들은 고객 앱 페이지를 만들어갔다. 웹 프로젝트지만 기획쪽에서도 편리를 가져가고 싶었고 서비스가 웹 앱으로 했을때 강점이 있어보여 PWA라는 기술을 적용하여 앱으로 만들게 되었다. 프로젝트 총 기간이 3주 정도인데 우리의 목표는 빠르게 버전1을 만들고 최적화한 버전2를 최종적으로 제출하는것이었다. 팀원중에 배포해본 사람이 적어서 배포에 상당한 고생을 들였는데, 여러 시행 착오가 있었다. s3를 사용하지않고 ec2에 프론트 배포를 했었는데 버전1을 만들고 설문을 위해 지인들에게 뿌렸는데 서버가 터져버려서 고민을 많이했었다.

 

어찌저찌 고생하여 기사앱까지 만들고 이제 성능 개선점 만이 남았다. 다른팀이 필요한 부분에 동시성 처리나 시스템적 편의 처리를 하고 나는 db full scan하지 않고 전국의 예약 출발지를 정렬해서 보여주는 방법에 대해서 연구하고 있었다. 공간인덱스, 위도 경도 처리 등의 방법들을 생각해 봤는데 최종적으로는 시, 도를 기준으로 bfs를 돌려 인접한 지역을 처리 하는 방식으로 구현했다. 지금봐도 이게 맞는지 모르겠다.

프로젝트 최종발표

플젝 최종발표를 했다. 발표자료 역시 열심히 만들었고 우리의 핵심이 사용자 중심 개발이기 때문에 워딩 등에 상당히 신경써서 준비를 했던 것 같다. 다른 팀들의 발표를 들어봤을때 정말 3주안에 완성한 프로젝트 들이 맞을까 싶을 정도로 부족한 팀들이 없어 보였다. 기술적으로 강세를 가지고 간 팀들도 여럿 보였고 우리처럼 편의와 협업 쪽을 가지고 간 팀들도 있었다. 기억나는 것중 하나는 심사위원중 한 분이 bfs코드를 보고 인상깊었다고 말했다. 좋은 뜻일 거라 생각한다. 최종적으로 우리팀이 우승 (전체 2등) 을 하였는데, 난 우리팀도 잘했지만 다른팀들도 비교할 수 없이 잘했다고 생각한다. 

 

회고

프로젝트 하는동안 모르는것들을 정리해가며 공부하며 많은 걸 배울 수 있었다. 최종 발표 때 질문으로 왜 이런걸 사용했냐 라는 질문이 나올 수 있기 때문에 준비하는 겸사겸사 했었다. 그리고 그런 질문 역시 나왔다. querydsl관해서 왜 구현체로 사용했냐고 했는데 그건 내가 구글링 한거에서 들고온 코드라서 잘 대답을 못했다. 

 

이 외에도 주마다 있던 피어세션,  데모에서 우리말고 다른 팀들은 어떤걸 목표로 두고 개발하고 있는지 어떤 기술들을 사용하고 왜 쓰고 있는지에 대해서 알아 볼 수 있었고 내가 모르는 것이 너무 많았던 것 같다. 개발 관해서는 인력 부족이 이렇게 크다는 사실을 깨닫게 되었다. 내가 개발하는 것을 누군가 한 사람만 더 해줬어도 인프라에 좀더 신경 쓸 수 있었을 것 같았다.

 

정말 힘들었던 두 달이었던 것 같은데, 많은 걸 배울 수 있어서 후회가 남지는 않는다.

 

https://github.com/softeerbootcamp-3rd/Team4-HansalChai