Hello Django!
참으로 오랜만에 개발 관련 포스팅을 하는 것 같네요. 요즘 제가 바람이 들었나... Low-Level 쪽만 하다가 갑자기 뭔가 보여줄 수 있는 프레임워크나 언어를 다루고 싶어졌습니다. 하여 열심히 찾아보다가, 요즘 대세인 Python 기반의 웹 프레임워크인 Django를 배우기로 하였습니다!
사실 뭔가를 열심히 배워봐야지! 라는 마음보다는 오랜만에 프론트단을 좀 접해볼까? 이런 느낌이라서 시작은 방대하나 끝은 미약 할 수 있습니다. 그래도 하는 동안에는 열심히 블로그에 포스팅을 하려고 합니다. 이런거라도 해야 개발자가 운영하는 블로그같을 것같네요.. 사실 요즘 대세가 Python이라서 이를 배울 겸, 프론트를 할 겸, 뭔가 웹으로 만들어야 할것도 있고, 주변에 문과친구가 갑자기 Django로 웹사이트 만드는 걸 보고 충격받아서(?) 배우려고 하고 있습니다. Python 언어 학습도 주 목표 중 한가지라, Django랑 Flask 중에서 굉장히 많은 고민을 했는데, 그냥 뭔가 좀 더 자주 들어보았던 것 같은 Django를 선택하여 하게되었습니다 ㅋㅋㅋ
개발을 시작해봅시다.
그냥 개인적으로 개발 공부하고? 취미로 찾아보는 것들을 기록하는 공간이니, Django가 무엇이고, 역사와 어떻게 생겼는지는 다루지 않겠습니다. 다른 블로그에도 많고, 무엇보다 장고걸스 서울 1에서 열심히 번역해주신 한글판 튜토리얼이 너무나도 잘되어있습니다. 짱이에요 bb 저도 저거보고 공부할겁니다 :)
Django를 처음 접하시는 분들이라면 꼭 한번정도는 돌아주시는 것이 좋을 것 같아요. 저도 튜토리얼 따라하면서 조금씩 공부르 하고있습니다! 한글번역판을 만들어주신 장고걸스 커뮤니티분들에게 감사드립니다 (_ _)
개발환경 고민하기
음... 전 사실 로컬에서 개발하는 것을 좋아하지 않습니다. 회사업무때문에 개발을 제 로컬 데스크톱에서 했다가 날려먹은적이 신입사원 때는 꽤 있었거든요. 그래서 전 모든 개발을 AWS 환경에 개발서버 하나를 만들어놓고 했습니다. 이번 Django도! 가능 할지는 모르지만... 그렇게 진행 할 예정입니다.
사용할 IDE : PyCharm
개발 환경 : AWS EC2, Python 3
배포 환경 : AWS Beanstalk, Python 3
AWS, Python 3, Django 3개에 대해서 마스터 할 수 있겠네요 ㅋㅋㅋㅋㅋ 사실 개발서버에서 바로 배포도 할까.. 싶었지만! 개인 개발이면 모르지만 나중에 정말 큰프로젝트를 진행하거나 회사에서 이 기술을 사용한다면 실제 개발서버와 배포서버가 다를 것이란 점을 조금 염두에 두고, 클라우드 가상화 기술을 좀 활용해 보고자 이렇게 환경을 계획하였습니다.
AWS에 개발환경 세팅하기
사실 AWS에 개발환경 세팅하기라고 거창하게 말해도, 결국에는 그냥 리눅스 머신 하나 만드는 것 뿐입니다 ㅋㅋㅋ 빌드머신 겸 개발서버라고 하지요... 이번 포스팅에서 다루는 Django는 Python 기반의 웹프레임워크이므로, 그냥 파이썬만 깔려있으면 됩니다. 주의하실점은, 2.x 버전인지 3.x 버전인지는 꼭! 확인해주세요. 문법적으로도 그렇고, 꽤 큰 차이가 있는 걸로 알고있습니다.
AWS 관리 콘솔에 처음 접속하면, 위와 같은 창이 뜹니다. 뭔가 엄청 많지요? 다 AWS에서 실행/사용 할 수 있는 서비스들입니다. 개발머신의 경우에는 이중에서 EC2를 사용합니다.
EC2를 새로 런청하는데, OS는 free tier 중에서 Ubuntu로 선택해서 진행해주시면 됩니다. 이 이후에 개발/빌드 머신 세팅은 개인 재량에 맡깁니다.. 절대로 제가 이미 개발서버가 있어서 이러는게 아니에요
그냥 Instance 하나 생성하고 Debian 계열 리눅스 하나 까는거에요! 어렵지않아요~
AWS에 배포환경 세팅하기
배포환경은 간단하게 짚고넘어갈게요. 보통 제가 일반적으로 하는 개발 분야 (Kernel Level이나 데몬 등 시스템프로그래밍 쪽)는 별도 배포 서버가 필요하지 않습니다. 회사에서는 따로 패키징을 해서 "릴리즈"라는 것을 하긴 하지요. 그럼 배포서버는 언제쓸까요? 이 포스팅은 Python 기반 "웹프레임워크 Django"를 위한 포스팅입니다. "웹"이라는 글자가 들어가죠? 이 의미는 저희가 열심히 개발한 것을 "어딘가"에는 올려서 인터넷과 연결시켜서 웹서버 역할을 하도록 해야 한다는 것입니다. 이 웹서버 역할을 해 주는 곳에 개발 완료한 코드를 올리는 행위를 "배포/Delopy"라고 합니다. 고로 간단하게 보면 웹서버가 배포서버겠죠?
이번 포스팅에서는 AWS의 Elastic Beanstalk를 사용하여 배포서버를 구성하려고 합니다. 이 Beanstalk은 EC2의 웹 어플리케이션 전용 버전이라고 보시면 됩니다. 어떤 프레임워크를 올릴 것인지 Instance를 만들 때 선택하면 해당 환경을 자동으로 만들어줍니다. 처음에는 약간 어색 할 수 있으나, 익숙해지면 매번 환경구성하는 번거로움을 덜 수 있어서 굉장이 유용합니다 bbbb
내일 이어서 포스팅!
- Django Girls. 장고를 하는 여성개발자 커뮤니티? 인데 IT초급자에게 장고를 배울 수 있도록 행사를 연다 카더라... [본문으로]
'Development > Python' 카테고리의 다른 글
Python Scapy 라이브러리 관련 정보 (0) | 2018.11.08 |
---|