Background
이번 포스팅에서는 아래의 질문으로 시작하려 한다.
여러분은 왜
django
를 사용하는가?
아마 대부분은...
1. `python` 으로 웹 애플리케이션을 만들 수 있기 때문에
2. `Zero Base`에서 개발하는데에 큰 시간이 안 들기 때문에
3. 주변 동종업계에서 많이 채용하여 쓰고 있기 때문에
4. 업무 환경상 정해진 스펙이였기 때문에
위와 같은 이유가 아니였을까 싶다.
하지만 이번 포스팅에서는 아래 질문에 집중해보려 한다.
django
를 이용해서 어디까지 커버할 것 인지가 정해져야, 구체적인 프로젝트 기술 스펙과 Tier
구조가 명확해 지기 때문이다.
django
로 어느 부분까지 개발할 것인지
혹시 위 질문에 대해서 아래처럼 대답하려 했다면, django
가 당신의 프로젝트에서 어떤 부분을 담당하게 되는지가 상당히 막연한 상황이 될 것이다.
서버는 django 를 이용해서 개발한다.
당신의 업무에서 Django의 역할을 정해라
django
로 할 수 있는 개발영역은 대략 아래와 같다.
back-end
) 로직 : 컨트롤러(View
) + 모델(DB
)back-end
) 로직 + 프론트 엔드 페이지 > (fullstack
) : 템플릿(Template
) + α Packages
(필요에 따라)즉, 사용자의 Use case
에 따라서, 서버, 서버/프론트 개발을 아우르는 fullstack
프레임워크로 활용할 수도 있고 API
전용 서버로 개발할 수도 있다.
어디까지 활용할 것인지에 대해서는 특별히 정답은 없다.
프로젝트의 시스템 구조, 개발인력, 데이터 구조 등 각각 처한 상황에 맞춰서 유연하게 사용하면 된다.
다만, django
사용을 고려하기에 앞서서 아래 3가지에 대한 답을 내보도록 하자.
1. django로 할수 있는 개발영역과 현재 업무의 개발사양 / 시스템 구조는 무엇인가?
2. 다른 웹 프레임워크 보다 django를 쓰면 좋은점과 나쁜점은 무엇인가?
3. django를 어디까지 사용할 것인가? 서버만? 서버 + 프론트 둘다? + API 서버로만 활용?
당신의 결정에 의해서 대략적인 프로젝트 구조의 이미지가 그려질 것이다.
아래와 같이예를 들어보자
서버 + 프론트 둘다 django를 이용하여 개발한다
위와 같은 사양으로 간다고 하면 당신은 따로 front-end
개발을 할 필요가 없어지는 대신에, django
프로젝트 안에 template
를 작성해야 할 것이고, page reloading
이 페이지별로 요쳥 할 때마다 불려지기 떄문에 성능이 살짝 느려질 수도 있다.
성능은 무조건 빠르게 하고싶다면?
만약 성능이 최고 우선순위라면, django
로는 서버로직만 맡고
front-end
로는 SPA
프레임워크로 결정하는게 나은지 검토해봐야 할 것이다.
이런식으로 django
의 활용 범위를 사용하기 전에 확실히 정한다면, 전체적인 프로젝트 시스템 아키텍쳐가 그려지고, 앞으로 개발을 위해 공부/조사해야 할 것들, 필요한 외부 packages
, TODO 리스트 등이 훨씬 명확해 질 것이다.
다음 포스팅에서는 django
에 빠질 수 없는 라이브러리인 rest framework
에 대해서 알아보겠다.
Thank you!