1차 프로젝트 후기

leynsp·2022년 6월 6일
0

> wecode

목록 보기
1/2
post-thumbnail

부트캠프 과정을 진행하면서 꾸준히 블로그를 통해 내가 배운 것들을 남기고 회고하려고 했지만 절대적인 시간이 부족하여 미루는 것이 빈번했고, 1차 프로젝트가 마무리된 지금에서야 블로그를 작성하게 되었다.

1차 프로젝트 - wesulloc

6월 3일 드디어 말도 많고 탈도 많았던 1차 프로젝트가 종료되었다.
우리팀은 제주도 녹차밭으로 유명한 오설록을 클론 코딩하게 되었다.
나는 프로젝트에서 역할은 팀장, 프론트엔트 파트 리더로 일정 조율 및 관리를 맡았고,
프론트엔드 파트 내에서는 상품 리스트 구현을 담당하였다.

내가 맡은 상품 리스트는 상단의 캐러셀이 있고 하단에 상품 리스트가 있는 구조였다.
처음엔 캐러셀 클릭시 하단의 상품 리스트가 필터링 되는 복잡한 구조라고 생각했는데,
두 개가 별개의 구조라서 한시름 놓을 수 있었다.

개발 시작!

내가 담당하게 된 상품 리스트의 기능과 일정은 아래와 같았으며,
한정된 시간에 100% 구현을 목표로 각 기능별 우선순위를 정리하고 일정에 맞춰 나누어 진행했다.
프로젝트 기간 중 주말에 경조사가 끼어있어 평일에 최대한 집중하여 구현하려고 했다.

총 개발기간: 11일

- 페이지 상단의 캐러셀 구현 (우선순위: 중 / 기간: 2일)
- 카테고리 선택시 카테고리에 맞는 상품 리스트 정렬 (우선순위: 상 / 기간: 3일)
- 배열 형태로 상품 리스트 정렬 (우선순위: 중 / 기간: 1일)
- 소팅 기능을 통한 정렬 기능 구현 (우선순위: 상 / 기간: 3일)
- 페이지네이션 구현 (우선순위: 하 / 기간: 1일)
- 백엔드와의 통신을 통한 데이터 연결 (우선순위: 상 / 기간: 약 6시간)
- 프론트엔드 파트 작업물 merge 및 conflict 해결 (우선순위: 상)

누구나 그럴싸한 계획을 갖고 있다.

나는 내가 지금 어느 수준인지를 알고 있다고 생각했기 때문에 계획은 완벽하다고 느꼈다.
하지만 상대적으로 쉽다고 생각한 캐러셀 구현이 생각한대로 되지 않는 것이었다.
멘붕의 연속이었다. 이미 내가 계획한 일정이 무너지고 있었다.
프로젝트 팀장을 맡고 있었기때문에 누구보다 일정에 예민했으며,
다른 사람에게 폐를 끼치는 것을 극도로 경계하는 내 성격이 합쳐서 나를 계속 갉아먹기 시작했다.

고생 끝에 낙이 온다고 했던가.
학원 일정을 마치고 집에 돌아와 잠깐 쉬면서 내가 작성한 코드를 생각했고 마침 번뜩거리면서 다시 책상에 앉았다.
결과는 성공이었다. 물론 결과물은 하드코딩이지만 고민하게 만들던 문제가 해결되어 너무나 기뻤다.
그 이후로는 다시 내가 계획한 일정에 맞춰 개발을 진행할 수 있었다.

merge와 디버깅

서로 모르는 것은 알려주고 응원해주면서 일정을 진행하다보니 벌써 일정의 마지막 날...!
개인 작업은 모두 완료했고 이제 남은 건 merge뿐이었다.
각자 백엔드와의 통신도 깔끔했고 merge 후 연동될 페이지들의 연결도 이상없었다.
그러나 문제는 전혀 예상치 못 한 CSS였다. UI 컴포넌트 단위가 아닌 페이지 전체 스타일이 깨지는 대참사가 일어난 것이다.
개인 컴퓨터의 해상도가 달라 발생한 것이 아닐까 했지만 모두가 같은 문제를 보였다.
침착하게 개발자 도구를 켜서 적용된 SCSS 파일을 확인했고, 다른 SCSS 파일에서 클래스네임이 아닌 태그로 스타일을 적용한 것이 문제였다.
빠르게 문제를 해결 후 통신이 정상적으로 되는 것을 최종 확인하니 시간은 새벽 1시...
늦은 시간이었지만 한정된 기간 안에 목표한 필수 기능을 구현하였다는 것에 대해 팀원 모두 기쁨에 휩싸였다.

기억에 남는 코드

1차 프로젝트에서 상품 리스트를 담당한 동기들은 모두 "중첩 쿼리스트링"을 손에 꼽지 않을까 싶다.
세션을 통해 개념과 적용 방법은 습득하였지만, 필터와 소팅이 모두 적용되어야 하므로 쿼리스트링이 겹쳐야 했다.
각 기능에 useState를 이용해 상태를 저장하고 이를 쿼리스트링에 반영하면 된다고 생각은 했지만 어떤 식으로 적용해야 하는지 감이 잡히지 않았다.
결국 먼저 해당 문제를 작업한 다른 동기를 찾아가 물어보니 삼항연산자를 이용하여 해결할 수 있다고 조언을 받았고 이에 나도 해당 문제를 해결할 수 있었다.
삼항연산자는 사전스터디 때도 배우고 파운데이션 기간 때도 배웠는데... 아직 당면한 문제에 응용하여 해결하는 부분이 많이 부족하다고 느꼈다.

후기

우리 팀은 서로 배려하고 응원해주며 일정을 진행했기 때문에 별다른 갈등없이 프로젝트를 마무리 할 수 있었다.
그러나 프로젝트 초기에 API 명세서를 먼저 만들어두지 않고 작업하게 되어 중간중간 백엔드 팀원분이 힘들어하셔 많이 미안했다.
팀장을 담당하였는데도 전체적인 프로젝트 진행 방향을 제대로 파악하지 않았던 점 또한 개선해야 할 문제다.
개발도 중요하지만 시작과 일정! 모두 중요하니 이 부분을 꼭 잊지 않고 2차 프로젝트 때 반영해야겠다.

profile
Every creative work will be mixed up

0개의 댓글