분류 전체보기(126)
-
Django의 Simple Template Response와 Template Response에 대해서
Django는 강력한 웹 프레임워크입니다. 쉽게 사용할 수 있는 Python언어로 구현되어 있으며 10만개가 넘는 다양한 패키지들을 제공하기 때문에 뛰어난 생산성을 자랑합니다. Django에서는 웹 프론트엔드 구현을 더 빠르고 쉽게하기 위해서 다양한 템플릿들을 제공합니다. Django에서 기본적으로 제공하는 HttpResponse는 정적인 파일들(웹 페이지에 동적으로 데이터가 들어가지 않는 파일들)을 렌더링해서 응답으로 보내줍니다. HttpResponse는 객체가 생성됨과 동시에 이미 렌더링된 컨텐츠(HTML 파일) 받습니다. 해당 컨텐츠를 수정할 수 있지만 쉽게 수정할 수 있는 구조는 아닙니다. 이것은 마치 가게에서 이미 포장까지 완료된 상품을 바꿔달라고 하는 것과 같습니다. 만약 상품 포장을 하기 전..
2018.07.24 -
Docker 이미지 빌드시 선택적으로 Layer Caching 사용하기
DockerFile에서 이미지를 빌드하다 보면 수 많은 RUN 명령어를 사용하게 됩니다. RUN 명령어는 이미지 레이어를 만들게 되는데 이 이미지 레이어는 우리가 흔히 게임할 때 저장을 하는 세이브 포인트 역할을 합니다. 따라서 다음번에 Docker 이미지를 빌드할 때 해당 이미지를 Caching하여 사용합니다. 이는 빌드 시간을 단축시킵니다. 하지만 때때로 Cache를 사용하지 않고 명령을 수행해야 할 경우가 있습니다. 예를 들어, 원격 저장소에서 소스 코드를 받아와서 사용하는 경우 Caching된 이미지 레이어를 사용하는 경우 변경된 소스가 반영되지 않습니다. 이를 해결하기 위해 다음의 솔루션을 사용합니다. #DokerFile FROM centos/python-36-centos7 MAINTAINER ..
2018.07.23 -
AWS EC2에서 BitBucket으로 자동 배포 시스템(Auto Deployment) 구축하기
배포 프로세스 BitBucket 환경구축ssh key 생성하기cd ~/.ssh ssh-keygen -t rsa 위와 같이 명령어를 입력하면 key 파일 이름을 입력하라고 나옵니다. 용도에 맞게 적당히 키이름을 입력하면 passphrase를 입력하라고 나오는데 이 부분은 넘어가게 됩니다. 엔터 그리고 다시 엔터를 누르면 위와 같이 개인키와 공개키가 생성이 됩니다. 개인키는 EC2에서 BitBucket에 접속할 때 사용되고, Public Key는 서버측에 등록합니다. 위의 bitbucket_rsa.pub가 공개키입니다. 위 그림과 같이 BitBucket에 들어가서 Profile_setting에 갑니다. 그러면 Security 항목에 SSH keys관리하는 탭이 있는데 이곳을 클릭합니다. Add key를 눌러..
2018.07.17 -
CGI와 WSGI을 파헤치다
CGI란 무엇인가? CGI(Common Gateway Interface)는 웹서버에서 정적인 컨텐츠가 아닌 동적인 컨텐츠를 사용자에게 제공하기 위한 인터페이스입니다. 보통 웹서버의 역할은 사용자의 요청에 알맞은 페이지 혹은 데이터를 내보내는 것으로 알려져 있습니다. 하지만 그 내용이 계산이 필요하다거나, 데이터베이스에서 가져와야 해서 매번 결과가 다르다면 웹서버 혼자서는 이에 대체할 수 없습니다. 결국 웹서버가 사용자가 만든 프로그램과 통신하여 처리가 완료된 결과값을 받은 뒤 클라이언트에게 응답을 보낼 수 있는 인터페이스가 필요한 것입니다. CGI는 이 문제를 해결하기 위해 고안되었습니다. CGI는 인터페이스이며 특정 플랫폼에 의존하지 않고, 웹 서버로부터 외부 프로그램을 호출하는 방식을 정의해 놓은 것..
2018.06.06 -
Pycharm pip 10.0.1 버전 AttributeError: module 'pip' has no attribute 'main'에러 해결하기
pip 10.0.1에서 특정 메서드를 지원하지 않게되면서 패키지 설치 시 에러가 발생하게 되었습니다. 내용을 확인해 보면 더이상 pip에서 main이라는 속성을 지원하지 않는다는 내용입니다. pip를 이용하여 개발에 필요한 패키지들을 설치하기 때문에 이 상태로는 프로젝트 진행이 어렵습니다. 따라서 이 경우 10.0.1 버전을 9.0.3 버전대로 다운그레이드 해주어야 하는데 Pycharm에서는 잘 되지 않습니다. 이를 수동으로 해주어야 합니다. 먼저 프로젝트 디렉토리로 이동합니다. 가상환경(venv) → Scripts로 이동하면 해당 프로젝트의 가상환경에서 사용하는 Python파일이 있습니다. 여기에서 PowerShell을 열어줍니다. .\python.exe -m pip install --upgrade p..
2018.06.05 -
AWS S3를 이용한 웹 페이지 호스팅 구축하기
Amazon Simple Storage Service란? 서비스를 런칭하게 되면 정말 무수한 데이터가 쏟아져 들어오게 됩니다. 이미지 저장만 해도 큰 용량을 차지할 수 있습니다. 자체 서버 구축(On-Premise)은 시간도 많이 걸릴 뿐더러 유지에도 상당한 노력이 들어가게 됩니다. 특히 데이터 백업, 데이터 분석, 데이터 배포등 정말 여러가지 신경 쓸 부분이 많은데 이것을 모두 자체 구현한다는 것은 사실 너무 힘든 일입니다. 그래서 Amazon에서 준비한 서비스가 바로 Amazon Simple Storage Service이죠. 수 많은 데이터가 들어오다 보면 서버가 다운되는 일은 흔하게 일어나죠. 서버 다운을 예측하기는 어렵기 때문에 그때 그때 개발자가 대처해야 한다면 이는 매우 비효율적입니다. 서비스..
2018.06.04