WIL(14주차)

김규현·2022년 12월 5일
0

💻 Weekly I Learned

이번주는 팀 프로젝트를 병행 하면서 DRF에 대해 집중적으로 공부했다.

URL과 URI의 차이에 대해 알아보았고, REST API가 무엇인지, 왜 사용하는지, REST API를 설계하는 방법 등에 대해 알아보는 시간을 가졌다.

그리고 팀 프로젝트 중 모델링 후 migrations 하는 과정에서 circular dependency 에러를 겪어 왜 발생했는지? 그리고 각각 다른 파일에 있는 ForeignKey로 연결된 모델을 서로가 import 하려고 할 때 어떻게 해줘야하는지 해결 방법에 대해서도 알아보았다.

또 개인/팀 프로젝트를 할 때 항상 생각하지 못하고 push 해버렸던 Django의 SECRET_KEY를 별도의 비밀 파일로 분리하여 보관하는 방법과 SECRET_KEY를 다시 생성하는 방법도 알아보았다.

그리고 Serializer에서 fields를 선택하는 간단한 여러 방법(all, exclude, include, field_name)을 알아보았고, Serializer에서 입력한 fields에 대해서만 데이터를 주고 받는 것을 깨달았다.(자동생성 필드 제외)

마지막으로 Serializer에서 SerializerMethodfield로 필드를 추가하고 get_<field_name>으로 추가하는 필드의 pk 값을 다른 값으로 커스텀 할 수 있는 방법과 ForeignKey로 연결된 필드를 조회했을 때 기본적으로 보여지는 pk 값을 StringRelatedField로 해당 모델의 str 메소드의 인스턴스 값을 가져오는 방법을 알았다.

그리고, 특정 모델을 역참조하는 필드를 Serializer에 가져오고 싶을 때는 related_name으로 역참조된 모델로 생성된 Serializer를 입력해주면 역참조한 모델로 생성된 객체를 가져오는데 이 때 queryset이나, 객체 리스트는 꼭 many=True를 걸어주어야만 에러가 발생하지 않는다는 것도 알았다.

한 주 동안 drf의 기초 부분을 다지는데 시간을 많이 들였지만, 아직까지 부족한 점이 스스로에게 많이 보여진다고 느꼈다.

다음에는 ORM과 시리얼라이저를 좀 더 깊이있게 다루어 보면서 경험을 쌓아 나가야겠다는 다짐을 해본다.

profile
웹개발 회고록

0개의 댓글