Goggle Kaap: 구글 킵 클론코딩, Fastcampus 2021
강의링크
- 한 번에 끝내는 파이썬 웹 개발 초격자 패키지 - Flask 파트
리포지토리
의존성 패키지
강의 완료 이후에 Flask2.0 버전이 출시되었네요. Flask 2를 지원하는 오픈소스를 다운로드 바랍니다.
- python3.8
- flask==1.1.2
- alembic==1.5.6
- Flask-Migrate==2.7.0
- flask-restx==0.2.0
- Flask-SQLAlchemy==2.4.4
- Flask-WTF==0.14.3
- PyMySQL==1.0.2
- pytest==6.2.2
- pytest-watch==4.2.0
Flask 기초: Flask의 주요 기능과 템플릿 엔진을 통한 로그인 환경 구축
기초에서는 어렵지 않은 선에서 Flask의 주된 기능을 살펴보고 학습합니다.
구분 | NO | 대주제 | 소주제 | 소스버전 | 링크 |
---|---|---|---|---|---|
1/A | 1 | 프로젝트 소개 및 준비 | 강의 소개 | link | |
1/A | 2 | 프로젝트 소개 및 준비 | 개발환경 설명 | link | |
1/A | 3 | 프로젝트 소개 및 준비 | 프로젝트 소스 보는 법 | link | |
2/B | 1 | 플라스크 기초 | 플라스크란? | link | |
2/B | 2 | 플라스크 기초 | 플라스크 첫 실행, 디버그 모드 | 1.0.0 | link |
2/B | 3 | 플라스크 기초 | 플라스크 어플리케이션 팩토리 | 1.1.0 | link |
2/B | 4 | 플라스크 기초 | 플라스크 기본 라우터 | 1.2.0 | link |
2/B | 5 | 플라스크 기초 | 플라스크 리퀘스트 후크와 어플리케이션 컨텍스트 | 1.3.0 | link |
2/B | 6 | 플라스크 기초 | 플라스크 메서드 처리와 리퀘스트 컨텍스트 | 1.4.0 | link |
3/C | 1 | 템플릿 엔진 기초 | 플러거블 HTML 레이아웃과 템플릿 렌더링 | 1.5.0~1.5.3 | link |
3/C | 2 | 템플릿 엔진 기초 | 정적파일 추가 및 디버그 환경 캐시제거 | 1.6.0 | link |
4/D | 1 | CSRF 방어 | Flask WTF을 이용한 CSRF 공격 조치 | 1.7.0 | link |
4/D | 2 | CSRF 방어 | Flask WTF으로 로그인/회원가입 폼 레이아웃 작성 | 1.8.0 | link |
5/E | 1 | 플라스크 라우터 확장 | 플라스크 블루프린트를 통한 라우팅 확장 | 1.9.0~1.9.1 | link |
6/F | 1 | 플라스크 메세지 플래싱 | 플라스크 플래싱으로 폼 유효성 검사 결과 노출 | 1.10.0 | link |
7/G | 1 | 로그인 기능 구현 | 세션이란? | link | |
7/G | 2 | 로그인 기능 구현 | 메모리로 로그인 재현 | 1.11.0 | link |
7/G | 3 | 로그인 기능 구현 | werkzeug로 패스워드 암호화 | 1.12.0 | link |
8/H | 1 | 데이터베이스 | 데이터베이스 로컬 개발환경 구축 | link | |
8/H | 2 | 데이터베이스 | RDBMS란? | link | |
8/H | 3 | 데이터베이스 | Flask SQLAlchemy와 Flask Migrate 세팅 | 1.13.0 | link |
8/H | 4 | 데이터베이스 | 데이터베이스 User 모델 생성, DB 마이그레이션 및 업그레이드 | 1.14.0 | link |
8/H | 5 | 데이터베이스 | Flask SQLAlchemy 기초 쿼리 | link | |
9/I | 1 | 리팩토링 | 회원가입 및 로그인 리펙토링, 데이터베이스 적재 처리 | 1.15.0~1.15.1 | link |
9/I | 2 | 리팩토링 | 플라스크 매크로와 폼에 MDL 디자인 적용 | 1.16.0~1.16.1 | link |
10/J | 1 | Restful API | RESTful의 대표적인 특징 훑어보기 | link | |
11/K | 1 | API 문서자동화 | Flask RESTX로 재사용 가능한 네임스페이스형 API 정의 | 1.17.0 | link |
11/K | 2 | API 문서자동화 | 유저 단/복수 조회 API 작성 및 리스폰스 맵핑 | 1.18.0 | link |
11/K | 3 | API 문서자동화 | 유저 추가 API 작성과 리퀘스트 파서 | 1.19.0 | link |
12/L | 1 | DB 마이그레이션 | 유저 모델 필드 추가, 데이터베이스 마이그레이션 | 1.20.0 | link |
13/M | 1 | Flask Configs | 환경별 Flask config 설정 분리 및 정리 | 1.21.0 | link |
14/N | 1 | 유닛 테스트와 TDD | 유닛테스트 그리고 TDD란? | link | |
14/N | 2 | 유닛 테스트와 TDD | pytest fixture를 통한 테스트 환경 구축 | 1.22.0 | link |
14/N | 3 | 유닛 테스트와 TDD | pytest 테스트 파일 분리 관리 | 1.23.0 | link |
15/O | 1 | 마무리 | 정리 | link |
Flask 프로젝트: 기초에서 이어지는 Google Keep 클론코딩
기초에서 만든 기능을 토대로 Google Keep 클론코딩을 진행합니다.
구분 | NO | 대주제 | 소주제 | 소스버전 | 링크 |
---|---|---|---|---|---|
1/~A | 1 | 프런트 기본화면 설명 | 프런트 기본화면 제공 및 설명 - HTML, CSS | 2.0.0 | link |
1/~A | 2 | 프런트 기본화면 설명 | 프런트 기본화면 제공 및 설명 - JS | link | |
2/~B | 1 | 세션 기반 인증 흐름 구현 | API 세션 유효성 검사 전처리기 적용, 메인 페이지 유입조건변경 | 2.1.0 | link |
2/~B | 2 | 세션 기반 인증 흐름 구현 | 테스트 케이스 세션적용과 스콥정의 및 ini 설정 | 2.2.0 | link |
3/~C | 1 | 메모 기본 기능 구현 | 메모 모델생성과 API 연결, DB 마이그레이션 | 2.3.0 | link |
3/~C | 2 | 메모 기본 기능 구현 | 메모 기본 테스트 케이스 작성 | 2.4.0 | link |
3/~C | 3 | 메모 기본 기능 구현 | 메모 복수 조회 API 작성 | 2.5.0 | link |
3/~C | 4 | 메모 기본 기능 구현 | 메모 단수 조회 API 작성 | 2.6.0 | link |
3/~C | 5 | 메모 기본 기능 구현 | 메모 추가 API 작성 | 2.7.0 | link |
3/~C | 6 | 메모 기본 기능 구현 | 메모 수정/삭제 API 작성 | 2.8.0 | link |
3/~C | 7 | 메모 기본 기능 구현 | 메모 추가 API 프런트 반영 | 2.9.0 | link |
3/~C | 8 | 메모 기본 기능 구현 | 메모 조회 API 프런트 반영 | 2.10.0 | link |
3/~C | 9 | 메모 기본 기능 구현 | 메모 단수 조회/수정 API 프런트 반영 | 2.11.0 | link |
4/~D | 1 | ajax CSRF 처리 | ajax호출 시 CSRF 헤더 적용 | 2.12.0 | link |
5/~E | 1 | 메모 기능 업그레이드 - 조회 | 메모 조회 페이지 네이션 적용 | 2.13.0 | link |
5/~E | 2 | 메모 기능 업그레이드 - 조회 | 메모 검색 API 작성 및 적용 | 2.14.0 | link |
6/~F | 1 | 메모 기능 업그레이드 - 이미지 | 메모 이미지 테스트 케이스 작성 | 2.15.0 | link |
6/~F | 2 | 메모 기능 업그레이드 - 이미지 | 메모 이미지 추가 API 작성 및 컬럼 추가, DB 마이그레이션 | 2.16.0 | link |
6/~F | 3 | 메모 기능 업그레이드 - 이미지 | 메모 이미지 변경 API 작성 | 2.17.0 | link |
6/~F | 4 | 메모 기능 업그레이드 - 이미지 | 메모 이미지 삭제 API 작성 | 2.18.0 | link |
6/~F | 5 | 메모 기능 업그레이드 - 이미지 | 메모 이미지 추가/변경/삭제 API 프런트 반영 | 2.19.0 | link |
7/~G | 1 | 메모 기능 업그레이드 - 삭제 | 메모 삭제 플래그 테스트 케이스작성 | 2.20.0 | link |
7/~G | 2 | 메모 기능 업그레이드 - 삭제 | 메모 삭제 상태 반영 및 조회 API 작성 및 반영 | 2.21.0 | link |
7/~G | 3 | 메모 기능 업그레이드 - 삭제 | 메모 삭제/복구 프런트 반영 | 2.22.0 | link |
8/~H | 1 | 라벨 기본 기능 구현 | 라벨 모델생성과 API 연결, DB 마이그레이션 | 2.23.0 | link |
8/~H | 2 | 라벨 기본 기능 구현 | 라벨 기본 테스트 케이스 작성 | 2.24.0 | link |
8/~H | 3 | 라벨 기본 기능 구현 | 라벨 추가 API 작성 | 2.25.0 | link |
8/~H | 4 | 라벨 기본 기능 구현 | 라벨 복수 조회 API 작성 | 2.26.0 | link |
8/~H | 5 | 라벨 기본 기능 구현 | 라벨 삭제 API 작성 | 2.27.0 | link |
8/~H | 6 | 라벨 기본 기능 구현 | 라벨 추가, 조회 및 삭제 기능 프런트 반영 | 2.28.0 | link |
9/~I | 1 | 메모 라벨링 기능 업데이트 | 모델 M:N 관계 테이블 - 메모 라벨 모델 관계맺기, DB 마이그레이션 | 2.29.0 | link |
9/~I | 2 | 메모 라벨링 기능 업데이트 | 메모 라벨링 테스트 케이스 작성 | 2.30.0 | link |
9/~I | 3 | 메모 라벨링 기능 업데이트 | 메모 업데이트 API, 라벨링 기능 추가 | 2.31.0 | link |
9/~I | 4 | 메모 라벨링 기능 업데이트 | 메모 라벨링 기능 프런트 반영 | 2.32.0 | link |
10/~J | 1 | Flask 배포 스택 구성 | Flask 배포 스택 | link | |
11/~K | 1 | 도커라이징 | 도커에 대해서 | link | |
11/~K | 2 | 도커라이징 | Flask, WSGI 도커라이징 | 2.33.0 | link |
11/~K | 3 | 도커라이징 | 도커 컴포즈를 통한 로컬 개발환경 구축 | 2.34.0 | link |
11/~K | 4 | 도커라이징 | 도커 컴포즈에 nginx 추가하기 | 2.35.0 | link |
12/~L | 1 | 배포 | AWS EC2 인스턴스 생성 | link | |
12/~L | 2 | 배포 | RDS MYSQL 인스턴스 생성 및 데이터베이스 생성 | link | |
12/~L | 3 | 배포 | EC2 소스와 데이터베이스 설정 하고 배포하기 | 2.36.0 | link |
13/~M | 1 | 마무리 | 정리 및 고찰 | link |