본문 바로가기
관리자

Programming-[Backend]

(417)
Django로 Pinterest 따라 만들기[2부 Docker] - 19. Nginx, staticfiles, Docker Network, Docker Volume 1. Docker Volume : 파일 참조 연동하기 Docker Volume 설정 이제 마지막 단계로 Docker Volume을 이용해서 nginx 컨테이너와 docker-gunicorn 컨테이너간에 파일 참조를 공유하게 만들어준다. 우선 nginx container를 수정해보자. portainer - Containers - nginx 클릭 Duplicate/edit 클릭 Volumes에서 아래 사진과 같이 설정한다. Bind Volume 형태로 container 상의 /etc/nginx/nginx.conf 파일과 host 서버(여기서는 로컬 PC) 상의 ~/nginx.conf 파일을 서로 참조하고, 연동되도록 하겠다는 것이다! Nginx로 접속 Docker network, Docker volume 설..
Django로 Pinterest 따라 만들기[2부 Docker] - 18. Docker, gunicorn, nginx, docker network, nginx.conf 1. gunicorn, nginx 배포환경에서 runserver 명령어를 사용하면 안된다. django는 웹 프레임워크를 만들기 위한 툴이지 서버에 배포하기 위한 툴이 아니기 때문에 performance, 보안 등에 문제가 생길 수 있다고 django 공식문서에서 설명한다. 따라서 대신 서버를 실행해주고, 뒤에서 언급할 Nginx와 연결해주는 Gunicorn 이라는 라이브러리를 django container에 설치할 것이다. Nginx와 Gunicorn의 개념(참조 2, 3) 그전에 간단하게 Nginx와 gunicorn 등의 개념에 대해서 짚고 넘어가자. WEB-WAS(WGSI) 관계 자바-스프링에서는정적 자원과 동적 자원을 WEB과 WAS가 나누어서 제공했던 것(각각 아파치, 톰캣)처럼 여기서 진행하는..
Django로 Pinterest 따라 만들기[2부 Docker] - 17. Docker VPS-VULTR, Dockerfile, portainer, SSH 1. Docker 간단 개념 Docker는 가상화된 서버에서 각종 라이브러리나 프로그램들을 단위체로 제공하는 오픈소스 플랫폼이다. 각 컴퓨터가 다른 운영체제(OS), 다른 프로그램 구성을 갖고 있고 이것들을 매번 설치하고 배포하고 관리하는 것이 번거롭다보니, 가상 서버에서 Image화하여 저장하고, container로 배포 및 구동하는 방식으로 개선한 것이다. Image는 OS, 각종 프로그램들의 버전별 기록이라고 할 수 있다. Windows 10, v0.1 버전을 Image화 해놓고, 여러 서버 컴퓨터에 설치하다가 Windows 10, v0.2가 나오면 이걸 다시 image로 만들어서 container로 구동하고 다른 사람들이 사용하게 할 수도 있다. Image를 만들고, 이것을 복사한 instance..
Django로 Pinterest 따라 만들기-16. WYSIWYG 적용, 프로젝트 다듬기 1. WYSIWYG WYSIWYG[위지윅]은 What You See Is What You Get의 약자로 텍스트를 작성할 때 Bold, Italic, 글자 크기, color 등을 바꿀 수 있도록 pop-up 형태로 옵션을 제공해주고, text의 style과 관련된 다양한 기능을 제공해주는 라이브러리들을 말한다. 이 강의에서는 medium-editor 라는 라이브러리를 사용한다. github: https://github.com/yabwe/medium-editor 홈페이지: https://yabwe.github.io/medium-editor/ ArticleCreate에 적용 article을 작성할 때 medium-editor가 동작하도록 세팅해본다. 우선 form에서 content 부분에 적용되도록 Arti..
Django로 Pinterest 따라 만들기-15. Subsrcibe, RedirectView, Field Lookup, queryset 1. SubscribeApp 시작 app 시작 및 View 작성 이번에는 어떤 Projecet를 구독할 수 있는 SubscribeApp을 만들어본다. app을 시작하고 기본 View를 만든다. 여기서 적용하는 RedirectView는 View 작업 후 바로 redirect가 일어나도록 해주는 view이다. 구독 후에는 구독 정보 및 버튼 모양만 변경되는 것이지, 별다른 로직이 없기 때문에 RedirectView를 적용한다. @method_decorator(login_required, 'get') class SubscriptionView(RedirectView): def get_redirect_url(self, *args, **kwargs): return reverse('proejctapp:detail',..
Django로 Pinterest 따라 만들기-14. ProjectApp 만들기, MultipleObjectMixin 1. ProjectApp 스스로 만들어보기 여태까지 했던 내용을 바탕으로 스스로 ProjectApp을 만들어본다. 대상 및 요구사항은 아래와 같다. 대상: projectapp - article 들을 담을 수 있는 폴더 같은 개념이다. project:artilce = 1:N 요구사항: - Create, Detail, List View를 만든다. - Create 시 login이 필요하다. - Model의 fields = ['title', 'description', 'image', 'created_at'] 위 사항들을 바탕으로 스스로 만들어본 페이지 사진 새로운 내용들 pagination option 기존에는 a link의 ? 앞에 {% url 'articleapp:list' %} 라는 문구가 있었는데, 이를..
Django로 Pinterest 따라 만들기-13. MobileResponsive Layout 구현 이번 글에서는 Mobile 화면의 Layout에 맞게 조금 수정해본다. 1. 서버 세팅 및 모바일 접속 0.0.0.0:8000 모바일에서 접속이 가능하도록 하기 위해서 0.0.0.0으로 서버를 실행한다. 0.0.0.0 ip로 실행하는 것은, 서버 컴퓨터의 ip주소를 정확히 알 수 없을 때 사용한다고 한다. 물론 ip 주소를 cmd->ipconfig를 통해서 직접 알아내도 된다. 'python manage.py runserver 0.0.0.0:8000' ALLOWED_HOSTS settings.py에서 접속하는 컴퓨터의 ip 허용값을 설정해준다. 리스트에 모든 사용자를 허용한다는 의미로 '*'을 입력해준다. 다만 이것은 컴퓨터와 핸드폰이 네트워크상 같은 공유기에 접속해 있을 때만 허용되는 옵션이라고 한다...
Django로 Pinterest 따라 만들기-12. ListView/Pagination, Mixin, CommentApp 구현 1. ListView/Pagination 이제 기존에 Lorem Picsum으로 간단히 적용해놓았던 List 페이지를 실제로 사용자가 입력하는 Article들의 리스트가 조회되도록 수정한다. ListView 적용 임시로 적용해두었던 TemplateView를 ListView로 변경한다. ListView도 CRUD 관련 View들과 마찬가지로 django에서 기본적으로 제공해주는 view이며, 여기에는 pagination option도 지정할 수 있다. articleapp/views.py ArticleListView를 추가한다. ListView를 상속받고, paginate_by 옵션을 설정해준다. 5로 두어 한 페이지당 5개만 출력되도록 해본다. class ArticleListView(ListView): m..