이번 시간에는 Python을 사용하는 강력한 웹 프레임 워크(Web Framework)인 쟝고(django)에 대해서 알아보고자 합니다.
이 포스팅에서 사용되어지는 환경은 다음과 같습니다.
- Ubuntu GNOME 14.10
- Python 3.2.x
- Django 1.7.3
- Django REST framework 3.0.4
- Django REST Swagger 0.2.8
- PyCharm Professional Edition 4.0.4
시작하기 전에…
이 포스팅은 기본적으로 Python에 대한 기초적인 지식을 가지고 있고, Python 개발에 대한 개발 환경이 구축되어진 사람을 중심으로 설명합니다. Python 설치 방법이나 기타 사항은 관련 포스팅을 참고하여 주세요.
Django 설치하기
Django는 Python 용 웹 프레임 워크 중 하나로, Instagram, Pinterest 등에서 사용하고 있는 웹 프레임 워크 입니다. 공식 홈페이지에 있는 Django의 특징을 한번 보자면,
– 정말 빠르고
– 웹 핸들링을 위한 모든게 준비되어 있으며
– 보안에 강력하며
– 스케일 가능하며
– 엄청나게 다목적인 프레임 워크
라고 쓰여져 있습니다. 판단은 사용자들의 몫이지만, 확실한 사실은 강력한 웹 프레임 워크 중 하나라는 건 사실이라는 거죠
django를 설치하기 위해서는 여러가지 방법이 있습니다. 이곳에서 django를 다운로드할 수 있습니다. pip를 이용하는 방법이 가장 보편적이며, 이곳에서는 PyCharm과 함께 할 것이니…… PyCharm으로 설치하는 법을 알아보도록 하겠습니다.
마치며…
이렇게 저희는…. django와 rest-framework, rest-framework-swagger의 설치를 끝 마쳤습니다. 끝 이냐구요? 네… 끝 입니다. 정말 끝 이냐구요? 이제 개발 시작하시면, 나머지는 REST와 REST-Swagger 가 알아서 해 줍니다. 못 믿으시겠다구요? 그럼, 간단한 예시를 하나 볼까요?
URL 추가
일단, 먼저 rest와 swagger가 기본적으로 제공하는 페이지를 연결해 보도록 하죠. settings.py에 INSTALLED_APP에 rest_framework와 rest_framework_swagger 를 설치하셨다면, url로 연결하는 일만 남습니다. urls.py 파일을 조금 수정해서 이렇게 만들어 볼까요?
urls.py를 수정하고 난 뒤, Run -> Debug 또는 Alt + Shift + F9 를 눌러서 디버그를 시작해 봅시다.
진짜 마치며…
간단하게 REST Framework와 REST Swagger를 설치하는 방법을 한번 알아 봤습니다. 사실, 강력한 IDE와 함께 해서 더 쉽고 빨리 끝나긴 했습니다. (PyCharm Professional Edition은 0 정도이고, 개인 개발자 버전은 정도 합니다. 학생에게는 무료 버전도 제공하고, 스타트 업에는 50% 할인 혜택도 있으니… 자세한 건 해당 페이지를 참고해 주세요~)
물론 IDE가 아니라 하더라도 몇몇 타이핑만 하면 금방 셋팅은 끝이 납니다. 개발은 지금부터 시작이지만요. REST Swagger는 REST Framework로 작성된 url을 인식하여 자동으로 Swagger에 뿌려 줍니다. 따라서, 이렇게 셋팅을 하고 시작하면, 나머지는 REST API 작성만 신경쓰면 된다는 소리와 같죠.(물론 경우에 따라서는 커스텀해야 할 부분들이 넘쳐 흐르긴 합니다만.)
다음 시간에는 REST Framework를 이용하여 여러 API를 작성하고 디버깅하는 방법을 한번 알아보도록 하죠
– 2016년 7월 20일, 업데이트
hare 님이 알려주신 내용으로, Swagger 라이브러리에 대한 내용을 추가합니다.
DJango REST Swagger의 버전이 2.0.1 로 변경되면서, 많은 변화가 이루어진 거 같습니다. 자세한 내용은 좀 더 알아봐야겠지만, DJango REST Framework(이하 DRF라고 부릅니다.)의 최신 버전에서 추가된 Core API와 호환성 확보를 위해서 사용 방법 자체도 변경된 것으로 보입니다. 아무튼, 기존 Swagger는 간단하게 url을 추가해주면 되었지만, Swagger 버전이 2.0.0 이상 이면, 다음의 방법을 사용하셔야 합니다.
- Swagger를 위한 View를 만듭니다.
- SwaggerUIRenderer, OpenAPIRenderer 2개의 렌더러를 Decorator로 꾸며줍니다.
- 해당 View 를 URL에 등록하고, 해당 URL로 접근 합니다.
자세한 내용은 DJango Rest Swagger GitHub의 이 이슈를 참고하시거나, 예제로 올려져 있는 튜토리얼을 참고하시면 쉽게 따라하실 수 있을 거 같습니다.
해당 내용을 공유해 주신 Hare 님께 감사 인사 드립니다!