위코드 1차 나위키팀 프로젝트 회고

이한재·2023년 2월 19일

2월 6일 부터 2월 17일 까지 진행된 프로젝트가 끝이 났다.

팀이 선정되고 나이키의 웹사이트를 클론 코딩 하는것으로 정해졌다.

처음에는 기능 구현을 하는 것에 초점을 두고 기술적으로 어떻게 접근해야 나이키라는 웹 서비스에 가장 근접하게 구현 할 수 있을까 고민을 했다.
예를 들면 나이키에서 회원가입 할 때 이메일 인증 방식 같은 것이나 무한스크롤방식으로 페이징을 구현했던 부분들을 고려했었다.

하지만 프로젝트를 진행하게 됨으로써 깨닫게 된 사실은 처음 부터 기술적으로 완벽하게 나이키 사이트와 똑같이 구현하는 것 보다 프로젝트 기간이 짧기 때문에 기본에 충실해서 기본 기능 구현에 초점을 맞추고 프론트와 백엔드간 문제점이 발생 할 수 있는 경우의 수를 최대한 줄이는게 짧은 기간내의 팀 프로젝트에서 완성도를 높이는 방법이라는 것을 깨닫게 되었다.

문제점

그리고 프로젝트를 진행하면서 느낀 문제점 몇가지 정리해보려 한다.
데이터 모델링에 시간 투자를 너무 많이 했다는것이 첫번째 문제점인 것 같다.
데이터 모델링이 예상 기한 보다 하루 반 정도 더 시간을 쏟게 되었다. 그렇게 됨으로써 기능 구현하는 시간이 더 짧아 지게 되었고 결과적으로 기능 구현의 완성도도 낮아졌고 프론트엔드와 통신하는데 필요한 시간도 줄어들게 되었다.
그리고 처음부터 완벽한 데이터 모델링을 구축할 수 없다고 생각하고 있고 프로젝트 진행하면서 역시 중간중간 몇차례 데이터 모델링을 수정함에 따른 코드의 수정도 불가피하게 됨으로써 시간을 더 소비하게 되었다.

두번째 문제점은 위에서 서술한 문제점의 결과이기도한데 프론트와 백엔드의 통신하는 시간이 줄어듬에 따라 서로 이미 기능구현은 되어있다하더라도 통신을 해 보면서 코드를 수정해야 할 부분이 분명 있기 마련인데 FE, BE 통신을 맞춰보는 시간을 많이 갖지 않아서 Route 가 서로 다른 규칙성을 띄고 있었던 부분도 아쉽고 통신하면서 fetch 메서드 이용시 다음과 같은 CORS 정책위반에 관한 에러에 직면하기도 했었고 이 때문에 시간을 많이 잡아먹게 된 것도 큰 문제점 중 하나였다.

Access to fetch at ‘https://api.lubycon.com/me’ from origin ‘http://localhost:3000’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. If an opaque response serves your needs, set the request’s mode to ‘no-cors’ to fetch the resource with CORS disabled.

개선점

처음 부터 완벽하게 데이터 모델링하려고 노력하지 말고 기본에 충실한 모델링을 만드는 방식으로 가는게 맞는 것 같다.

Agile 프로세스 적인 관점에서 봤을때 먼저 스프린트간 필요한 작업을 기능단위로 세부적으로 잘게 쪼개서 작업 흐름에 맞게 업무 분담을 하는 것이 좋을 것 같다.
예를 들면 로그인 기능과 회원가입 기능은 흐름이 같고 장바구니 기능과 결제하기 기능은 같은 흐름을 공유하고 있다.
따라서 팀 업무 효율을 높이기 위해서는 기능 단위로 같은 흐름을 갖는 업무별로 팀원들에게 할당이 될 수 있게 한다면 좀 더 생산성을 높이고 업무 효율이 높아 질 것 같다.

FE, BE 의 작업 context 를 맞추는데 시간을 더 할애해야 겠다. BE 기능구현이 먼저 앞서 나가던지 또는 FE 기능구현이 먼저 앞서나가더라도 결국 결과물은 서로로 기능 구현이 완료된 교집합에 대해서만 실질적으로 사용이 가능하고 시연이 가능한 부분이기 때문에 FE, BE 간 작업 context 를 맞추는게 중요할 것 같다.

이 작업 context 를 맞추는데에는 Route 의 convention 을 맞추는 것과 Request Body, Reponse Body 의 JSON 형식을 맞추는 부분도 포함이 될 것이다.

profile
이한재입니다

0개의 댓글