영국 60년 정통 패션 브랜드 샌들, 슈즈, 부츠 등을 취급하는 세계적인 의류 기업 닥터마틴(www.drmartens.co.kr)을 클론하는 프로젝트를 2020.06.22 ~ 2020.07.03 약 2주간 진행했다.
프론트엔드 3명, 백엔드 3명으로 구성되었고, 나는 백엔드 중 한명이었다.
팀원들과 함께 모델링을 했다. user, product, cart 세 부분으로 나눴다. 검은색은 user, 초록색은 product, 보라색은 cart이다.
프로젝트에서 users, product_app, cart_app 세 개로 app을 나누고 각각의 기능들을 구현했다.
users
product_app
cart_app
이번 프로젝트를 진행하면서 처음 사용하는 코드들이 많았고, 알고있으면 좋을 코드들을 정리해봤다.
re 함수를 import 해와서 re.match를 쓰면 정규식과 data로 받는 아이디 패스워드를 비교한다. 비교해서 없으면 none이 나오고 에러를 리턴하는 코드이다. 정규식을 사용해서 유효성 검사를 해보는건 처음인데 테스트해볼때 특정문자가 들어가지 않으면 저장이 안되는게 신기했다.
데코레이터 함수는 아직도 많이 어렵다. 이번에 로그인 확인하는 데코레이터 함수를 작성해봤는데 토큰이 있다고 해도 바로 적용되는게 아니라 토큰을 디코드 하고 db에 저장되어있는 유저id와 다시 한 번 더 확인을 해야 적용됐다는 사실을 깨닫게 되었다.
list comprehension을 실제로 사용해본건 처음이다. 처음 배울때는 적용하기 어려울 거라고 생각했었는데 막상 사용해보니 생각보다 쉬웠고, 코드가 줄었고, 속도도 빨라졌다. 언제 사용하는지 써먹을지 잘 몰랐는데 이럴때 사용해야된다는것을 깨닫게됐다. 자주 사용해야겠다고 생각했다.
select_related, prefetch_related를 처음 배웠고, 처음 써봤다. 아직 확실하게 이해하진 못했다. 그래도 일단 사용해봤는데 db에 히트하지 않고 데이터를 가져오기 때문에 속도가 향상된다.
그리고 복잡하게 포린키로 연결되어있는 테이블의 데이터를 가져올때 어느곳에서 출발할 지 기준을 잡고 __
을 사용하면 중간테이블을 건너뛸수있다. 이 사실을 몰랐을때는 하나하나 테이블을 넘나들면서 코드도 길어지고 복잡했는데 __
을 알고나니까 훨씬 간편하게 넘나들 수 있었고 가져올 수 있었다. 저걸 몰랐으면 지금도 헤매고있을것이다.
월요일부터 2차 시작인데 몰랐던 부분 잘 짚고 넘어가서 많이 성장할 수 있도록 노력해야겠다.
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ정민님 댓글ㅋㅋㅋㅋㅋㅋ동건님 왜 댓글도 웃겨요? 부럽다 진짜~ㅋㅋㅋㅋㅋ 동건님 고생 많으셨어요 👏🏻👏🏻👏🏻👏🏻 새 팀에선 prefetch_related 신이 되어주세요 🌟 그리고 꼭 웃겨주세요 제가 멀리서 엿듣고있을거에요 입꼬리 씰룩씰룩