Never stop learning!
Wanna share some knowledge? Let's do it here.

정확히 1년전에 스태틱 웹 페이지를 모두 지우고 WordPress를 베이스로 새 블로그를 만들었었다. 그런데 이번 여름 휴가 중에 조금 많은 시간을 투자하여 다시 블로그 시스템을 Django로 바꿔 버렸다. 이미 CMS로써 만들어진 WordPress를 커스터마이징 하는 것 보다, MVC framework인 Django로 직접 기능을 하나씩 추가하며 자신만의 CMS를 만드는 것에 더 많은 재미를 느꼈다. 웹 서버 또한 Shared hosting 서버를 빌려 쓰다가 VPC (Virtual Private Cloud) 서버로 마이그레이션 하였다. 지금까지는 아파치, mod_wsgi 조합과 함께 MySQL을 사용했었는데, 처음으로 NGINX, Gunicorn 조합과 PostgreSQL을 사용해 봤다. 장고 어플리케이션의 스탠다드 구성이 되가고 있는 조합이라고 할 수 있는데, 퍼포먼스면에서 어느 정도 뛰어난지는 아직 잘 모르겠다. 하지만 NGINX 의 구성 파일인 nginx.conf는 파이썬의 사전이나 JSON 형식의 트리 구성을 가지고 있어 아파치의 어려운 구성 파일보다 구문이 더 깔끔하고 알기 쉬운 것 같다. 패키지 설치, 웹서버, 데이터베이스 구축 및 DNS, Firewall 설정 등을 하나 부터 열까지 다 해야 하는 점에서 조금은 귀찮은 점이 있었으나, 여러가지로 공부가 되는 부분도 많았다고 본다.

전에 올렸던 Laravel PHP 웹 프레임워크 강좌 또한 버전이 오래된 관계로 모두 삭제하고, 파이썬 웹 프레임워크인 Django에 대한 강좌를 새로 연재 하고자 한다. 직업이 시스템 엔지니어다 보니 평소에 많이 사용하고 개인적으로도 가장 좋아하는 언어인 파이썬으로 쓰여진 프레임워크를 찾다가 Django를 사용하게 되었고, Django의 편리함과 다양한 패키지에 반해 얼마전에는 회사에서 사용하고 있던 모든 Laravel 어플리케이션을 Django 마이그레이션 하였다. 지금은 모든 웹 어플리케이션을 모두 Django로 만들 만큼 Django를 선호하게 되었다. 어떤 프레임워크가 좋은지에 대한 논란은 많지만 사용 목적에 따라 자신이 친숙한 언어로 만들어진 프레임워크를 사용하는 것이 가장 좋다고 생각한다. Django 장고 이외에도 Linux, 각종 서버 구축, 하드웨어, 파이썬에 관련된 강좌와 요즘 한참 공부 중인 AWS (Amazon Web Services) 의 EC2 에 관련된 포스트도 올리고자 한다.

MONDAY, AUGUST 15, 2016
python logo

파이썬 (Python) 은 1991년 프로그래머인 귀도 반 로섬 (Guido van Rossum) 이 발표한 고급 프로그래밍 언어로, 플랫폼 독립적이며 인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어이다. 파이썬이라는 이름은 귀도가 좋아하는 코미디 〈Monty Python's Flying Circus〉에서 따온 것이다. 파이썬은 비영리의 파이썬 소프트웨어 재단이 관리하는 개방형, 공동체 기반 개발 모델을 가지고 있다. C언어로 구현된 C파이썬 구현이 사실상의 표준이다.

파이썬은 초보자부터 전문가까지 사용자층을 보유하고 있다. 동적 타이핑(dynamic typing) 범용 프로그래밍 언어로, 펄 및 루비와 자주 비교된다. 다양한 플랫폼에서 쓸 수 있고, 라이브러리(모듈)가 풍부하여, 대학을 비롯한 여러 교육 기관, 연구 기관 및 산업계에서 이용이 증가하고 있다. 또 파이썬은 순수한 프로그램 언어로서의 기능 외에도 다른 언어로 쓰인 모듈들을 연결하는 풀언어(glue language)로써 자주 이용된다. 실제 파이썬은 많은 상용 응용 프로그램에서 스크립트 언어로 채용되고 있다. 도움말 문서도 정리가 잘 되어 있으며, 유니코드 문자열을 지원해서 다양한 언어의 문자 처리에도 능하다.

파이썬은 기본적으로 해석기(인터프리터) 위에서 실행될 것을 염두에 두고 설계되었다.

- 위키 백과 -

장고(Django, FAQ 발음으로는 "쟁고"(IPA: [ˈdʒæŋgoː])[2])는 파이썬으로 작성된 오픈 소스 웹 애플리케이션 프레임워크로, 모델-뷰-컨트롤러 패턴을 느슨하게 적용한다. 2005년 7월에 BSD 사용 허가서로 공개되었다.

이 웹 애플리케이션 프레임워크는 집시 재즈 기타리스트인 장고 라인하르트의 이름을 따 명명되었다.

고도의 데이터베이스 기반 웹사이트를 작성하는 데 있어서 수고를 더는 것이 장고의 주된 목표이다. 장고는 콤포넌트의 재사용성(reusability)과 플러그인화 가능성(pluggability), 빠른 개발 등을 강조하고 있다. 또한, "DRY(Don't repeat yourself: 중복배제)" 원리를 따랐다. 설정 파일 일서부터 데이터 모델에까지 파이썬 언어가 구석구석에 쓰였다.

- 위키 백과 -
django logo
ansible logo

Ansible 은 현재 CM (Configuration Management) 소프트웨어 시장에서 가장 주목 받고 있는 프로그램 중 하나이다. CM 업계의 선두 주자이며 Ruby 기반의 Chef 와 Puppet 와는 달리 Python 기반으로 만들어졌으며, 클라이언트 서버에 ssh 설정만 되어 있다면 서버측에서의 Push 형식으로 간단히 사용을 할 수 있는 agentless 형식라는 점에서 많은 인기를 얻고 있다.

처음에는 AnsibleWorks, Inc. 라는 이름으로 시작하여 Ansible, Inc. 로 이름을 바꿨고, 2015년 10월에 Linux 업계의 자이언트인 Redhat이 인수를 하여 개발과 배포를 하고 있다. Redhat이 뒤에서 밀어준다는 점에서 앞으로 OpenStack에서도 많은 활약이 기대된다.

개발자 (Development) 와 운용자 (Operation) 를 중간에서 시너지 효과를 내고자 하는 Devops 의 개념이 IT 업계에서 활발히 번저가는 시점에서 Ansible과 같은 CM tool의 중요도는 더욱 더 높아 가고 있다.