RawRow 클론 프로젝트 회고록

문성호·2020년 9월 28일
2
post-thumbnail

1) 프로젝트 소개

  • 위코드 1차 프로젝트. 가방, 안경, 악세사리등을 판매하는 로우로우 사이트를 클론하는 프로젝트를 진행
    하게 되었다.

  • 2주라는 시간관계상 사이트의 모든 카테고리들을 다 클론할 수는 없었고,
    상품 소개 페이지인 Product 카테고리와 하위 카테고리들의 상품 리스트와 각 상세 페이지들을 클론했다.

  • 기간 : 2020.09.14 ~ 2020.09.25
    역할 :
    Front : 이흥수, 김상준, 배규덕(PM님)
    Back : 이수현, 문성호(나)

2) 사용된 기술

  • Python, Django
  • RESTFul API
  • BCrypt, PyJWT
  • Mysql
  • Cors Headers
  • Github

3) 나의 주요 역할

  • 모델링 및 상품 리스트 크롤링 참여
  • DB에 CSV 덤프
  • 회원가입 후 로그인 시 인증을 사용자 인증을 위한 로그인 데코레이터 구현
  • 장바구니 기능 구현 (추가, 삭제, 변경)

4) 과정

(1) 모델링, 크롤링, DB 덤프

  • 프로젝트 전 스타벅스 모델링을 연습하고서는 생각보다는 할만하다고 생각했던 건 착각이었다.
    로우로우 프로젝트의 DB를 모델링하는 건 단어를 배우자마자 소설을 쓰는 느낌이었다.

  • 백엔드 동료인 수현님이 짜는 모델링을 이해하고, 크롤링을 진행한 후 DB에 덤프하는 과정을 거치면서야
    모델링이라는 게 어떤 것인지, 왜 모델링을 그렇게 해야 하는지에 대해 비로소 감이 잡히기 시작했다.

  • DB에 CSV 파일을 덤프하는 과정도 쉽지 않았다. 그러나 단언컨대 내가 이 역할을 할 수 있었던 건 행운이었다. 실제 DB에 덤프하는 코드를 작성하고 밀어넣는 작업을 이틀 간 거치면서, 관계형 테이블과 모델링에 대해 깊이 이해할 수 있었다.

(2) 장바구니 기능 구현

  • 수현님은 상품 리스트와 상세 상품 페이지를 구현하고 계셨고, 나는 장바구니 기능을
    구현하게 되었다. 처음에는 겁을 먹었던 것이 사실이지만, 멘토님의 조언으로 실제 부딪혀보니 로직이 어렵지는 않았지만, 장바구니 기능을 구현하면서 장고의 CRUD 기능을 모두 적절하게 사용할 수 있는 경험을 해볼 수 있었다.
  • 또한 POST, PATCH, GET, DELETE Method를 활용하고, Path Parameter로 RESTful하게 구현하는 것을 실제로 적용해본 경험은 매우 큰 소득이었다.

(3) 로그인 데코레이터

  • 오히려 문제는 장바구니가 아니라 로그인 데코레이터였다.
  • HTTP 통신은 Stateless 특성을 가지고 있기 때문에, 로그인을 했다고 하더라도 다른 페이지를 요청하는 등의 Request를 받았을 때 그 결과를 기억하지 못한다. 모두 독립된 상태로 인식한다.
  • 그래서 로그인할 때 인증 Token을 발행하여, Client에게 넘겨주고 Client는 그 Token을 Request의 Header에 저장한 채, 사용자 인증이 필요한, 즉 로그인이 필요한 페이지를 돌아다닐 때마다 그 Token을 DB에 있는 Token과 비교하여 DB로부터 사용자 데이터를 넘겨받는다.
  • 이 과정을 이해하는 것이 생각보다 쉽지 않았고, 구현해서 코드에 적용하는 데까지 꼬박 5~6시간이 걸린 거 같다.

5) 느낀 점

(1) 팀원과의 소통이 절반이다.

  • 슬랙, 트렐로 등 다양한 소통방식에 스스로를 노출시키는 것이 쉽지 않았다.
    이래서 개발자는 협업이 코딩실력보다 더 중요하다고 했던 것 같다.
    친구들과의 카톡 답장에만 익숙했던 내게는 적응하는 데 노력이 필요한 부분이다.

(2) 누군가에게 설명할 수 없는 지식은 내 것이 아니다.

  • 제목 그대로 누군가에게 설명할 수 없는 지식은 내 것이 아니다라는 생각이 들었다.
  • 개발자는 소통과 협업이 절반이고, 내가 짠 코드를 남에게 설명하는 것이 전체 업무의 비중에서
    매우 큰 비중을 차지했다.
  • 내가 알고 있는 것들이 내가 알고 있는 것이 맞는지 확인하며 공부하고 일하는 습관을 들여야겠다.

5) ...

개발이라는 분야는 단기간에 변화가 많고, 받아들여야 하는 내용들도 많다.
단순히 코딩이 좋아서 이 분야에 발을 들였다. 난 비교적 정적인 삶을 살아왔다.

내 성향과 다소 배치되는 이 분야에서 내가 어떤 방식으로 살아남을 수 있을지, 적응할 수 있을지 걱정되는 것도 사실이다.
당장 단시간에 스스로 변화를 유연하게 받아들이고 적응할 수 없을지도 모른다.
그러나 언제나 늘 그랬듯이 어떤 형태로든 나에게 맞는 답을 찾아낼 것이라 스스로에게 기대한다.

profile
오늘을 모아 내일을

1개의 댓글

comment-user-thumbnail
2020년 10월 2일

잘보고갑니다

답글 달기