프레임워크/Django

Django 개발 방식

개발자 지망생 리네 2025. 5. 29. 02:07

여기톤을 준비하면서 백엔드 파트인 나는 스터디를 통해 Django를 공부하고 있었다.

다만 프론트 파트와 이야기를 나눠보니 프론트에서는 Django를 공부하고 있지 않는다는 사실을 알게 되었다.

Django는 백과 프론트를 한 번에 처리할 수 있는 프레임워크인데, 그럼 어떻게 협업하는 건지 이해가 가지 않았다.

그동안 진행해왔던 스터디도 간단하게나마 html 파일을 만들어서 실습해왔기 때문에 더더욱 어떻게 개발을 해야하는 건지 어려웠다.

 

백과 프론트가 어떻게 연결되는 건지 알아보기 위해 서치해본 결과, 두 가지의 방식이 존재한다는 것을 알게 되었다.

 

Django 템플릿 방식 (프론트 - 백 통합형) Headless 방식 (SPA / 프론트 - 백 분리형)
Django가 HTML 템플릿을 직접 렌더링하여 사용자에게 보냄 Django는 JSON API만 제공
백엔드와 프론트엔드가 한 프로젝트 안에서 같이 움직임 프론트엔드는 React, Vue, 또는 바닐라 JS로 작성
설정이 간단하고 시작하기 쉬움 프론트와 백은 HTTP 요청 / 응답으로 통신
Django의 강력한 템플릿 기능 사용 가능 프론트와 백의 분리로 협업에 좋음
한 프로젝트로 관리 가능 빠르고 유연한 UX 구현 가능
프론트가 서버에 종속됨 모바일 앱과도 API 공유 가능
페이지 이동마다 새로 고침 필요 복잡한 구조
복잡한 인터랙션 구현의 어려움 CORS, 인증 토큰 같은 이슈 발생 가능성 존재
  진입장벽 존재

 

 

즉 내가 그동안 스터디해온 방식은 템플릿 방식으로, 프론트와 백이 통합되어 있는 형태이다. 그래서 html 페이지를 프로젝트 내에서 생성하고 바로 배포하는 것이 가능했던 거다. 만일 Headless 방식이라면, 정기 세션에서 spring으로 API를 배포하는 것처럼 백엔드는 API만 제공하는 서버를 구축하면 된다.

 

그런데 우리는 템플릿 방식을 사용한다.

 

분명 프론트와 회의를 진행할 때, 프론트에서는 React를 사용할 것 같다는 대답을 받았다. React는 json을 렌더링할 수 있고, html을 렌더링할 수가 없어서 당연히 백은 DRF를 사용해야한다고 생각했다. 그런데 정통 MTV 방식 (템플릿 방식) 을 사용하면 json을 넘겨주는 게 번거롭다. json을 아예 넘기지 못하는 것은 아닌데, 굉장히... 번거롭다.

 

오늘 정기 세션 전에 임원진 분들에게 물어봐야겠다...

 

1. 백엔드에서 DRF를 사용하지 않는 게 맞는지, 프론트에서 react를 사용하면 둘을 어떻게 연결해야하는지

2. 템플릿 방식이면 백엔드에서 API 명세서를 작성하지 않아도 된다는 소리인지

3. 소셜 로그인을 구현하여 오픈 API를 사용하면 조건에 부합하는 것인지

4. 백과 프론트 깃허브를 어떻게 구별해야하는지 (풀스택 프레임워크라 이게 너무 걱정이다)

5. 배포를 하지 않아도 된다는 이야기가 있는데 사실인지 -> 사실이라면 조건인 API 배포는 어떻게 해야하는지

 

 

-> (6/2 추가) 문의 결과 아래와 같다.

1. DRF는 사용하지 않는 게 맞다.

2. 프론트가 React를 사용하지 않고 개발한다.

3. Django 템플릿 양식을 사용한다.

4. 외부 API를 사용해도 조건에 부합한다.

5. 백과 프론트 깃허브를 구별할 필요는 없다.