Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

Nonamed Develog

[TIL][240829] RESTful API, DRF 기초 본문

WHAT I LEARN/TIL

[TIL][240829] RESTful API, DRF 기초

노네임드개발자 2024. 8. 29. 20:42
어떤 문제가 있었나?

이번 장고 심화 강의를 들으면서 RESTful API와 Django REST Framework(DRF)를 처음 접하게 되었다. 특히 REST의 개념과 RESTful API의 원칙을 이해하는 데 조금은 어려움이 있었다. 또한 Django에서 DRF를 설정하고 사용해 JSON 형식의 응답을 반환하는 방법이 익숙하지 않아 처음에는 설정 과정이 매우 어려웠다. 특히 serializers.py 파일의 역할과 API 뷰를 작성하는 과정을 이해하기 쉽지 않았다.


무엇을 시도했나?
  • REST: REST에 대한 개념을 여러 번 읽어보고, 웹 페이지 상태 전이와 상태 표현에 대한 개념을 튜터님이 말씀하신대로 이해해보려 노력했다.
  • DRF 설정: 강의를 통해 Django project에 DRF를 설치하고 설정 파일에 rest_framework을 추가했다. 이때 Third parth와 local app을 구분지어 작성하면 좋은 팁도 얻었다. 강의를 들으며 기본적은 구조를 천천히 작성해봤다.
  • Serializer: serializers.py 파일을 생성하고, Django의 ArticleSerializer를 사용해보면서, 장고 기초에서 배운 ModelForm이 생각이나 조금씩 따라해 봤다.
  • Postman: Postman을 설치하고 API 엔트포인트를 테스트해보고 강의를 따라 articles의 CRUD를 구현해봤다.

새로 알게 된 점은 무엇인가?

RESTful API 설계의 중요성

  • RESTful API는 웹 서비스의 리소스를 명확하게 정의하고 HTTP 메서드를 활용해 클라이언트와 서버 간의 상호작용을 효율적으로 관리할 수 있다.
  • 자원을 URI로 표현하고, 행동을 HTTP 메서드로 나타낸다.
  • 코드의 가독성과 유지보수성이 뛰어나고, 설계가 잘 되어 있을 경우 API 요청만 봐도 동작을 쉽게 예측할 수 있다.

Django REST Framework의 직렬화(Serializtion)

  • DRF는 Django의 폼과 모델 구조를 확장하여 API 개발에 필요한 기능(직렬화)을 제공한다.
  • 직렬화는 복잡한 데이터 구조(Django 모델 인스턴스)를 JSON과 같은 간단한 데이터 형식으로 변환한다.
  • ModelSerializer는 Django 모델과 매우 유사하게 구성되어 데이터베이스 모델을 쉽게 직렬화할 수 있다. 

Postman을 활용한 API 테스트

  • Postman을 통해 API 테스트를 진행할 수 있고, 다양한 HTTP 요청(GET, POST, PUT, DELETE)을 할 수 있고, API가 기대한 대로 동작하는지 확인할 수 있다.
  • 아직 해보진 않았지만 API를 관리하기 매우 편리하고, 협업에도 사용하기 좋아보였다.

무엇을 느꼈고 내일은 무엇을 할까?

DRF를 배우는 장고 심화 강의를 오늘 시작했다. 이번 주차는 개인과제, 팀과제가 많기 때문에 최대한 강의를 열심히 들어 빠짐없이 과제를 완수하는게 목표이다. 따라서 내일도 열심히 완강을 향해 달릴 것이다.