퇴직후기술스팩 정리
1년간 YesNow에서 근무하면서 습득한 기술 스팩에 대한 정리를 위해 정리한 파일입니다.
목차
Docker
CICD (gitLAB/CodeDeploy)
WAF (Route53)
ALB(application LoadBalancer)
AutoScaling
iptables
Django 기본구조
Celery&RabbitMQ
보안(Security)
(Web Crawling) - 파일 저장하기
파이썬 웹 크롤링(Web Crawling) - 4. 크롤링 심화예제 1) 네이버 블로그 검색결과 CSV(엑셀) 파일로 저장하기1234567891011121314151617181920212223242526272829303132import csvfrom urllib.request import urlopenfrom bs4 import BeautifulSoup as bsfrom urllib.parse import quote_plus# class="api_txt_lines total_tit" # - 네이버 모바일 VIEW탭에 제목 classsearch = input('검색어를 입력하세요 : ')url = f'https://m.search.naver.com/search.naver?where=m_view&sm=mtb_jum&query={quote_plus(search)}'html = urlopen(url).re ...
(Web Crawling) - 검색결과에 따른 크롤링
참고사이트
파이썬 웹 크롤링(Web Crawling) - 3. 검색결과에 따른 페이지 크롤링예제 1) 네이버 블로그 검색결과 가져오기123456789101112131415161718192021from urllib.request import urlopenfrom bs4 import BeautifulSoup as bsimport urllib.parse# 네이버 검색 후 검색 결과baseUrl = 'https://search.naver.com/search.naver?where=post&sm=tab_jum&query='plusUrl = input('검색어를 입력하세요 : ')# 한글 검색 자동 변환url = baseUrl + urllib.parse.quote_plus(plusUrl)html = urlopen(url)bsObject = bs(html, "html.parser")# 조건에 맞는 파일을 다 출력해라title = ...
(Web Crawling) - 웹페이지 긁어오기
참고사이트
파이썬 웹 크롤링(Web Crawling) - 2. 웹페이지 긁어오기예제 1) 웹 문서 전체 가져오기12$ pip install requests$ pip install beautifulsoup4
request : Requests를 사용하면 간단한 코드만으로 웹페이지의 html 소스를 가져올 수 있습니다.beautifulsoup4 : 파이썬 웹 크롤링 라이브러리
123456789101112131415from urllib.request import urlopenfrom bs4 import BeautifulSouphtml = urlopen("http://www.naver.com") bsObject = BeautifulSoup(html, "html.parser") print(bsObject) # 웹 문서 전체가 출력print(bsObject.head.title) # <title>NAVER</title> 출력for meta ...
(Web Crawling) - Basic
참고사이트
파이썬 웹 크롤링(Web Crawling) - Basic웹 크롤러(Web Crawler)는 자동화된 방식으로 웹 페이지들을 탐색하는 컴퓨터 프로그램입니다.웹 크롤러가 하는 작업을 웹 크롤링(Web Crawling)이라고 부릅니다.
Beautiful Soup기본 세팅기본적으로 패키지 import를 통해서 가져오며 html파일을 가져오거나 urllib 혹은 requests 모듈을 통해서 직접 웹에서 소스를 가져올 수도 있습니다.
주요 함수find() 및 find_all()함수
함수 인자로는 찾고자 하는 태그의 이름, 속성 기타 등등이 들어갑니다.
find_all(name, attrs, recursive, string, limit, **kwargs) find_all() : 해당 조건에 맞는 모든 태그들을 가져옵니다. 12345678html = urlopen('url 주소') soup = BeautifulSoup(html, 'html.parser& ...
(AWS) EC2에 배포하기
서버 배포 방법인스턴스에 배포하기 전에 서버를 구성하는 방법의 종류를 알아 보겠습니다
Django로만 배포Django 프로젝트를 인스턴스에 그대로 옮겨 python manage.py runserver 를 켜서 서버를 돌리는 방법입니다.하지만 Django의 runserver는 개발할 때 쓰는 작은 디버깅용 웹 서버이기 때문에 실제 프로젝트를 이 방법으로 배포하지는 않고, 아래의 두가지 방법을 이용합니다.
uWSGI + Django로 배포Django 프로젝트를 생성하면 wsgi.py 파일이 생성되는 것을 많이 보셨을 겁니다. 우선 WSGI의 개념부터 살펴보면, Web Server Gateway Interface의 약자로 웹 서버(Apache, Nginx 등)와 웹 애플리케이션(Django, Flask 등) 사이를 이어주는 역할을 합니다. 즉 웹 서버로 들어온 요청을 Python 언어로 만들어진 웹 애플리케이션과 소통할 수 있도록 해주는 역할을 합니다.uWSGI는 이 WSGI 규격으로 만 ...
(AWS) Setting 하기
EC2 인스턴스 가상환경 세팅인스턴스 환경을 현재 사용중인 로컬 컴퓨터의 환경과 같게 만들어주기 위해서 세팅해줍니다.
pyenv 설치
터미널로 인스턴스에 접속합니다.Window - putty 접속Mac
1$ ssh -i <pem경로> <user name>@<public dns name>
locale 오류(한글 깨짐 현상) fix
1$ sudo vi /etc/default/locale
다시 시작
apt-get 업데이트
1$ sudo apt-get update
Common build problems에 나온 내용부터 설치
123$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \xz-utils tk-dev
pyen ...
(AWS) EC2 생성하기
Django 서버 기본 틀
웹 클라이언트가 웹 서버(Nginx)에 HTTP 프로토콜로 요청(request)를 보낸다.
CSS, JavaScript, Images, PDF 문서 등 파일 시스템에 저장되어있는 각종 정적 파일(static file)들은 웹 서버가 바로 처리할 수 있다.
정적 파일 외의 동적인 부분은 웹 서버가 처리할 수 없으므로 웹 어플리케이션 서버(uWSGI)에게 위임한다. 웹 서버가 웹 어플리케이션 서버에게 요청을 위임하고, 웹 어플리케이션 서버가 이를 대행해서 웹 서버에게 응답해주는 관계다. 이 사이를 매개해주는게 바로 앞에서 설명한 Unix Socket이다. 웹 서버와 웹 어플리케이션 서버 사이의 통신도 HTTP 프로토콜을 사용할 수 있지만, 같은 OS상에 존재하는 두 개체이므로 더 빠른 uwsgi 프로토콜을 사용한다.
웹 클라이언트가 요청한 HTTP 프로토콜의 메시지를, Python call로 변환해줘야 Python으로 기술된 어플리케이션이 동작할 수 있 ...
(Django) - PostgreSQL 연동
PostgreSQL 연동STEP1. PostgreSQL DataBase 설치PostgreSql 링크를 클릭해 다운로드필자는 Window 기반 Os를 사용하고 있기 때문에 Window용 파일을 다운받았다 .설치 과정은 이곳에 상세히 나와있다.
STEP2. PgAdmin 실행
시작 > pgadmin 검색 > 실행
설치 시 저장한 비밀번호 입력
STEP3. 유저 생성
STEP4. 데이터베이스 생성
STEP5. 모듈 설치 및 세팅psycopg2 모듈 설치
1$ pip install psycopg2
settings.py 파일 수정
123456789DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'DB_NAME', ' ...
R&D Note - Change_Dnote
참고사이트
React & Django 프로젝트input태그를 이용하여 직관적으로 한줄 노트를 작성할수 있는 앱
R&D Note - Dnote_Change (수정/삭제 구현)