[보충] Django를 사용하기 전에 고려해야 할 것

django_apps·2021년 11월 12일
0

django others

목록 보기
2/3
post-thumbnail

Background

이번 포스팅에서는 아래의 질문으로 시작하려 한다.

여러분은 왜 django 를 사용하는가?

아마 대부분은...

1. `python` 으로 웹 애플리케이션을 만들 수 있기 때문에 
2. `Zero Base`에서 개발하는데에 큰 시간이 안 들기 때문에
3. 주변 동종업계에서 많이 채용하여 쓰고 있기 때문에
4. 업무 환경상 정해진 스펙이였기 때문에

위와 같은 이유가 아니였을까 싶다.

하지만 이번 포스팅에서는 아래 질문에 집중해보려 한다.

django 를 이용해서 어디까지 커버할 것 인지가 정해져야, 구체적인 프로젝트 기술 스펙과 Tier 구조가 명확해 지기 때문이다.

django로 어느 부분까지 개발할 것인지

혹시 위 질문에 대해서 아래처럼 대답하려 했다면, django 가 당신의 프로젝트에서 어떤 부분을 담당하게 되는지가 상당히 막연한 상황이 될 것이다.

서버는 django 를 이용해서 개발한다.

당신의 업무에서 Django의 역할을 정해라

django 로 할 수 있는 개발영역은 대략 아래와 같다.

  1. 서버 (back-end) 로직 : 컨트롤러(View) + 모델(DB)
  2. 서버 (back-end) 로직 + 프론트 엔드 페이지 > (fullstack) : 템플릿(Template) + α Packages (필요에 따라)
  3. RESTful API 서버

즉, 사용자의 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!

profile
django developer

0개의 댓글