코딩꿀팁
코드잇 신규 토픽 출시 [Django 웹 개발]
2021. 04. 23

파이썬, 이제 다들 한 번씩은 들어보셨죠

'요즘' 핫하다고 말하기에는 파이썬(Python)은 이제 우리에게 너무나 익숙한 언어가 되었습니다.


분명 프로그래밍 언어인데 국어, 영어, 제2외국어 다음으로 제3외국어 자리를 차지해도 이상하지 않을 것 같아요. 배우기 쉽고 빠른 개발 속도와 생산성에 중점을 둔 파이썬은 여전히 많은 분들의 첫 프로그래밍 언어로 선택받고 있습니다.


blog image

처음 배울 때는 조금 어색하지만 파이썬을 어느 정도 다룰 수 있게 되면 누구나 한 번쯤 겪게 되는 단계가 있습니다. 바로 모든 것을 파이썬으로 개발하고 싶어지는 거죠. 실제로 많은 분들이 "파이썬으로 OO도 가능한가요?" 라는 질문을 많이 하는데 주로 '모바일 앱' 개발과 '웹 개발'에 대해 많이 묻습니다.


결론부터 이야기하자면 모바일 앱 개발은 어렵고 웹 개발은 가능합니다.


모바일 앱은 아직 파이썬에게 정복되지 않은 과제 중 하나입니다. Android는 JAVA, IOS는 Swift의 영역이죠.

반면에 웹 개발은 파이썬으로 충분히 그리고 너무나 당연하게 가능합니다. 바로 Django를 통해서요!




그래서 Django가 뭔데요?

Django(장고, 디장고 아닙니다)는 웹 사이트를 빠르게 만들 수 있게 해주는 파이썬으로 개발된 도구입니다.


처음부터 하나하나 개발할 필요 없이 제공해주는 여러 기능을 이용해서 마치 블럭을 조립하듯 개발을 할 수 있게 해주는 도구를 프레임워크(Framework)라고 하는데, 그중에서 Django는 파이썬으로 개발된 웹 개발을 위한 프레임워크입니다.


blog image



Django가 뭔지는 알겠는데 왜 Django를 사용해야 하죠?


Django는 파이썬을 기반으로 합니다.

이 문장보다 더 Django를 사용해야 할 이유를 잘 표현하는 문장은 없습니다.


사실 Django 말고도 Java 기반의 Spring, Javascript 기반의 Node.js, Ruby 기반의 Rails 등 여러 웹 프레임워크가 있습니다.

모두 훌륭한 웹 프레임워크고 각자 장단점이 있죠.



blog image


하지만 우리는 파이썬을 이미 알고 있고 다른 언어를 배울 필요 없이 파이썬을 사용해서 웹 개발을 할 수 있는 Django를 마다할 이유가 없습니다.


특히 Django는 파이썬의 장점이 그대로 녹아있기 때문에 완성도 있고 빠르게 웹 개발을 할 수 있습니다. 여기서 파이썬의 장점을 다시 설명하지는 않겠습니다. 여러분도 저도 충분히 알고 있으니까요. 더해서 파이썬을 사용해서 개발할 수 있다는 것은 다시 말하면 파이썬으로 할 수 있는 모든 것을 웹 개발과 함께 사용할 수 있다는 거죠!



내가 개발한 파이썬 데이터 분석 모델을 웹으로 구현하고 싶다?

네, Django를 사용하세요.


파이썬으로 개발한 머신러닝 네트워크를 웹으로 보여주도록 구현하고 싶다?

네, Django를 사용하세요.




Django는 살아있는 프레임워크입니다.

Django는 2003년 처음 개발되어 2005년 무료 오픈소스로 공개된 지금까지 꾸준하게 더 좋게 만들기 위한 새로운 버전이 나오고 있으며 전 세계에 활발한 커뮤니티가 있습니다. 활발한 커뮤니티가 있다는 것은 우리가 개발을 하다가 턱! 하고 막혔을 때 도움 받을 수 있는 훌륭한 레퍼런스가 인터넷에 많다는 거죠.


내가 겪은 거의 모든 문제를 이미 전 세계의 누군가가 미리 겪고 해결책을 공유해두었기 때문에 우리는 좋은 참고자료 위에서 조금 더 수월하게 개발할 수 있습니다.



Django는 준비되어 있습니다.


Django는 "Batteries included (배터리 포함)" 이라는 철학을 기반으로 개발되었습니다.

'갑자기 무슨 배터리를 포함했다는 거야? 무슨 스마트폰도 아니고 배터리가 왜 나와?' 너무 당황하지 마세요. 어디까지나 비유라구요.


'Batteries included' 철학은 모든 것이 준비되어 있으니 그저 상자 안에서 필요한 것들을 꺼내기만 하라는 것을 추구하는 방식인데 Django는 이 Batteries included 철학을 아주 잘 따르고 있습니다.


웹 개발을 하면서 필요한 여러 기능들, 예를 들어 로그인, 데이터베이스, 인증 등의 기능들을 Django 자체에서 기능으로 제공하기 때문에 우리는 가져다가 사용하는 식으로 개발할 수 있습니다. Django가 이러한 방식을 적용한 이유는 개발 하는 방식은 개발자마다 모두 다르지만 원하는 것은 결국 하나의 결과물 이기때문에 목표하는 지점이 같고, 그렇다면 일관된 형태(Frame)을 제공해서 빠른 개발을 할 수 있게 하기 위함입니다.



Django는 당신에게 맞게 더욱 커질 수 있습니다.

Django는 매우 확장성 있는 프레임워크로 각각의 부분이 하나의 독립된 컴포넌트로 이루어져 있습니다.


이렇게 각 부분이 독립된 구조를 갖게 되면 어떤 부분이든지 제공하는 서비스에 맞게 크기를 변경 할 수 있습니다. 그러니까 내가 서비스하는 Django 웹 서비스가 작은 홈페이지라면 그에 맞게 작게 구성하고 이용하는 사용자가 많은 대규모의 웹 서비스라면 요구사항에 맞춰서 Django의 크기를 변경할 수 있다는 거죠.


이러한 Django의 확장성을 보여주는 대표적인 사례가 바로 Instagram입니다.

네, 맞아요. 우리가 매일 들여다보는 전 세계의 사람들이 사용하는 그 Instagram이요.




Django를 누가 사용하죠?


Instagram & Disqus & JetBrains

온라인 사진 공유 SNS인 인스타그램(Instagram)과 웹 사이트나 온라인 커뮤니티등 소셜 댓글 서비스인 디스커스(Disqus) 그리고 IntelliJ IDEA를 제작한 JetBrains가 Django로 개발 되었습니다.


전 세계의 수많은 유저가 사용하는 서비스들에서 성공적인 도입 사례가 있다는것은 우리가 웹 개발을 할때 참고할 수 있는 중요한 부분중 하나입니다.



번개장터, 숨고, 위시캣 ... etc

중고 물품 거래 사이트인 번개장터, 재능 공유 서비스인 숨고, IT 아웃소싱 서비스인 위시캣등 국내에서도 수많은 스타트업이 Django를 사용하고 있습니다.


blog image





그럼 대체 이 좋은 Django, 어디서 배울 수 있죠?

파이썬을 이용한 웹 프레임워크인 Django!


배울 수 있는 서적도 많고 컨텐츠도 많지만 단순히 하나의 웹 사이트를 따라서 만드는 것이 아닌

Django의 제대로 된 설치부터 개념, 전문가처럼 사용하는 방법까지

회원가입, 좋아요, 댓글, 팔로우등 재미있는 예제를 통해 배우고 싶다면


코드잇의 'Django 웹 개발' 강의를 지금 시작해보세요!





blog image

추천글
codeit facebook pagecodeit facebook pagecodeit facebook pagecodeit facebook page
(주) 코드잇