본문 바로가기
프로젝트/Eivom

[Eivom] 4. DRF를 이용한 백엔드 구성

by Tarra 2022. 6. 8.

 

 


DRF(Django rest framework)을 기반으로 사용했고, 
회원가입, 로그인은 관련 라이브러리를 이용하여 좀 더 편하게 작업을 했다.

 

backend


백엔드를 구성하기 위해 설치한 앱들은 다음과 같다.

(settings.py에 설정 추가)

 

 

데이터를 관리하기 위한 앱은 3개를 만들어서 관리를 했는데,

 

계정 관련 데이터를 만들기 위한 `accounts`

커뮤니티 관련 'articles

영화 관련 'movies'.

 

총 3개를 만들어서 관리했다.

 

 

모든 코드를 리뷰하기는 어려우므로, 

백엔드에서 가장 중요하다고 판단되었던 것들을 위주로 적어보도록 하겠다.

 


URL

실제 코드를 보면 알겠지만 우리 사이트는 다음과 같은 URL로 이루어져 있다.

 

 

같은 url로 들어가더라도 해당 요청이 GET인지 POST인지 DELETE, PUT인지에 따라 다르게 동작하도록 작성했다.

 

 

 


Serializer

 

또한 DRF가 요청에 따라 응답하는 데이터를 프론트엔드에서 

더욱 효율적으로 다루어주기 위해서, 최대한 정제해 데이터를 보내줄 수 있도록 serializer를 만들어주었다.

 

 

- 가장 대표적인 댓글에 대한 serializer

(depth를 통해 해당 댓글 작성자에 대한 모든 데이터를 넘겨줄 수도 있었으나, 그렇게 되면 프론트엔드단에서 

다시 한번 데이터를 헤집어야 하므로 추가적인 serializer를 작성해서 추가해주었다.)

 

 

 


그 외 

 

영화 데이터 관련 view.py

 

우리 팀이 가장 중요시 했던 데이터의 수 때문에 만들어진 view.py이다.

쿼리문을 사용하지 않고도 더 좋은 코드가 있지 않나 싶지만, 이 코드를 작성할 당시에는 다른 방법이 생각나지 않아

차선책으로 다음과 같은 방법을 시도했었고, 실제로 정상적으로 작동했다.

 

 

 

 

 


느낀 점

 

처음에 데이터를 어떻게 다룰지에 대해서 생각할 때만 하더라도, 백엔드 별거 없겠구나 라는 생각을 잠깐 했었다.

하지만 실제로 코드를 짜 보고, 프론트엔드에게 이 데이터를 어떠한 방식으로 넘겨줄지에 대해 생각해보면서

신경 쓸 것이 처음에 생각했던 것보다 훨씬 많고, 같은 데이터를 보내주더라도 처리를 어떻게 하느냐에 따라

방식이 천차만별로 달라질 수 있다는 것을 알게 되었다.

 

 


전체 코드를 보고 싶으시다면 

PROJECT EIVOM 해당 링크로 방문해주시면 감사하겠습니다.!

댓글을 통한 리펙토링과 질문은 언제나 환영입니다!