Siner's Blog


awscheat sheetcomputer sciencecontainercrawlingdartdatabasedjangodockergitgolanggraphqlhrhttpiacjavakubernetesmapmonitoringnestjsnetworknodeooppythonsecurityserverlessstorageterraformttbkktypescript,javascriptuxvalidation

https://user-images.githubusercontent.com/34048253/155849369-ccfc91d8-071d-4094-bfa0-479b364dfb54.png
Express.js란 무엇인가 (Javascript 백엔드 프레임워크)
Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크
4 min read2020.1.3

참고자료 Express In Action Express.js Node.js, Express가 등장한 배경과 철학에 대해 설명합니다. 1. JS 엔진과 Node.js Express에 관해 얘기하기 전에, Node.js에 대한 얘기를 먼저 해야 합니다. 이를 위해 Express 인액션의 일부 내용을 발췌하였습니다. 자바스크립트 엔진 : JS는 주로 웹 브라우저 내에서 사용된다. 웹 페이지의 일부를 수정하기 위한 간단한 스크립트 언어로 시작했지만 애플리케이션과 라이브러리가 가득 찬 복잡한 언어로 성장했다. 모질라와 구글 같은 많은 브라우저 공급자는 자원을 빠른 JS 런타임에 쏟아붓기 시작했고, 그 결과로 브라우저는 더 빠른 JS 엔진을 갖게 되었다. Node.js의 등장 : 2009년에 등장한 Node.js는, 구글 크롬의 강력한 JS 엔진인 V8을 채용했고 서버에서 이를 실행할 수 있도록 했다. 개발자들은 이제 서버 사이드 애플리케이션을 개발할 때 JS…

https://user-images.githubusercontent.com/34048253/71055071-a4fc5500-2197-11ea-89e3-b0b4dad1a0db.png
class-validator를 사용한 타입스크립트(Typescript) Validation
Typescript Data Validation
4 min read2019.12.17

참고자료 : typestack/class-validator Express를 사용하는 Typescript 환경에서 class-validator를 사용하여 Request Data를 Validation하는 과정을 다루고 있습니다. 1. Data Validation Data Validation(데이터 유효성 검사)이란, 다루는 데이터가 올바른 Format을 가지는지 확인하는 과정입니다. 2. class-validator typestack/class-validator 데코레이터 및 비 데코레이터 기반 검증을 사용할 수 있습니다. 내부적으로 validator.js를 사용하여 유효성 검사를 수행합니다. class-validator는 브라우저 및 node.js 플랫폼 모두에서 작동합니다. 3. Format 정상적인 데이터는 아래의 Format을 충족해야 한다고 설정해봅시다. 4. Sample Data 정상적인 Request Data Sample은 아래와 같습니다. 5. Validator Class…

https://user-images.githubusercontent.com/34048253/61307238-ef645900-a828-11e9-860c-21eb3bf9f7ab.png
장고(Django)에서 S3 연동하기
Amazon Web Service S3
4 min read2019.7.17

출처 : django 에서 S3에 Static, media 파일 저장하고 사용하기 소셜미디어 프로젝트를 준비하면서, Static 파일들에 대한 트래픽 부담을 줄이기 위해 S3를 도입하고자 하였다. Django에서 S3를 연동하기 위해서는 boto라는 라이브러리를 사용해야 한다는 것은 이미 알고 있었으나, 정확한 사용 방법을 몰라서 찾아보았고, 나중에도 사용할 때 까먹지 않기 위해 포스팅으로 작성하려 한다. 1. 버킷 생성 image 버킷 이름을 작성하고 image 넘어가고 image 모든 유저가 읽을 수 있게 Block 설정을 해제해주자 image 최종 확인 후 생성한다 image 버킷이 생성되었다 2. Policy 설정 image Bucket 선택후 Permissions - Bucket Policy 에서, 아래처럼 내용을 작성한다 BUCKET-NAME은 Bucket Policy 설정페이지에서 확인이 가능하고, USER-ARN은 https://console.aws.amazon.com…

https://user-images.githubusercontent.com/34048253/155849473-edecbad3-31af-4b30-8895-cb0883b7bd96.png
파이썬(Python3)으로 왓쓰리워즈(what3words, W3W)를 이용해보자.
세상의 모든 주소를 세 단어에 담다
4 min read2019.5.20

what3words란? what3words (W3W)는 전 세계 지도 상의 스팟(3m x 3m)을 3개의 무작위 단어로 표현한 좌표체계입니다. 이 기능을 사용하면 마이크로 단위의 장소 공유와 주소가 없는 지점도 세 단어 주소로 공유/검색이 가능합니다. 현재 27개 언어로 W3W 세단어 주소가 제공 중이며, 카카오에서도 what3words와의 제휴를 통해 한글 W3W 주소체계를 서비스 하기 시작했습니다. image API KEY 발급 what3words를 사용하기 위해서는 https://accounts.what3words.com/ko/register에서 API KEY를 발급 받아야 합니다. image pip 패키지 설치 공식 문서는 https://docs.what3words.com/wrapper/python/에 있습니다. what3words에서는 pip 패키지를 지원하여 python에서 매우 편리하게 이 기능을 사용할 수 있습니다. 위경도 <-> W3W 변환 파이썬 코드로 what…

https://user-images.githubusercontent.com/34048253/155849543-18ab95ed-5c65-4020-9d31-c7071450e2df.png
포스트그레스(PostgreSQL)로 설명하는 도커 컴포즈(Docker Compose) 초간단 사용법
3 min read2019.3.2

이번 장에서는 Docker Compose의 일반적인 사용방법과, 이를 사용하여 PostgreSQL을 배포하는 방법에 대해서 설명하겠습니다. 0) Compose란? Overview of Docker Compose Compose란 여러개의 도커 컨테이너들을 한꺼번에 관리(빌드, 배포 등) 할 수 있는 Tool입니다. Compose를 사용하면 YAML 파일을 사용하여 응용 프로그램의 서비스를 구성 할 수 있습니다. YAML 파일을 작성하면 단 하나의 명령어만으로 모든 서비스을 시작할 수 있습니다. Dockerfile을 작성하세요. (없어도 무방합니다.) docker-compose.yml파일을 작성하여 모든 서비스가 한번에 배포되도록 하세요. docker-compose up명령어를 사용하여 모든 서비스를 한번에 배포하세요. 추가 설명을 붙이자면, docker run…

https://user-images.githubusercontent.com/34048253/155849594-90045484-a15e-4b3b-abf0-2ab382b9a518.png
나만의 도커(Docker) 이미지를 만들어서 장고(Django) 서비스 배포하기
6 min read2019.2.25

저번 장에서는 Django 공식 도커 이미지를 확인해보았고, Deprecated되었음을 확인했습니다. 이번 장에서는 나만의 Django 이미지를 직접 만들어서 배포해보고, docker hub에 업로드까지 해보겠습니다. 본 포스팅의 프로젝트 소스는 아래의 링크를 통해 얻을 수 있습니다. github.com/siner308/django-with-custom-image docker image from cultivatehq.com 0) Dockerfile 도커 이미지를 만들기 위해서는 Dockerfile이 필요합니다. Dockerfile 작성의 힌트를 얻기 위해, Django의 공식 Dockerfile을 확인해봅니다. Official Dockerfile (Deprecated) 아래는 제가 만든 Dockerfile입니다. 위의 Deprecated 버전과는 다르게 python3.6을 기반으로 하여 Django 2.0 이상의 버전을 사용하도록 하였습니다. My Dockerfile…

https://user-images.githubusercontent.com/34048253/155849664-c7f20fd7-0925-417c-9eed-16a16530facb.png
장고(Django) 공식 이미지로 설명하는 도커(Docker)의 기본적인 사용법
7 min read2019.2.16

이번 장에서는 Django 공식 이미지를 사용하여 Docker의 기본 개념에 대해 설명하겠습니다. Custom 이미지를 생성하여 Django를 배포하는 방법에 대해서는 다음 장에서 다루겠습니다. 0) Docker Docker란 무엇입니까? Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다. Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있습니다. Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있습니다. 1) Docker Hub Docker Hub에서는 컨테이너 이미지를 받아서 사용하고, 자신만의 이미지를 만들어서 업로드 할 수도 있습니다. 프로젝트에 사용할 Django 이미지를 얻기 위해 hub.docker.com…

https://user-images.githubusercontent.com/34048253/155849689-6988ab4c-36b7-4118-b05f-5c1211e88c8c.png
셀레니움(Selenium)과 파이썬(Python)으로 지도 크롤링 해보기
14 min read2019.1.27

0) 계기 어느날 저희 아빠가 저에게, 아빠 : “이게 경기도 번지수를 보여주는 사이트인데, 일정 구역을 프린트해서 보고 싶어.” 아들 : “컴퓨터로 이렇게 잘 보이는데 왜 뽑아야되나요?” 아빠 : “어르신들과 같이 보는데 노트북으로 보여드리기는 그렇고, 전지로 뽑아가고 싶어.” 아들 : “네… 오늘 안에 처리해드리죠.” 해서 크롤러를 만들게 되었습니다. 1) 정보수집 보통의 지도 서비스에서는 지도 데이터를 각각의 작은 타일로 구성되어 있습니다. 따라서 그 작은 타일들을 전부 다운로드해서 하나의 이미지로 만드는 작업을 하면 됩니다. 일단 경기도부동산포털의 지도에서 타일 데이터(map tile)를 어떤 식으로 가져오는지 찾아봅시다. image 로딩과 동시에 페이지 검사를 들어가서 network 탭을 살펴보면, 아래와 같은 결과가 나옵니다. image 예상한대로 맵 타일을 여러 개 받아오는 것이 보이네요, 좀더 자세하게 확인하기 위해 하나를 클릭해봅시다. image image…

https://user-images.githubusercontent.com/34048253/155849742-0083a4d2-a19f-4806-b36c-24f707425ca4.png
Start Django with Virtualenv
3 min read2019.1.12

This post is based on Ubuntu 16.04. Here's what you need to configure a Django project using virtualenv. pip virtualenv (Python >= 3.5) Django >= 2.0 0) Why virtualenv? There are people who say that "Django works fine, Even if you are not using virtual environments" Let's assume the situation. Without a virtual environment, you're installing and using pip modules. At that time, you installed the latest version of Django 1.11, using a new feature called A. A few years later, as Django 2.2 becomes…

https://user-images.githubusercontent.com/34048253/155849742-0083a4d2-a19f-4806-b36c-24f707425ca4.png
가상환경(Virtualenv)로 장고(Django) 시작하기
7 min read2019.1.12

본 게시물의 내용은 Ubuntu 16.04 를 기반으로 작성되었습니다. virtualenv를 이용한 Django 프로젝트 구성에 필요한 요소는 다음과 같습니다. pip virtualenv (Python >= 3.5) Django >= 2.0 0) virtualenv를 쓰는 이유 "가상환경으로 안해도 Django 잘 돌아가던데?" 라고 하시는 분들이 있을겁니다. 만약 이렇다면 어떨까요? 가상환경 없이 pip 모듈들을 설치해서 사용하고 있었다고 가정해봅시다. 그 당시 최신버전인 Django 1.11 버전을 설치하여 프로젝트를 진행했고, 1.11 버전에 새롭게 추가된 A 라는 기능을 사용합니다. 수년뒤에 Django 2.2 버전이 등장하게 되고, 새로운 기능들이 추가됨과 동시에, 과거에 사용되던 A 라는 기능은 더이상 사용할 수 없게 됩니다. 새로운 프로젝트를 진행하려던 저는 새로운 버전인 Django 2.2 를 사용하고 싶은 마음에 가상환경 없이 설치된 Django 1.1…

1234