1. Docker
Application 실행환경을 코드로 작성할수 있고 OS를 격리화 하여 관리하는 기술
Docker의 필요성
환경 표준화
리소스 격리
하나의 컴퓨터에서 여러개의 컴퓨터를 이용하는 것처럼 사용하기
가상머신 vs. Docker
가상머신 = 더 좋은 격리성
Docker = 더 좋은 성능
Linux Container
리눅스 기반 필요한 라이브러리와 어플리케이션을 모은 유닛
컨테이너의 네트워크 설정, 환경 변수 등 시스템은 각 컨테이너가 독립적으로 소유
Docker 비유
2. Flask
Micro Web Framework
웹 어플리케이션을 개발할수 있도록 웹 서비스나 웹 API를 제공
KeyPoints
Flask_app 폴더와 파일 생성 (ex.
init
.py)
route (ex. @app.route(’/’))
HTTP Request Methods = GET/HEAD/OPTIONS/POST/PUT/PATCH/DELETE etc.
Blueprint- 많아지는 라우트들을 하나의 파일로 모아서 매칭 (routes 폴더 생성)
Application Factory (import/circular import)
Jinja = HTML로 렌더링(render_template), 상속, 변수넘기기, Loop생성 etc.
Bootstrap = 프론트엔드에 대한 최소한의 지식으로 예쁘게 꾸밀수 있게 해주는 도구
3. 배포와 대시보드
배포
Web Server Gateway Interface (WSGI) - 다리 역할. Flask같은 마이크로 프레임워크를 서버로 연결해서 외부 배포
gunicorn = python의 WSGI HTTP Server
Heroku
Cloud Platform
빠르게 결과를 얻을수 있음, 저렴, 실험에도 사용가능
배포 과정
로그인 → create app → requirements.txt → Procfile → git init → heroku git으로 배포 (add/commit/push)
대시보드
데이터를 시각화 하여 전달하는 툴
Business Intelligence에 많이 사용됨 (Data Analysts)
대시보드 구성 프로세스
요구사항 : 핵심지표는 무엇인가?
설계 : 지표는 어떤 기술을 활용하여 어떻게 볼 것이고, 어디서 생성되는가?
구현 : 대시보드를 전체적인 흐름에 적합하도록 구현한다.
가동 : 구현한 대시보드를 팀원 또는 다른 사람에게 보여주면서 피드백을 받는다.
테스트 : 대시보드에 데이터베이스를 연결하여 데이터를 넣어보면서 대시보드를 구체화한다.
검수 : 구체화된 대시보드가 정상적으로 작동되고 활용되는지 전체적으로 확인한다. 이 단계에서는 시각화와 스토리텔링도 함께 살펴본다.
개선 : 위의 전체적인 작업을 단계별로 적합하게 작업되었는지 확인하고 부분적으로 수정한다.
4. 시간과 부호화
시간
UTC (Universal Time Coordinated) — 영국 Greenwich 기준으로 세계시간 협정
ISO 8601
년,월,일,시간,분,초,Timezone 기준으로 작성.
년도는 4개의 숫자로 그 외의 날짜와 시간은 두 개의 숫자
Unix Time Epoch Time - 시간 연산을 위해 사용
Unix time - 컴퓨터가 해석하기 편한 시간 표현
Epoch time - 특정 시간 기준으로 시간 표현
스케줄링
시간을 지정해서 시간에 맞게 데이터를 수집
객체 부호화
데이터를 효율적으로 처리하는 방식
Encoding/Decoding (부호화/복호화)
Machine Learning에서는 pickle 사용
pickle.dump- 부호화. wb 사용
pickle.load - 복호화. r 사용
JSON
json.dump- 부호화. wb 사용
json.load - 복호화. r 사용