| 기간 | 학습·활동 내용 | 결과물 / 체크포인트 |
|---|---|---|
| 3월 1주 ~ 4월 중간고사 전 | - 파이썬 기초 문법 (변수·자료형·연산자·조건문·반복문·기본 함수) |
✅ 주요 예제 코드 완성 ✅ 기초 문제 풀이 20선 |
| 4월 중간고사 직후 (4월 3주) | - Git & GitHub 기본 사용법 학습 (git init, add, commit, push, pull, clone 등) |
✅ 개인 테스트 리포지토리 생성 ✅ 첫 커밋 & 원격 푸시 |
| 4월 4주 ~ 5월 1주 | - GitHub 협업 흐름 실습 (레포지토리 조직, 브랜치 전략, PR·Merge) |
✅ 팀 리포지토리 개설 ✅ feature 브랜치 → PR → Merge 경험 |
| 5월 2주 | - 백엔드 아키텍처·REST 흐름 이론 강의 수강 | ✅ REST 설계 원칙 요약 노트 ✅ HTTP 메서드·상태코드 정리 |
| 5월 2주 말 ~ 5월 3주 초 | - 데이터베이스 스키마 설계 - ERD 작성 (MySQL Workbench / draw.io) |
✅ 테이블 정의서(DDL 초안) ✅ ERD 다이어그램 |
| 5월 3주 | - FastAPI 프레임워크 기초 개념 학습 (라우팅, 의존성 주입, Pydantic 모델) |
✅ FastAPI 스캐폴딩 완료 ✅ Hello World 서버 구동 |
| 5월 4주 ~ 6월 말 | - 블로그 프로젝트 본격 개발 시작 • 기본 Auth: 회원가입·로그인 • 게시물 CRUD API • 댓글 기능 • GitHub Flow 기반 협업 지속 |
✅ /users, /auth 엔드포인트 완성✅ /posts, /comments 엔드포인트 완성✅ README & API 명세 초안 |
| 쉽게 말하면… | 무슨 뜻인가요? |
|---|---|
| 1. 빠르다 | 주문이 들어오면 음식을 빨리 내주는 패스트푸드점처럼, FastAPI는 요청이 오면 결과를 매우 빨리 돌려줍니다. |
| 2. 자동 설명서 | 요리사가 레시피를 직접 쓰지 않아도 기계가 레시피를 만들어 주듯, FastAPI는 **API 안내서(사용 설명서)**를 자동으로 만들어 줍니다. 개발자뿐 아니라 기획자·디자이너도 쉽게 확인할 수 있어요. |
| 3. 오류를 미리 잡아준다 | 서류 양식에 틀린 곳이 있으면 제출 전에 빨간 줄이 뜨듯, FastAPI는 잘못된 데이터가 들어오면 자동으로 검사하고 알려줍니다. 실수로 인한 버그를 줄여 줍니다. |
| 4. 가볍고 단순하다 | 복잡한 종합병원 대신 동네 병원처럼 필요한 기능만 담아 가볍습니다. 배우기도, 유지하기도 쉬워요. |
| 5. 파이썬이라 친숙하다 | 이미 많은 사람들이 쓰는 파이썬 언어 위에서 돌아갑니다. 파이썬을 조금만 알아도 금방 익힐 수 있어요. |
정리하면 **“빠르고, 자동으로 문서가 생기고, 실수를 줄여 주며, 배우기 쉬운 웹 서버 도구”**라서 FastAPI를 선택했습니다.
백엔드는 클라이언트(브라우저·모바일 앱 등)가 보낸 요청을 처리해 적절한 데이터를 만들어서 다시 응답해 주는 서버 측 영역입니다.
| 역할 | 설명 |
|---|---|
| 데이터 관리 | 데이터베이스에 정보 저장·조회·수정·삭제(CRUD) |
| 비즈니스 로직 | 서비스 규칙·계산 수행 예) 조회수 +1, 재고 부족 시 주문 거절 |
| 요청 ↔ 응답 | 클라이언트의 HTTP 요청 수신 → 결과를 JSON·HTML 등으로 반환 |
| 보안·검증 | 입력값 검증, 접근 권한 확인, 예외 처리 |
| 인프라 운영 | 서버 실행·모니터링·로그 관리 → 24시간 안정적 서비스 유지 |
한마디로
“사용자가 필요로 하는 데이터를 안전하고 정확하게 준비해 돌려주는 것”
Flask + FastAPI 스터디 산출물
게시글 CRUD, 조회수 증가, 상태 관리 기능이 포함된 블로그 서비스입니다.
https://github.com/chuawj/fast_api/tree/seungjun?tab=readme-ov-file
## ✨ 주요 기능
| 구분 | 엔드포인트 | 설명 |
|-----|------------|------|
| 게시글 작성 | `POST /posts` | 새 게시글 등록 |
| 게시글 목록 | `GET /posts` | 전체 게시글 조회 |
| 게시글 상세 | `GET /posts/<id>` | 단일 게시글 및 조회수 +1 |
| 게시글 수정 | `PUT /posts/<id>` | 내용·상태 변경 |
| 게시글 삭제 | `DELETE /posts/<id>` | 게시글 제거 |
| 게시글 상태 | — | `공개`, `비공개`, `임시` 관리 가능 |
pip install -r requirements.txt
python run.py
기본 접속 주소: http://127.0.0.1:5000
# 원격 저장소 확인
git remote -v
# 브랜치 최신화
git fetch
git checkout master
git pull origin master
# 개인 브랜치 생성·이동
git checkout -b <username>
# 작업 후 커밋 & 푸시
git status
git add .
git commit -m "feat: <설명>"
git push origin <username>
충돌 해결
git merge master 후 충돌 파일 확인
<<<<<<<, =======, >>>>>>> 구간 정리
git add <파일> → git commit -m "merge: 충돌 해결"
| 이름 | 느낀 점 | 아쉬운 점 |
|---|---|---|
| 박이솔 | 혼자였다면 하지 않았을 공부를 하게 되어 만족 | 시험·축제로 흐름이 끊김 |
| 최현준 | 새로운 학습·도전을 경험 | 전원 참여가 부족해 결과물 아쉬움 |
| 송승준 | 다양한 경험·학습이 뜻깊음 | 바쁜 일정으로 완성도 부족 |
| 김혜연 | 새롭게 알게 된 부분이 많음 | 적극적인 의견 교류 부족 |
| 황원준 | 새로운 언어 학습 기회 | 일정 겹침으로 완성도 낮음 |
| 홍주희 | 공부 방향을 잡는 데 도움 | 참여율 낮아 아쉬움 |
