본문 바로가기
개인공간(Personal Web Space)/프로젝트 후기

아쉬움이 많은 2차 프로젝트

by 쿠키쿠 2023. 4. 28.

1.  프로젝트 소개

  • 프로젝트 사이트 : Airbnb를 모티브로한 팀 프로젝트
  • 프로젝트 소개 : 세계 최대의 숙박 공유 서비스이며, 자신의 방이나 집, 별장 등 사람이 지낼 수 있는 모든 공간을 공유할 수 있는 플랫폼입니다.

2.  프로젝트를 선정한 이유

  • 다양한 숙박 공유 서비스 중, 가장 직관적인 UI와 User Friendly 한 환경을 제공합니다.
  • 폭넓은 숙박 필터링 검색을 제공하며, 사용자가 원하는 위치, 날짜, 테마, 가격, 시설 등을 선택해서 최적화된 결과를 보여줍니다.

3.  개발기간 및 인원

  • 개발기간 : 2022년 10월 31일 ~ 2022년 11월 11일
  • 개발 인원 : 7명(FE 4명, BE 3명)

4.  사용된 기술 스택

  • FE :  Javascript, React
  • BE : Javascript, Node Js, Express, Mysql, AWS(EC2, RDS)
  • 협업 도구 : GIT, GITHUB, TRELLO, FIGMA, POSTMAN

5.  프로젝트 시연 영상

6. 구현한 페이지

1)  메인페이지

 

2) 로컬 및 글로벌 필터링

 

7.  어려움 및 극복 과정

 

  • 필터링 코드를 작성하는 과정에서 switch 문으로 작성 시 매개변수가 3개만 되더라도 해당 조건의 경우의 수가 8가지가 되어 코드가 의도치 않게 길어졌다. 에어비앤비 사이트는 필터 조건이 지역별, 체크인 체크아웃 날짜, 여행자 수, 테마별, 도시, 가격 범위, 침실 침대 욕실 수, 건물 유형별 이렇게 총 8 종류이며 사용된 쿼리 파라미터가 13개라서 조건에 따른 필터링 구현 시 switch 문을 사용하면 코드가 길어질 가능성이 농후하며 무엇보다 case 문 조건식에는 필터링 조건을 위한 코드 작성 시 오류가 발생하였다.

  • 이러한 점을 해결하기 위해 if 문과 count 변수를 사용하여 필터링 조건을 구현하였다. count 기본값을 0으로 설정해서 해당 파라미터에 값이 들어올 시 count에 1씩 더하여 count의 수가 0인지 아닌지에 따라 다른 조건의 쿼리 문의 들어갈 수 있게 구현하였다. 이렇게 하니 코드의 길이도 줄어들고 가독성도 한결 나아졌으며 에러가 발생하여도 무엇이 문제인지 빠르게 찾아낼 수 있었다.

 

1차 프로젝트 때는 필터링을 제대로 해보지 못해서 2차 때 필터링을 주력으로 맡게 되었다. 8종류의 필터 조건에 따라 쿼리문을 작성해야 되었고 그에 따라 조건들을 걸어줘야 해서 처음엔 많은 시행착오가 있었다. 전체적인 flow를 그려본 후 그에 따라 필터링을 적용시켰어야 했는데 큰 단위로 보지 못하고 메인 --> 로컬 --> 글로벌 필터 순으로 단순히 생각하여 적용시키다 보니 더 앞쪽에 사용했어야 하는 쿼리 문의 뒷 단에 사용되는 등의 오류가 빈번히 발생하여 대대적인 수정도 이루어졌다. 또한, 8중 필터링을 구현하다 보니 생각지도 못한 곳에서 빈번한 오류가 발생하였고, console.log를 찍으며 무엇이 문제인지 찾아갔다. 대부분의 문제가 Dao 단에서 조건에 따라 쿼리문 연결 시 발생하는 오류였고 조건이 많아질수록 올바른 쿼리 문의 조건에 따라 구현될 수 있게 코드를 짜는 것이 까다로웠다. 이 과정에서 무작정 코드를 치는 게 아니라 구체적인 flow에 따른 방향 설정의 중요성을 알게 되었고 쿼리 문의 구조에 대해서도 좀 더 심도 있게 알게 되는 계기가 되었다. 또한, 에러 발생 시 에러 문제를 해결해 가는 데 있어 이전보다 수월하게 접근할 수 있게 되었다.

 

8.  프로젝트 후기

내가 생각하는 프로젝트의 협업은 팀원들끼리 같은 문제에 대해 서로 논의하며 함께 해결해 가는 것, 그리고 그 과정에서 함께 성장해 나가는 것이라고 생각한다. 그러나 2주라는 정해진 기간 안에 결과물을 보여줘야 하는 프로젝트이기에 나의 생각은 욕심에 지나쳤다.

마지막 날 프로젝트 시연 영상을 촬영할 때 내가 맡은 필터링 파트에서 여러 부분들의 기능이 구현될 수 없음을 통보받았다. 해당 상황에 대해 미리 전달받았으면 충분히 이해할 수 있었겠지만 발표 전날 갑작스럽게 이야기를 듣게 되니 여러모로 아쉬움이 많이 들었다. 물론 모든 것을 만족시킬 수는 없다고 생각한다. 또한, 프로젝트 진행 중 변경 사항들이 생기면 팀원들에게 미리 알려준 후 과정이 진행되기를 바랐는데 자의적으로 수정 후 팀원에게 자신의 것으로 맞추기를 바라는 점들이 아쉬움으로 남았다.

이번 프로젝트를 통해 팀 간의 소통과 협업이 얼마나 중요한지 알게 되었다. 앞으로 마주하게 될 프로젝트에서는 이러한 점을 보완하여 소통을 중요시하며 프로젝트는 협업임을 상호 간에 인지할 수 있도록 프로젝트 방향성을 초기부터 설정하여 진행해야겠다.