개발을 파헤치다(101)
-
Docker 명령어 RUN / CMD / Entry Point의 차이점에 대해서
RUN / CMD / Entry Point 차이점 RUN RUN 명령어를 사용하면 명령을 실행한 결과가 새로운 Layer로 저장됩니다. 그리고 이 Layer는 베이스 이미지에 추가됩니다. RUN 명령어는 주로 새로운 패키지를 설치하거나 소스를 받아서 빌드한 경우 사용됩니다. Docker는 Container를 실행할 때 Docker Image가 필요합니다. 이 Image는 이미 존재하는 다른 Docker Image나 배포된 OS를 기반으로 만들어집니다. 베이스 이미지에 Docker 명령어를 가지고 자신에게 맞는 환경을 하나 하나 얹어가는 것입니다. RUN 명령어를 사용하여 새로운 패키지가 설치하거나 새로운 명령을 실행하는 경우 베이스 이미지에 내용이 더해지는데 이것을 Layer가 더해진다고 표현합니다. L..
2018.05.31 -
Docker가 등장하게 된 배경에 대해서
과거 서버 개발은 상당히 까다로운 작업이라고 할 수 있었습니다. 대부분의 서비스가 클라이언트와 서버로 구성되어 있다는 사실에 반문을 제기할 사람은 많지 않을 것입니다. IOS나 Android 혹은 Web같은 클라이언트가 상품을 판매하는 상점이라면 서버는 판매할 상품을 만들고 배송하는 공장이라고 할 수 있습니다. 만약 공장이 갑자기 문을 닫는다면 어떻게 될까요? 아무리 이쁘게 상점을 꾸며놓는다한들 상품이 없는 상점에 고객들은 오지 않을 것입니다. 서버가 중요한 이유는 위의 예시에 나와있는 내용과 같은 맥락입니다. 데이터베이스로부터 알맞은 데이터를 효율적으로 가져다가 클라이언트에서 볼 수 있는 양식으로 가공한 뒤 보내주는 것이 서버의 역할입니다. 매우 중요합니다. 서버 개발이 되려면 다양한 프로그램, 다양한..
2018.05.30 -
반응형 웹 레이아웃 만들기 - 이미지 바꾸기
반응형이란 무엇인가? 웹은 사용자가 편하게 드나들 수 있는 플랫폼입니다. 스마트폰에서도, Window에서도, Mac에서도, 태블릿에서도 별다른 설치나 설정없이 브라우저만 있으면 접근할 수 있기 때문입니다. 이러한 장점을 가지고 있는 웹이지만 웹 페이지 혹은 웹 사이트를 개발하는 개발자 입장에서는 매우 난감한 상황이 벌어질 수 있습니다. 바로 우리가 사용하는 모니터, 스마트폰, 태블릿등 기기들의 화면 크기가 모두 다르다는 사실 때문이죠. 상상이 되시나요? 그 모든 기기들의 크기에 따라 웹 페이지가 다르게 보여야한다면 대체 얼마나 많은 코드가 존재해야 할까요? 반응형(Responsive)라는 말은 이런 문제를 극복하고자 나오게 된 개념입니다. 즉, 기기의 너비(width)와 높이(height)에 따라 웹 페..
2018.05.17 -
Django REST Framework의 Filter Backends 사용하기
Intro Filtering은 데이터의 목록을 조회하는 GET 요청에 있어 거의 필수적인 요소입니다. 기술적으로 어려운 부분은 없다고 판단되지만 직접 구현한다고 했을 때, 상당히 번거로울 수 있습니다. Django REST Framework(이하 DRF)에서는 ViewSet과 연동하여 쉽고 빠르게 적용할 수 있는 Filter Backends라는 도구를 제공합니다. 이 도구를 활용하면 완성된 ViewSet에 필터링을 적용하는데 채 5분도 걸리지 않습니다. Prerequisite Filtering을 지원해주는 DjangoFilterBackend를 사용하기 위해서는 새로운 패키지를 설치해야 합니다. (venv) $ pip3 install django-filter 이 패키지를 설치하고 DRF에서 Filterin..
2018.05.16 -
Django Admin에서 Form 저장 커스터마이징하기
Django Admin에서 기본적으로 제공하는 Form을 통해 언제든지 Model Instance를 생성할 수 있습니다. TextField같은 경우 기본적으로 Form에서는 Text Area로 등장하는데 좀 더 다양한 입력을 위해서는 WISYWIG 에디터를 적용해야 합니다. Summer Note는 가볍고 Django에 적용하기 쉬운 에디터 중 하나입니다. Summer Note를 적용하고 Form의 save 버튼을 눌렀을 때 있는 그대로 데이터베이스에 저장되지만 때때로 다른 처리가 필요할 수 있습니다. 예를 들면, 서버의 Local에 이미지를 저장하는 것이 아니라 클라우드 서비스에 저장한다던지 같은 예외적인 처리들이 필요할 수 있습니다. 이런 경우에는 Django Admin에서 Form을 전송하여 Mode..
2018.05.15 -
Django Admin에서 Summer Note 에디터 사용하기
Summer Note는 Django에서 사용할 수 있는 굉장히 가볍지만 강력한 WISYWIG 에디터입니다. Summer Note를 사용하기 위해서는 패키지를 설치하고 몇 가지 설정만 해주면 됩니다. PyCharm의 Project Interpreter 세팅에서 django-summernote를 추가합니다. CLI를 통해 설치할 경우, 아래의 명령어를 입력합니다. $ pip3 install django-summernote 이제 settings.py에 Summer Note를 추가합니다. INSTALLED_APPS = [ ... 'django-summernote', ... ] Summer Note에서 제공하는 File Upload를 사용하기 위해서 파일이 저장되는 경로도 설정해주어야 합니다. settings.p..
2018.05.14