[번역][Django]Django Rest FrameWork는 무엇이며 왜 배워야 하는가

Iov Somnium
iovsomnium
Published in
6 min readDec 7, 2020

이 글은 아래 해당 원문을 번역하였습니다.

몇 줄 쓰는 것으로 많은 걸 할 수 있는 것 때문에 Django가 마법처럼 보이면,
Django Rest Frame(이하 DRF)를 사용해 보시죠

API란 뭔가요?

DRF를 이용한 RESTFUL APIs는
인터페이스와 데이터베이스 간의 정보를 간단한 방법으로 전송할 수 있습니다.

사용자 인터페이스와 데이터 저장소를 분리하여
.json 파일을 통해 유저와 데이터베이스를 통신합니다.
이처럼요 :

가장 최근, 온라인으로 쇼핑했을 때를 떠올려 보세요 :
각각의 물품마다 사이트의 구조는 같지만 내용이 다른 적이 있나요?

대부분 HTML과 CSS로 구조를 만든후, API를 이용해 내용을 채웁니다.

왜 API를 이용할까요?

API가 뭘 할 수 있는지 알지 못하면 API가 무엇인지 이해할 수 없습니다.

장고를 통해서 웹 어플리케이션을 만든다 생각해 보죠.

만든 웹 어플리케이션이 성공했습니다! 모두가 당신의 웹 어플리케이션을 이용하죠

유저들은 모바일 버전도 원합니다. Android, IOS 버전으로 빌드해야 하죠

그러러면 서로 다른 언어로 같은 기능을 복제해야 합니다.
데이터 추가, 보기, 제거, 업데이트 및 삭제 등등 말이죠

이 과정에서 많이들 실수 합니다.

하지만 그럼에도 불구하고, 3개의 다른 언어를 사용하여 동일한 애플리케이션을
생성하고 관리했다고 가정해 봅시다.

당신은 이제 당신의 웹사이트가 정적임을 알았습니다.
해당 웹사이트를 더욱 역동적이고, 현대적으로 바꾸고 싶을 것이고 그러기 위해서는 JavaScript가 필요합니다.

Vanilla JS를 사용할수도 있고 더 나은 JS framework인
React 나 Vue를 사용할 수 도 있습니다.

이제 개조를 하면 됩니다. 다시 Django, Android, IOS를 통해서요

아니면 REST API를 만들면 됩니다.

DRF와 함께라면 API를 생성하여 사용자 인터페이스에 정보를 제공할 수 있습니다.

FrontEnd를 Vue, Android, IOS처럼 다른 플랫폼으로 만들더라도
같은 API에 연결할 수 있습니다.

이제는 logic을 한번만 만들어도 됩니다.
그리고 각각의 플랫폼은 같은 API에 연결되겠죠

이 방식으로는 기능을 새로 업데이트 하거나 추가할때
각각의 플랫폼을 변경할 필요 없이 한 부분만 변경하면 됩니다.

이러한 방식은 더 쉽고, 더 확장 가능하며, 더 안정적입니다.

DRF는 당신에게 정보를 제공하기 위해
데이터베이스 상호작용과 logic의 중량을 이용합니다.
얼마나 많은 플랫폼을 사용하든, 만들어지는 언어에 상관없이 간단해집니다.

왜 DRF 인가?

우리는 REST API가 데이터베이스와 쉽게 상호작용할 수 있고 다른 플랫폼과 함께
사용할 수 있기 때문에 REST API가 중요하다는 것을 알고 있습니다.

그러나 왜 DRF일까요 Node.js, Golang, Rust 등이 아니고?

우선 DRF는 Python을 사용합니다. 알다시피 파이썬은 배우기 쉬운 언어입니다.

DRF는 Django만큼이나 모든 것을 간단하고 쉽게 만들어 줍니다.
Django Views를 아시나요? DRF에도 있습니다!

각 사용자의 모든 필드 및 새 사용자를 만들기 위한 다른 필드와 함께 목록을 반환하는 end-point(HTTP 주소에서)를 원하십니까?

class UserList(generics.ListCreateAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer

당신이 ListCreateAPIView를 상속하는 UserList라는 클래스를 만들때 이게 답니다

이름에서 알 수 있듯이 사용자를 나열하고 만들 수 있습니다.
URL을 요청(GET)하면 사용자 목록이 표시되고, 해당 URL로 정보를 전송(POST)하면 새 사용자가 생성됩니다.

migrations 처리 방법, 각 개체가 model을 어떻게 가지는지, 데이터베이스 전환이 얼마나 쉬운지 등과 같은 기술적인 것들도 많습니다.

안심하세요 DRF와 함께라면 틀릴 리 없습니다.

How to learn DRF

“그래 맘 먹었어. DRF를 배워서 데이터 베이스와 쉽게 상호작용 하고 싶어.”
“뭘 배우면 되는 거지?”

좋은 질문입니다. 사용하기 쉽다는 것 외에도, 여러분은 DRF를 배울 수 있는 많은 Resources를 가지고 있습니다.

결론

Rest API와 Django Framework에 대해 오늘 배운 내용을 모두 요약해 봅시다.

  • REST API를 통해 인터페이스와 데이터베이스 간에 정보를 주고받을 수 있습니다.
  • REST API 한개를 통해 우리가 원하는 어떤 플랫폼도 공급할 수 있습니다.
    이것은 코드의 이중성을 제거하고 그것을 쉽게 확대하는데 도움을 줍니다.
  • DRF는 배우기 쉬운 Python을 사용합니다.
  • Python을 사용하고 DRF가 어떻게 구성되는지 아는 덕분에 모든것을 몇개의 줄로 끝낼 수 있습니다.
  • 공식문서가 끝내줍니다.
  • 많은 무료 Resources가 인터넷에 널려있습니다.
  • 뛰어난 내장 인터페이스를 갖추고 있습니다.(admin page같이)

모바일 애플리케이션이나 웹 애플리케이션 간에 데이터를 주고받아야 한다면 DRF를 추천합니다.

지금 당장 시작해 보는건 어떠세요?

--

--

Iov Somnium
iovsomnium

개발자를 희망하는 사람 / People, hoping to become a developer