Siner's Blog


awscheat sheetcomputer sciencecontainercrawlingdartdatabasedjangodockergitgolanggraphqlhrhttpiacjavakubernetesmapmonitoringnestjsnetworknodeooppythonsecurityserverlessstorageterraformttbkktypescript,javascriptuxvalidation

https://user-images.githubusercontent.com/34048253/155849956-6d7ceb71-b0df-4718-9977-0a9341e56d49.png
장고의 패스워드 유효성 검사 코드분석
Django Password Validator
4 min read2021.8.16

django의 startproject로 기본적으로 생성되는 AUTH_PASSWORD_VALIDATORS에 대해 분석해보려 합니다 1. UserAttributeSimilarityValidator 유저의 attributes(username, first_name, last_name, email)를 정규표현식으로 split한 후 각각의 value_part에 대해 유사도를 측정하고, 유사도가 max_similarity(default: 0.7)이상인 경우 validation error를 발생시킵니다. 유사도 측정에는 SequenceMatcher를 사용합니다. 2. MinimumLengthValidator password의 길이가 min_length(default: 8)보다 작다면 validatoion error를 발생시킵니다. 3. CommonPasswordValidator 사람들이 가장 많이 사용하는 패스워드 20000개에 해당하는 경우 validator error를 발생시킵니다. 200…

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/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…

1