파이썬으로 웹 개발을 한다면 보통 플라스크나 장고를 사용하게 된다. 이제 장고가 대체 무엇이고, 사용해야 하는 이유에 대해 알아보자.
장고란 파이썬에서 웹 개발을 도와주는 웹 프레임워크 중 하나이다.
웹 프레임워크란?
웹 개발에 공통적으로 필요한 기능(사용자 인증, 세션 관리, 데이터베이스 관리, 보안, URL 라우팅 등)들을 미리 구현해놓은 소프트웨어 도구이다.
누구나 장고의 사용법만 익히면 빠르게 웹 개발이 가능하다. 장고를 사용하는 이유는 아래와 같다.
생산성 : 반복적이고 지루한 작업을 최소화해 필요한 부분에 집중할 수 있다.
보안 : 서버를 향한 공격에 대응하는 보안 기능이 튼튼하게 구축되어 있다. 이러한 공격에는 다음과 같은 것들이 있다.
SQL injection: 사용자 입력에 SQL을 삽입함으로서 데이터베이스를 수정하거나 중요 데이터를 가져오는 기법
XSS(cross-site scripting): 입력에 자바스크립트 코드를 삽입하여 페이지의 동작을 제어하거나 방문자의 쿠키를 탈취하는 기법
CSRF(cross-site request forgery): 인증된 사용자의 권한을 도용하여 의도하지 않은 요청을 보내는 기법
확장성 : 장고는 웹 사이트를 여러 앱으로 분리한 모듈 구조를 사용하고 있어 새로운 기능을 개발하거나 기존의 기능을 수정하는 것이 용이하다.
방대한 생태계 : 장고는 많은 개발자들이 사용하기 때문에 커뮤니티의 규모가 크고 많은 개발 문서가 있다. 개발 도중 발생하는 여러 문제에 대한 해결방법도 빠르게 찾을 수 있다.
ORM : 데이터베이스에 직접 쿼리를 날리지 않고 객체로서 데이터베이스를 추상화해 관리할 수 있다. 이로 인해 직관적인 데이터베이스 작업이 가능하고 서버와 데이터베이스가 직접 소통하지 않으므로 SQL인젝션과 같은 보안 공격에 대응이 가능하다.
템플릿 : 웹 페이지를 동적으로 생성할 수 있어서 기본 페이지에 기능별로 다른 요소만 추가해서 보여주거나 데이터의 변경을 새로고침 없이 반영할 수 있다.