전체 글 350

패키지

1. 패키지란?패키지(Package)는 여러 개의 모듈을 폴더로 묶어서 관리하는 것입니다. 모듈 = 파이썬 코드가 들어 있는 .py 파일 하나패키지 = 여러 모듈을 모아 놓은 폴더 day4/│├── package_test.py│└── package1/ │ ├── __init__.py ├── basic.py └── circle.py __init__.py 파일에는 아무 내용 없어도 됩니다. package1/basic.py# 두수 더하기 함수def add(a,b): return a + b# 두수 빼기 함수def sub(a,b): return a - b # package_test.py 에서 테스트하기 package1/ circle.py# PI 변수 만들어서 3.14 할당PI = 3.14..

PHYTHON 2026.08.08

git 설치

git 홈페이지로 이동 Git은 파일의 변경 이력을 관리하는 버전 관리 시스템(Version Control System, VCS) 입니다.쉽게 말하면 "프로젝트의 모든 수정 내역을 기록하는 타임머신" 이라고 생각하면 됩니다. Git과 GitHub의 차이많은 초보자가 헷갈리는 부분입니다.Git내 컴퓨터에서 버전을 관리하는 프로그램인터넷 없이도 사용 가능예)내 PC프로젝트├── commit1├── commit2└── commit3GitHubGit으로 관리하는 프로젝트를 인터넷에 저장하는 서비스입니다.예)내 컴퓨터 │ │ push ▼GitHub 반대로 다른 사람이 올린 프로젝트를GitHub │ │ clone ▼내 컴퓨터 로 가져올 수도 있습니다.즉,Git..

카테고리 없음 2026.07.07

FastAPI 실무과정8. Repository 패턴과 메모리 데이터 저장소 구현하기 (MySQL 연동 준비)

Repository Pattern이 무엇인지 이해하기왜 실무에서 Repository를 사용하는지 알아보기메모리(List)를 Repository 클래스로 분리하기Router가 Repository만 호출하도록 수정하기다음 강의에서 MySQL로 쉽게 교체할 수 있는 구조 만들기지금까지 프로젝트 구조지금까지 프로젝트 구조는 다음과 같습니다.fastapi-project/│├── main.py│├── routers/│ student.py│└── schemas/ student.py 현재는 student.py 안에서API 처리학생 데이터 저장CRUD 기능모든 작업을 한 파일에서 처리하고 있습니다.예를 들어 학생을 저장할 때도 Router가 직접 리스트를 수정했습니다. students = []@rou..

FastAPI 실무과정 7. Service Layer(서비스 계층) 만들기 - Router와 비즈니스 로직 분리하기

지난 강의에서는 Pydantic(Schema)를 이용하여 요청(Request)과 응답(Response)을 분리하는 방법을 배웠습니다.프로젝트 구조는 아래와 같았습니다.fastapi-study│├── routers│ └── student.py│├── schemas│ └── student.py│└── main.py 하지만 아직도 한 가지 문제가 있습니다.현재 routers/student.py에서 API 요청 처리와 실제 업무 로직(비즈니스 로직)을 모두 담당하고 있습니다.실무에서는 이러한 구조를 사용하지 않습니다.이번 시간에는 Service Layer(서비스 계층)를 만들어 Router는 요청만 처리하고, 실제 로직은 Service에서 처리하는 구조를 만들어 보겠습니다. Service La..

AI 백엔드 2026.06.30

FastAPI 실무과정 6. Pydantic 실무 구조로 분리하기 (Schemas)

Pydantic는 Python에서 데이터 검증(Data Validation)과 데이터 모델링을 위한 라이브러리입니다. 특히 FastAPI의 핵심 라이브러리로 사용되며, API 요청(Request)과 응답(Response)의 데이터를 자동으로 검증합니다. Pydantic 장단점 장점단점자동 데이터 검증검증 과정으로 약간의 성능 오버헤드타입 자동 변환학습할 기능이 있음코드가 매우 간결엄격한 타입 검사상세한 오류 메시지별도 라이브러리 설치 필요FastAPI와 완벽한 연동v1과 v2 문법 차이 존재JSON 변환이 쉬움 중첩 객체 검증 가능 실습 1. 프로젝트 열기VS Code 실행↓Open Folder↓fastapi-study 2. 가상환경 실행터미널venv\Scripts\activate 앞에(venv) 가..

AI 백엔드 2026.06.30

FastAPI 실무과정5. 실무 프로젝트 구조(APIRouter)

API를 파일별로 분리하는 것을 배우겠습니다. 1단계. 서버 종료터미널에서Ctrl + C 2단계. 프로젝트 확인현재fastapi-study│├── venv└── main.py __pycache__가 있는데요?__pycache__는 Python이 실행 속도를 빠르게 하기 위해 자동으로 만드는 폴더입니다.쉽게 말하면, "Python의 캐시(임시 저장소)"입니다. 왜 생길까?예를 들어 main.py가 있다고 해보겠습니다.main.py 처음 실행하면 Python은 python main.py 를 읽어서 실행합니다.이때 Python은 "다음에도 빨리 실행하려면 미리 번역해 두자!"라고 생각해서__pycache__ └── main.cpython-313.pyc 와 같은 파일을 만듭니다. __pycache__는..

AI 백엔드 2026.06.29

FastAPI 실무과정4. Path Parameter와 Query Parameter

쇼핑몰, 게시판, 검색 서비스, RAG API 등 거의 모든 웹 서비스에서 사용하는 핵심 기술입니다.핵심 차이를 정리하면:Path Parameter (/students/101)URL 경로 자체에 박혀있는 값이에요"어떤 자원을 가리키는지" 정할 때 써요 (101번 학생을 보고 싶다)보통 없으면 의미가 안 통해요 — /students/만 있으면 누구 정보인지 알 수 없죠Query Parameter (?grade=3&active=true)? 뒤에 key=value 형태로 붙는 값이에요검색, 필터링, 옵션 같은 "선택적인" 조건을 줄 때 써요없어도 기본 동작은 가능해요 (그냥 전체 학생 다 보여주거나)프로젝트 실행① VS Code 실행프로젝트 폴더fastapi-study 열기② 터미널 실행Terminal↓New..

AI 백엔드 2026.06.29

FastAPI 실무과정3. POST API

오늘은 아래와 같은 흐름을 이해해보도록 하겠습니다.현재 프로젝트 구조지난 시간과 같습니다.fastapi-study│├── venv└── main.py서버 실행터미널venv\Scripts\activate 그 다음uvicorn main:app --reload POST란?GET은 데이터를 가져오는 것POST는 데이터를 서버에 보내는 것입니다. 예를 들면기능GETPOST회원 목록 보기✅ 학생 조회✅ 회원가입 ✅로그인 ✅게시글 작성 ✅AI에게 질문 ✅ 첫 번째 POST 만들기기존 main.py 아래에 추가합니다.@app.post("/hello")def hello(): return { "message":"POST 성공" }실행Swaggerhttp://127.0.0.1:8000/docs 그런데..

AI 백엔드 2026.06.29

FastAPI 실무과정2. GET API 만들기

오늘 목표아래와 같은 API를 직접 만들어 봅니다.브라우저↓http://127.0.0.1:8000↓FastAPI↓{ "message":"안녕하세요."} 그리고http://127.0.0.1:8000/student 에 접속하면 학생 정보를 반환하도록 만들어 보겠습니다. VS Code 실행열어야 하는 폴더fastapi-study가상환경 활성화VS Code 터미널venv\Scripts\activate 성공하면(venv) 가 앞에 붙습니다. 서버 실행 uvicorn main:app --reload main.py 열기 GET이란?웹에서 가장 많이 사용하는 요청입니다.예를 들어네이버 뉴스 보기↓GET 유튜브 영상 보기↓GET 학생 목록 조회↓GET 즉, 데이터를 가져오는 요청입니다. 첫 번째 API @app.g..

AI 백엔드 2026.06.29