eaz_coding

[DRF] 장고로 빠르게 백엔드 구현해보기 본문

re_lunchu

[DRF] 장고로 빠르게 백엔드 구현해보기

eaz_silver 2024. 3. 6. 17:34

작년에 하기로 마음먹고 이제서야 다시 꺼내보는 re_lunchu ,,, 하하

팀 프로젝트도 하고 있긴 하지만 이번 주말 토스 파이썬 챌린지 연습도 할겸

어차피 추천 알고리즘을 하면서 파이썬을 사용할테니 re_lunchu의 언어도

파이썬으로 정했다. Vue + Django 가보자구~~

 


 

DRF는 Django REST framework의 약자이다.

 

Django는 파이썬으로 만들어진 오픈소스 웹 프레임워크이다. 쉽고 빠르게 RESTful API 서버를 쉽게 구축할 수 있도록 해주는 것이 DRF이다.

 

DRF 공식 문서

RESTful API는 뭐야?

Representational State Transfer의 약자로, 웹에서 데이터를 전송하고 처리하는 방법을 정의한 것이다.

자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미한다. URI를 통해 자원을 식별하고, 자원에 대해서 HTTP Methods(POST, GET, PUT, PATCH, DELETE)를 실행할 수 있다. 이 방법을CRUD(Create, Read, Update, Delete)라고도 한다. 자원이 표현되는 형태는 JSON이다.

 

REST는 다음과 같은 특징을 갖는다.

  • 무상태(Stateless)
    • 동일한연결에서 연속적으로 수행되는 두 요청 사이에 링크가 없다.
    • 즉, 응답을 마치고 연결을 끊는 순간 클라이언트와 서버 간의 통신이 끝나며 상태정보가 유지되지 않는다.
    • 더 쉽게 예를 들자면, 카카오톡을 하면서 전송 버튼을 누르기 전까지는 보내려는 메세지를 서버에서 관리하지 않는다. 상태를 유지해야 할 것을 위해서는 쿠키나 세션을 사용한다.
  • 클라이언트-서버 구조
    • 클라이언트: 웹 사용자의 인터넷에 연결된 장치, Chrome 과 같은 웹 브라우저, 즉 서비스를 요청하는 주체
    • 서버: 웹 또는 앱을 저장하는 컴퓨터, 클라이언트의 요청에 데이터를 응답하는 주체
    • 클라이언트와 서버가 요청하고, 자원을 제공하는 방식의 상호작용하는 구조이다.
  • 캐시처리 가능
    • HTTP 기존 웹 표준을 그대로 사용하였기 때문에 HTTP가 가진 캐싱 기능을 적용할 수 있다.
  • 계층화
    • 서버를 다중 계층으로 구성하여 보안, 로드 밸런싱, 암호화 계층을 구조 상 유연성을 둘 수 있다.
    • PROXY, 게이트웨이 같은 네트 워크 기반의 중간 매체를 사용할 수 있다.
  • 인터페이스 일관성
    • HTTP 표준에만 따른다면 특정 언어나 기술에 종속되지 않고 모든 플랫폼에 사용할 수 있다.

 

DRF 왜 쓰는데?

내가 짧게 장고를 써봤을 때 느낀 점은

1. 다른 프레임워크에 비해서 쉽게 개발이 가능하다. 일단 편리한 기능들이 많고, 이를 통해 작업이 편했다.

2. 파이썬 기반이다. 파이썬의 다양한 라이브러리를 활용할 수 있다. 인공지능이나 복잡한 머신러닝 분야와 같이 활용된다면 파이썬 기반인 장고가 유리할 거라 생각한다.

 

이렇게 두가지..?

검색해 보면 더 많은 장점들을 찾을 수 있다.

이번에 re_lunchu를 다시 만들면서 장단점을 더 느낄 수 있지 않을까..?

마지막 포스트를 보면 알 수 있을지도 ㅎㅅㅎ

 


그럼 이제 DRF를 사용해보자!

일단 시작하기에 앞서 파이썬 버전을 3.12.1로 맞춰 주었다.

오랜만에 해서 환경변수 찾는데 한참 헤맸네 ;;

 

장고 설치하고 기다리기~

 

프로젝트 시작하고  runserver하면

 

 

 

 

짠~~ 빈 도화지 같은 서버가 생겼습니다~~

 

오랜만에 장고 여니까 재밌다.

오늘 내일 연습할겸 만들어보면서 어려운 부분만 블로그에 올려야겠다.

 

프로젝트 생성 과정은 아래 공식문서에서 빠르게 따라할 수 있다.

https://www.django-rest-framework.org/tutorial/quickstart/#project-setup

 

Quickstart - Django REST framework

We're going to create a simple API to allow admin users to view and edit the users and groups in the system. Create a new Django project named tutorial, then start a new app called quickstart. # Create the project directory mkdir tutorial cd tutorial # Cre

www.django-rest-framework.org

 

're_lunchu' 카테고리의 다른 글

re_lunchu_그시작  (0) 2023.07.25