본문 바로가기

전체 글

(67)
[Django] Django에서 static 과 media 이용하기. DEBUG=False일 때 static 문제점 Django를 막 입문한 뒤 프로젝트를 배포하려고 settings.py에서 DEBUG=False로 바꾸는 순간 경악을 금치못할 수 있다. DEBUG=False로 바꾸는 순간 runserver로 서버를 돌릴 시 static file, media file들이 제공이 안 됐을 것이다. 웹서버와 uWSGI와 Django를 연동할 때에도 마찬가지이다. 그래서 static file과 media file은 웹서버에서 전송해주는 것이 바람직하지만 너무도 귀찮고 경우가 여러가지라 복잡하다. 그래서 정리해본다. 문제의 원인은? 기본적으로 Django의 runserver 기능은 개발 과정에서 편리하도록 임시적으로 웹서버 기능을 하기 위한 것이라고 하고 만약 배포하는 과정이라면 DEBUG=False 로 두는 것이 바람..
docker-compose를 통해 Nginx, Django 연동하기 2 - Django App과 uWSGI 연동하기 Intro 저번 1편에서는 docker-compose를 이용해 Nginx, uWSGI, Django를 연결하기에 앞서 "Hello, ~~~" 을 출력해주는 간단한 Django앱을 만들었습니다. 사실 uWSGI나 Docker 관련한 글을 보러 오신 분들은 다들 아시는 내용이겠죠. 이번엔 uWSGI, WSGI 가 각각 뭔지 알아보고 사용해볼게요. WSGI 많~~~은 블로그에서 uWSGI와 WSGI를 설명하고도 있고, 똑~같이 설명하고도 있기때문에, 자세히는 다루지 않겠습니다. 쉽게 말해서 WSGI는 Web Server Gateway Interface라는 것인데 자바를 공부해보신분들은 아시겠죠? 인터페이스는 허상(?)일 뿐 실체가 아니잖아요. 그 WSGI 인터페이스를 구현한 구현체 중 하나가 uWSGI입니다...
Docker 를 이용해 가장 간단하게 다양한 가상환경에서 작업하기 Intro Docker 가 보통은 Image를 이용해 소프트웨어를 배포할 때 많이 쓰이는 것 같긴 하지만, 본연 그대로를 다시 생각해보면 Docker 는 OS 를 가상화시켜주는 소프트웨어이기 때문에, 어떤 독립적인 작업공간이 필요할 때 Docker를 이용하는 것도 의외로 간편하고 재미있어요. 예를 들어 내가 단순히 Python 프로그램을 새로운 방식으로 시도하고 있다면 그냥 한 프로젝트 디렉토리를 만들어서 이용하거나 Virtual Environment를 이용하면 되겠지만, Nginx 나 Apache, Vim 설정 등 얕은 깊이에서 노는 것이 아니라, 사용자나 OS와 관련된 작업을 한다면. 내 원래의 환경에서 작업하기 조금 부담스럽죠. 혹은 강의 영상을 찍거나 블로그에 글을 올리기 위한 Demo 를 위해서..
ipmat. 입맛 - 입맛월드컵으로 음식 추천. 친구,연인에게 내 입맛을 퀴즈로! v.1.0 방학동안 힘든 일도 많았지만 나름 힘내서 열심히 만든 첫 어플. ipmat 입니다. 원하는 주제의 푸드북을 통해 입맛 월드컵이라는 컨셉으로 지금 내 입맛에 끌리는 음식을 추천 받을 수 있고, 주로 강남, 수원, 경희대 등의 특정 지역 및 학교의 맛집들을 위주로한 푸드북 또한 추가 중이에요!! 그리고 대립되거나 비교해볼만한 음식 두 개씩 짝을 지어 입맛 문제지를 만들 수 있고, 이를 통해 친구나 연인과 서로의 입맛에 대한 퀴즈를 풀어볼 수도 있답니다! 혹시 자기 학교나 지역의 맛집과 관련한 데이터를 추가해주실 수 있는 분은 instagram - @mr_jjinsur 나 이 글의 댓글로 연락 주세요. 플레이스토어에서도 베타 테스터로 등록 후 이용가능하고 apk 를 직접 다운받아서도 이용이 가능합니다. ( a..
Django App Templates Directory. 장고 앱 템플릿 디렉토리 구조에 대해 Django App 의 Template 구조가 어떤 식으로 작용하는가? 이런 식으로 할 꺼면 그냥 app/templates/index.html로 하면 안 되는 건가? Intro 아마 Django를 처음 시작하는 사람들은 대부분 Django 의 Official Site에 있는 Tutorial. polls app 만들기를 접해보았을 것이다. 거기 예제를 따라가다보면 template 관련한 내용이 나오는데 주로 template directory structure를 아래와 같은 식으로 쌓는다. 근데 나는 처음에 Django 를 시작할 때부터 궁금했다. 예를 들어 app 이름이 tutorial 이면 왜 tutorial/templates/tutorial/index.html처럼 앱의 이름이 2번 등장해야하는가 말이다..
Django 테이블 삭제하는 방법. django.db.utils.OperationalError: no such table 오류 해결 방법 Intro Django 로 개발을 하면서 자주 TABLE( 혹은 Model, 섞어서 표현하겠음. )을 삭제할 때 Migration 에 대한 개념이 별로 없어서인지 django.db.utils.OperationalError: no such table 에러를 자주 만나게되었습니다. 이번에도 한 번 그런 에러가 발생해서 이번 기회에 한 번 정확한 해결방법 및 Django 에서 Model을 삭제하는 방법에 대해 정리해보려합니다. 요점 중요한 점은 django ORM (Database를 직접 다루는 게 아니라 Django에서 api를 통해 다루는 방식 ) 에서 python manage.py makemigrtions 는 DB에 migrate할 변동내역을 적어놓기만하는 것이고 실제 DB에 그 내용이 반영되는 것은 p..
티스토리 블로그에 마크다운으로 코드 올리기 Intro 티스토리에서 글을 쓸 때 마크다운 모드를 지원하지만, 꽤나 부족한 점이 많아보인다. 개인적으로는 마크다운에 능통한 편도 아니기 때문에, 라이브로 preview 까지 됐으면 좋겠지만, 그 중 가장 큰 분제는 바로 코드 올리기이다. 우연히 어떤 블로그에서 마크다운으로 코드를 올릴 수 있도록 js를 짜신 걸 보았는데, 좋은 아이디어인 듯 했으나, 적용이 안 되길래 내가 그냥 만들었다. 맨날 a=10 b=20 이런 식으로 올리기가 이제는 너무 귀찮았고, 개발자라면 귀찮음을 없애기 위해 더 귀찮은 일을 하는 것이 보통이기 때문에.... 이번에 만든 코드로 앞으로는 귀찮음이 적어질 것 같다. 사용방법 현재는 Prism.js 라는 Code Highlighting 기능이 있는 라이브러리와 함께 사용 중이다...
Dockerfile의 CMD와 ENTRYPOINT 차이. docker-compose.yml의 command 인트로 Docker를 처음 배우면서 Dockerfile을 작성할 때 CMD 와 ENTRYPOINT의 차이점을 잘 몰랐다. 사실은 Entry가 참가자 명단 뭐 그런 뜻이라는데 나는 뭔가 입구같은 느낌을 받아서, Container의 Working Directory를 지정하는 WORKDIR과 혼동을 했다. 그래서 학교 시험문제도 틀렸었다. 근데 이번에 아는 분의 README.md를 읽어보다가 docker-compose.yml의 command 와 관련해서도 한 번 개념을 집고 넘어가면 좋을 것 같아 정리해본다. 간단하게 봤을 때 CMD 와 ENTRYPOINT의 차이 ( Dockerfile에서 ) 공통점은 우선 CMD 와 ENTRYPOINT 모두 해당 Dockerfile을 이용해 생성된 Image를 바탕으로 Co..