유튜브에서 아무생각 없이 장고를 검색했는데 아래와 같은 영상을 발견할 수 있었다. 제목이 상당히 자극적이라 혹해서 클릭하게 되었다. 대체 무슨 이유로 God God Django를 추천하지 않는다는 것일까?


영상 시청


그래서 추천하지 않는 이유

영상을 정리하면 아래와 같은 결론이 도출된다.

  • 장고를 쓰는 회사를 갈꺼면 해라
  • 장고를 써서 얻을 수 있는 이득이 뭐냐
  • 웹 개발은 DB에 경도되면 안된다
  • 장고는 너무나 DB에 묶여있다
  • 장고 어드민은 그다지 필요없는 도구다

솔직히 틀린 말은 없다. 웹 개발에 반드시 데이터베이스가 필요하지 않고 장고는 데이터베이스에 굉장히 의존적이다. 장고걸스의 튜토리얼도 models를 구현하는 것부터 시작된다. 하지만 웹 개발에 반드시 데이터베이스가 필요하진 않지만 언제나 데이터베이스가 필요하진 않진 않다. 필요한 경우도 있다. 장고걸스 튜토리얼처럼 블로그를 구현하거나 게시판을 구현한다면 말이다.

필자가 장고를 좋아하고 주로 사용하는 이유는 위 개발자님에게 역설적이게도 DB에 경도되지 않기 위해서다. 장고에선 models에 선언한 데이터베이스를 객체 연관 맵핑(ORM)을 기본적으로 제공하여 뷰에서 빠르게 필요한 데이터를 추출할 수 있고 템플릿을 구현하여 데이터를 표현할 수 있다. 또한 기초적으로 sqlite를 활용하고 있으므로 입문자가 CRUD가 필요한 서비스를 개발해보고 싶다면 DB에 경도되지 않고 웹개발에 집중할 수 있다. 이게 장고를 사용하여 얻는 이득이라 생각한다.

장고에는 기본적으로 어드민을 제공하는데 초반에는 유용하지만 나중에는 위 개발자님의 말씀처럼 썩 유용하진 않다. 직접 구현하는게 여러모로 좋았다. 하지만 이 초반에 유용하다는 점이 매우 크다고 생각했다.


하긴 생각해보니

필자가 웹 개발을 처음 해본건 PHP로 메모장을 구현할 때였다. 당시에는 DB를 사용하기가 싫어서 일부러 파일 입출력을 사용하여 메모를 진행했다. 웹서버만 열면 되는데 굳이 DB까지 설치하고 연동시키기 싫었다 또 DB가 없어도 서비스를 구현하는데 큰 어려움이 없었다. 다만 어느 정도에선 한계가 생겼는데 그러다가 장고라는 도구를 알게됐다.

장고를 처음 사용할때 장고걸스의 튜토리얼을 봤었는데 사실 내부가 어떻게 구동되는지도 몰랐다. ‘나는 데이터베이스를 연동하지 않았는데 어떻게 데이터들이 유지되지?’라는 의문도 들었다. ORM이 라던가 SQLite 라던가에 대한 지식이 전혀 없었기 때문이다. 하지만 그런 필자도 이젠 이해하고 있다. 왜냐면 계속해서 장고를 붙잡았고 붙잡은 이유는 만들고 싶은 목표가 있었기 때문이다. 적어도 입문자라면 어떤 도구를 사용하건 자신의 동기부여가 지속되는 것을 선택하는게 맞지 않을까?

흠… 실시간 채팅을 구현하거나 독특한 기능의 웹 사이트를 구현하고 싶은 사람이라면 필자도 장고를 추천하고 싶진 않다. 하지만 영상과 같이 강한 어조로 추천하지 않을 정도의 프레임워크인진 의문이다. 웹 개발을 시작하려면 기초를 갈고 닦으라는 의미에서 한 말씀일까? 내 생각이 잘못된 걸까? 나보다 훌륭하고 뛰어난 개발자이기 때문에 그대로 의견을 수용해야 하는 걸까?

WRITTEN BY

배진오

소비적인 일보단 생산적인 일을 추구하며, 좋아하는 일을 잘하고 싶어합니다 :D
im@baejino.com