[DJANGO] DJANGO 란
DJANGO
- 장고 REST 프레임워크 django-rest-framework
- 장고 문서 MDN Server-side website programming
머리말
- 나는 웹프로그램의 서버측 개발은 코틀린과 스프링부트, 웹페이지 개발은 ReactJS를 선호한다.
- 그동안 파이썬으로 서버측을 개발해야 할 필요를 느끼지 못했다.
- 규모가 작은 프로젝트라고 해도, 스프링부트가 충분히 편리하고 성능도 좋기 때문이다.
- 그래서 그 동안 장고(DJANGO)는 살펴볼 이유가 없었다.
- 이번에 프로젝트하면서 넘파이(numpy)가 있었다면 쉽게 해결될 상황들이 몇 번 있었는데 자바스크립트로 넘파이와 비슷하게 직접 구현하였다. Regression이나 numpy.meshgrid() 함수 등을 자바스크립트로 구현하려니 불편한 점이 많았다.
언제 장고를 사용할 것인가?
- 규모가 큰 프로젝트에서는 파이썬을 서버측 언어로 사용하지 않을 것 같다. 덕타이핑 언어를 여러 사람이 함께 개발하는 프로젝트에서 사용하고 싶지 않기 때문이다.
- 규모가 작은 프로젝트라면 스프링부트나 타입스크립트 기반의 NodeJS를 사용할 것 같다.
- 내가 장고를 실제 프로젝트에서 사용한다면, 서버측에서 수학계산이 많은 상황으로 한정할 것 같다. 넘파이, Scipy, Pandas 등을 자주 사용해야 하는 경우 코틀린이나 자바스크립트로 구현하고 싶지 않기 때문이다. 그리고 장고는 REST API 서버 형태로 작게 개발하고, 클라이언트는 ReactJS를 사용할 것이다.
- 작은 프로젝트에서 사용할 프레임워크로서 장고는 너무 큰게 아닌가 하는 생각도 든다. 일단은 공부해보고 판단하자. 개발이 편하면 프레임워크가 큰 게 문제가 되지 않을 수도 있으니…
어떤 관점에서 장고를 살펴볼 것 인가?
- 오늘 간단하게 장고를 테스트해 보았는데, ORM도 있고, HTML template 엔진도 있다. 장고가 웹 프레임워크로써 꽤 많은 개발이 되어 있는 것 같았다.
- HTML template 엔진은 간단하게만 살펴볼 예정이다. 실전 프로젝트에서는 ReactJS가 뷰를 담당할 것이고, 장고는 Rest API 서버로서 개발할 것이다. HTML 템플릿에 무식하게 코딩하고 싶지 않다.
- 장고의 ORM을 공부하려면 시간이 꽤 걸릴 것이다. 하지만 중요하니 차근차근 공부해야 겠다.
- 트랜잭션(롤백,커밋), ForeignKey,n:n 테이블 설계, 1:n , 성능문제,native SQL 지원 등 고려할 사항이 있을 것 같다.
- 장고가 spring-security 만큼의 보안 기능들이 제공되는지 검토해봐야 한다. 아마 아닐 것으로 예상된다.