[새싹X코딩온] 웹 개발자 부트캠프 과정 17주차 (1) - 2차 프로젝트 회고

임진우·2025년 3월 19일
0
  1. 3F
    1) Fact : 실제 벌어진 사실
    지난 1차 프로젝트 때 사용자 관점에서 생각해보는 것이 중요하다는 걸 알게 되었다. 그래서 이번에는 그 부분에 초점을 맞춰 아이디어를 생각하다가 소켓과 접목하여 실시간 주문 서비스를 만들어보면 어떨까 하는 생각이 들었다. 평소 점심시간에 주문 기다리는 시간을 아까워 하던 경험에서 비롯한 것이었다.

그래서 다같이 웹 페이지 구상을 시작했는데 일단은 크게 가게를 등록하고 메뉴를 판매하는 점주 페이지와, 가게를 선택해서 메뉴를 주문하는 손님 페이지로 구분짓기로 하였다. 처음에는 점주 페이지만 해도 시간이 모자라지 않을까 싶었지만 일단은 주문이 가능하려면 손님 페이지도 완성되어 있어야 했기에 두 페이지 모두 개발을 진행하기로 했다. 단, 시간이 한정되었기에 점주 페이지를 우선시 하기로 하였다.

개발을 시작하고 첫주 동안은 회의만 진행했었다. 처음에 다같이 모여서 요구사항 명세서를 작성하고, 그걸 바탕으로 간단한 와이어프레임과 ERD를 작성하고, 역할을 분배하다보니 1주일이란 시간이 훌쩍 흘러갔다. 주어진 기간은 3주였기에 다소 많은 시간이 할애된 것이 아닐까 우려가 드는 부분이었다.

그러나 실제로 개발을 진행했을 때는 기본 로드맵이 그려져 있었기에 꽤나 빠른 속도로 진행할 수 있었다. 팀원 모두가 프로젝트 전반적인 설계 과정에 참여하였던 덕분이었다. 뿐만 아니라 스크럼 회의도 주 3회씩 진행하며 서로의 진행사항을 공유하고 목표 단계를 수정해 나갔다. 결과적으로 2주라는 시간이 제한적이긴 했지만 그럼에도 실시간 주문 기능을 구현하고 점주와 사용자 페이지를 만들자는 1차 목표는 달성할 수 있었다.

2) Feeling : 느꼈던 감정
이번 프로젝트에서도 저번과 마찬가지로 각자의 페이지를 각자가 맡아 프론트 엔드와 백엔드를 모두 도맡았다. 이런 방식으로 했을 경우 장, 단점이 명확했는데 장점은 협업의 의존성이 낮아 독립적인 개발이 가능해져 속도가 향상되는 것이었고 단점은 서로의 진행 상황에 대해 영향을 주기가 어렵고 서로의 페이지간의 결합도가 낮아진다는 것이었다. 그 결과 우리 프로젝트는 거의 막바지에 다다라서야 서로의 페이지를 연결하고 실제 기능을 수행해볼 수 있었고 나는 그쯔음에야 한 가지 문제를 알게 되었다.

우리의 주 목표는 '실시간 주문'이 가능한 웹 서비스를 만드는 것이었다. 그러나 너무 부가적인 사소한 것들까지 신경쓰고 있었다라는 생각이 들었다. 예를 들어 마이페이지나, 매출 관리 부분, 댓글 리뷰 같은 기능들이 이에 해당되었다. 실제 웹 사이트에 가깝게 만들려다보니 생긴 부작용이었는데 이것보다는 실시간 주문 기느을 더 우선시 해야 했다. 며칠 남지 않은 단계에서 우리가 구현한 기능은 단지 사용자의 주문을 점주가 확인하고 실시간으로 주문 상태를 보내주는 것 정도였으니 말이다.

단지 주문을 확인하는 것에서 더 나아가서 점주가 주문을 거절할 수도 있고, 그럼 다시 사용자에게 거절 알람이 간 뒤 대화 요청 버튼을 누르면 실시간 대화 창이 생성되어 점주와 취소 사유에 대해 대화할 수 있고, 더 나아가 사용자가 주문 내역에서 취소된 주문에 대해 재주문 버튼을 클릭하면 자신이 주문했던 메뉴가 다시 장바구니에 담기채로 가게 상세페이지로 전환되는 등 실시간 주문과 관련해서 더 다양한 기능을 구현할 수 있을 것 같았는데 이걸 깨닫는 것이 너무 늦었다.

3) Finding : 배운 점
이번에는 저번 프로젝트에서 배웠던 '사용자 중점'이라는 부분을 생각했던 것은 좋았다. 그래서 기능적인 부분에서도 우리만의 개성있는 요소들을 추가할 수 있었고. 그러나 이번에는 우선순위에 대해 간과하고 말았다. 우리가 프로젝트를 진행하는 이유는 '실제 웹 사이트' 만들기가 아니라 혼자 구현하기에는 벅찬 기능을 효율적으로 구현하기 위함이라고 생각한다. 많은 업무량을 서로 나누면서 소요되는 시간을 단축시키는 것이다. 그런 의미에서 생각해보면 부가적인 기능보다 '실시간 주문' 이라는 기능에 초점을 맞추고 여기서 확장을 시켜나갔어야 했었는데 이번에는 서로 각자의 작업을 했었다 라는 느낌을 받았다.

아마 이 문제는 요구사항명세서 작성 시 우선순위를 명확하게 구분짓지 않았기 때문인 것 같다. 우선순위를 구분하는 행위를 간과하고 대략적으로만 진행한 뒤 넘어간 결과였다. 다시 생각해보면 가장 중요하다라고 표시했던 기능들이 너무 많았다. 차후 진행될 프로젝트에서는 우선순위를 명확히 하고, 페이지간의 연결성을 좀 더 높여서 기능과 개발적인 측면에서의 중요성을 고려해 보아야겠다.

profile
티스토리 이전중입니다 https://ijw98.tistory.com/

0개의 댓글