레시피 사이트 프로젝트 재작성
부트캠프 최종 프로젝트였던 ㅇㅇ식탁
을 DRF로 다시 작성하는 과정을 담는다.
원본
리메이크
- 1. 회원가입, 로그인, 로그아웃
- 2. 레시피 등록, 수정, 삭제
- 3. Permission
- 4. MySQL 연결하기
- 5. 레시피 등록/수정할 때 새로운 재료 등록
- 6. JWT
- 7. 레시피 후기 등록, 수정, 삭제
회고
고등학교 시절 별을 보고 싶다는 이유로 1학년 현장학습에서 천문대로 가는 프로그램을 신청했는데 흐리고 비가 와서 결국 별을 못 보다 (아마도) 1학년 겨울에 학교 운동장에서 망원경으로 토성을 보는 걸로 만족해야 했던 경험이 있었다. 아쉬워서 2학년 때 창체로 지구과학 동아리에 들어가서 늦은 시간에 학교 옥상에서 망원경으로 행성을 본 적이 있었다. 망원경 조립이 재미있었고 잠열 실험을 했던 기억이 난다.
DRF가 약간 그런 느낌이었다.
부트캠프 과정 수업에서 DRF를 다룬 건 이틀이었고, 세미 프로젝트 I 때에는 여러 현실적인 문제들 때문에 DRF로 기능을 구현하다 다시 종전의 방식으로 구현해야 했다.
세미 프로젝트 II와 최종 프로젝트에서도 DRF를 써보고 싶다고 생각했다. 쓰지 않는 대신이라고 하긴 좀 그렇지만 함수 기반 뷰가 아니라 클래스 기반 뷰를 사용했다.
그러는 동안 Django의 클래스 기반 뷰 공식문서로 시작해 DRF 공식문서를 해석했다.
해석을 하면서도 이건 어떤 기능이 있는가를 살펴보는데 의미가 있기도 하지만 영어 공부에 가까운 것도 있지 않나 싶었는데 DRF로 프로젝트 일부를 다시 작성하면서 꽤 도움을 받았다.
레시피 작성/수정, 그 중에서도 재료 추가/수정/삭제는 원본 프로젝트 진행 당시 거의 사나흘 정도 동안 제대로 진행을 못했던 부분이다.
세미 I 때의 다중 이미지 수정/삭제 구현도 비슷하게 시간이 걸렸는데, 지금 생각해보면 두 경우 모두 공식문서를 잘 살펴보고 진작에 request를 잘 뜯어봤다면 그렇게까지 오래 걸리지 않았을 수도 있었던 것 같다.
이번에는 예전에 이미 구현했던 것을 다른 방식으로 구현하지만 기본적인 로직이 크게 다르지는 않아 구현하기가 어렵지는 않았다.