PROJECTS

Team Project 6 | 7월 12일 |

nicesugi 2022. 7. 12. 07:35

☀️ https://github.com/2JYK/iPark_django_backend ☀️

☀️ https://github.com/2JYK/iPark_frontend ☀️


💨 오늘의 고민: 

어제, 오늘 계속 최종 S.A 수정하고 (팀장이 바톤터치를 원하길래 해줬는데.. 할 일이 은근 많은 팀장직..ㅎ..)

맡은 구역 API 작성하고 수정하고,

json파일 수정하고 DB 수정하고,

테스트 코드 작성하며 작성한 함수 리팩토링 진행하니 진도가 안나간ㄷㅏ..

리팩토링 끝내고 소셜부분도 작성하고 프론트도 작성하고 다음주 초에는 CI를 해야할텐데 갈 길이 멀다!


앞으로 더 리팩토링을 하겠지만 작성한 코드를 리뷰하고자 함

☀️ 공원 상세페이지

filter와 get을 잘 구별하고 내가 원하는 데이터가 뭔지 그려본 다음 사용하기

 

- 공원의 pk값을 받아와 매개변수(parameter)로 넣어주고 그 값을 url로 지정

- 해당 공원의 모든 field값을 직렬화(serializer)하여 JSON형태의 데이터로 변환함

- 여기서 ParkDetailSerializer은 Park모델의 시리얼라이저로, 댓글에 대한 필드가 없어 따로 코드 작성하여

    공원 상세페이지에서 공원 정보와 함께 댓글들도 같이 볼 수 있게 함

조회 get

 

☀️ 댓글 작성

테스트 코드를 진행하다보니 status에 따른 코드 작성이 필요하다는 것을 느끼니 코드가 점점 늘어나고 있습니다..

- 우선 공원 상세페이지는 모든 이용자가 조회가 가능하기 때문에, 댓글 작성시 권한부여가 필요

-> 회원 / 비회원 구별 -> 비회원 : status, 401

                                 -> 회원 -> 댓글이 올바르게 작성된 경우 : 댓글 저장 성공

                                              -> 공란으로 작성할 경우 : status, 400

현재 validate 함수와 create 함수는 필요성을 못느껴 작성하지 않음

댓글post

 

☀️ 댓글 수정

해당 api의 url은 'park/<park_id>/comment/<comment_id>/ '로 고민을 많이 했던 부분으로

사실 park_id 부분이 없어도 되나 url이 넘기다 보면 물 흐르듯이 url만 보고도 어디에서 뭘 하는구나를 알게끔 만들고 싶었다.

여기서 문제를 많이 겪었었는데, comment_id는 정의하기가 쉬워 수정하는데에 별다른 어려움은 없었다.

하지만, comment_id의 내용을 수정할 때에 request에서 park_id를 잘못 지정을 했을 경우 park_id도 같이 변경되는 일이 발생되어 

park_id 부분을 버릴까도 고민을 많이 했고 실제로도 없이 진행을 했었다.

하지만 테스트코드를 작성해가며 리팩토링을 진행하다 마지막에 질척이는 마음으로 url 을 바꿔보니 해결이 되있었음

여윽시.. 테스트 코드.. + 포스팅을 써보니 회원/비회원 구별 조건도 넣어야겠다.

 

- comment 는 로그인한 회원이 작성한 댓글로 지정

- try, except 문을 사용해 로그인한 회원 작성 댓글이 없을 경우를 제외해줌 : status, 404

- 댓글이 있는 경우 -> 댓글내용이 새로 (수정)입력되는 댓글 내용과 일치할 경우 : status, 400

                             -> 댓글이 올바르게 작성된 경우 : 댓글  성공

                             -> 공란으로 작성할 경우 : status, 400

댓글 수정 put

 

☀️ 댓글 삭제

사실 수정만 작성되면 삭제부분은 너무 쉽게 진행되는 부분이지만, 다시 보니 빈틈 투성인듯하다.

회원/비회원 구별 조건도 넣고 매개변수에 park_id 값도 넣어줘야겠다..

 

- try, except 문을 사용해 로그인한 회원 작성 댓글이 없을 경우를 제외해줌 : status, 404

- comment 는 로그인한 회원이 작성한 댓글로 지정

댓글 삭제 delete

반응형