안드로이드 서버로 DRF를 사용한 이유와 공부하게 된 계기

[공부 내용 요약]

 

* DRF : Django Rest Framework의 줄임말

 

- drf는 Django 안에서  REST API 서버를 쉽게 구축할 수 있도록 돕는 오픈소스 라이브러리다.

- Django과 유사한 기능들을 가지고 있다.

 

 

* REST API : 어떤 자원에 대하여 CRUD 연산을 수행하기 위해 URL 요청을 보내는 것

 

- Create , Read , Update, Delete 연산을 수행할 수 있다.

- POST, GET, PUT, DELETE 메서드를 기본으로 사용하여 요청을 받거나 보낸다.

- 각각 요청, 조회, 수정, 삭제 기능을 담당한다.

 

* REST : Representational State Transfer의 약자로 위의 연산을 수행하는데 도움을 줌

* API : 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘

 

* REST API의 두가지 중요 항목

1. REST API의 URI는 정보의 자원을 표현해야 함.

 - ex > GET /user/delete/1 : user의 1번째 자원을 삭제

 

2. 자원에 대한 행위는 HTTP Method( 위의 4가지 메서드)로 표현해야 함.

 - ex > DELETE  /user/1  :METHOD를 사용한 행위 표현

 

[안드로이드 서버로 DRF를 선택한 이유]

 

인스타그램의 대부분의 기능들을 가지는 안드로이드 앱을 개발하고 있었다.

개발을 진행해보니, 대량의 데이터를 저장하고 사용자의 정보와 로그인을 관리할 서버가 필요했다.

REST API를 사용하면 다른 브라우저나 안드로이드 디바이스와의 통신이 원활하다는 것을 알게 되었고

개발 중인 프로젝트에 적용하고자 공부하기 시작했다.

그 중에서  DRF를 사용한 이유는 아래와 같다.

 

[DRF 장점]

 

1. 문서화와 커뮤니티에서 코드 설명이 잘 되어있다.

2. serializer를 활용한 복잡한 데이터를 변환하고 렌더링을 쉽게 해준다.

3. API를 요청한 App과 JSON 형식으로 데이터를 주고 받기 쉽다.

4. django에서 사용하는 modelfrom 클래스와 유사한 ModelSerializer 클래스를 제공해준다.

 

python을 kotlin과 함께 주 언어로 사용하고자 공부하고 있기도 했고,

django로 간단하지만 초기 개발도 진행해 봤고,

JSON 형식으로 편리하게 App과 데이터를 주고받을 수 있다는 장점에 DRF를 안드로이드 서버로 선택하였다.

 

* serializer : API로 데이터를 관리하기 위해 JSON 형식으로 데이터 포멧을 변환해주는 역할을 함.

 - Django의 models or queryset 데이터들을 JSON 포멧으로 변환해주는 역할을 담당