
17일차 Fast API 입문, 메뉴입력,삭제,조회 기능실습
https://velog.io/@dos123789/Day17-Fast-api
18일차 Fast api -JINJA,React 사용해서 백엔드 프론트엔드 나눠서 코드 작성해봄
https://velog.io/@dos123789/Day18-Fast-api-JINJAReact%EC%99%80-FastAPI-%EC%97%B0%EB%8F%99%ED%95%B4%EC%84%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0
19일차 ORM문법을 배움
https://velog.io/@dos123789/Day
20일차 CRUD 설계 하는법을 배움
https://velog.io/@dos123789/Day20-My-SQL-FastAPI-React-%EA%B9%8C%EC%A7%80-%EC%82%AC%EC%9A%A9
21일차 DataBase 실습
https://velog.io/@dos123789/Day-4tqw523q
Day-17 메뉴 입력 기능을 구현하고 스웨거에서 작동 해보는 과제
https://velog.io/@dos123789/Day17-Fast-api
Day-18 메뉴 수정 삭제 입력 과제
https://velog.io/@dos123789/%ED%95%A8%EC%88%98%ED%8C%8C%EC%9D%BC%EC%9E%85%EC%B6%9C%EB%A0%A5
Day-19 메뉴 과제
https://velog.io/@dos123789/Day
Day-20 CRUD 설계 과제
https://velog.io/@dos123789/Day20-My-SQL-FastAPI-React-%EA%B9%8C%EC%A7%80-%EC%82%AC%EC%9A%A9
이번 주는 강의 전체 과정에서 가장 밀도 있게 배운 한 주였다.
FastAPI로 시작해서 ORM, React 연동, CRUD 설계, 그리고 실제 DB 실습까지
실무에서 어떻게 하는지 프로젝트 흐름을 그대로 따라가면서 학습할 수 있었다.
하나씩 기능만 배우는 것이 아니라
백엔드–프론트–데이터베이스가 어떻게 연결되는지를
직접 만들어보며 경험한 게 가장 큰 수확이었다.
17일차 — FastAPI 입문 & 메뉴 입력/삭제/조회 구현
프레임워크라는 걸 처음 제대로 다뤄 본 날이었다.
FastAPI가 생각보다 구조가 단순하고 직관적이라
경로 설정하고, 함수를 만들고, JSON으로 응답하는 기본 구조는 이해가 쉬웠다.
하지만 직접 메뉴를 입력/삭제/조회 기능으로 만들어 보니
기초 문법보다는 API 흐름 자체를 이해하는 것이 더 어렵다는 걸 깨달았다.
요청이 어떻게 들어오는지
서버는 어떤 형식으로 데이터를 반환해야 하는지
URL 경로가 어떤 의미인지
이런 기본 철학을 익히는 데 도움이 됨.
특히 Path Parameter, Query Parameter, GET/POST/DELETE 같은
HTTP 메서드 개념이 머릿속에 많이 정리된 하루였다.
18일차 — Jinja + React로 프론트와 백엔드 분리
이날은 개인적으로 꽤 충격(?)을 받은 날이었다.
FastAPI만 쓰던 환경에서 갑자기 React라는 프론트엔드 세계가 열리면서
백엔드와 프론트가 서로 어떻게 통신하는지 직접 경험했다.
React는 데이터를 화면에 보여주는 역할
FastAPI는 데이터를 처리하는 역할
둘 사이는 Axios로 요청/응답을 주고받음
이 구조를 실제로 코드로 구현해보니까
'아 웹서비스가 이렇게 돌아가는구나' 하고 이해가 확실히 됐다.
Jinja 템플릿도 배웠는데
React를 쓰는 방식과 비교되면서
템플릿 기반 렌더링 vs SPA 방식의 차이도 자연스럽게 느꼈다.
19일차 — ORM 기본 문법 학습
SQLAlchemy ORM 문법을 익히는 과정은 쉽지 않았다.
딕셔너리나 리스트처럼 바로 눈에 보이는 구조가 아니라
클래스로 테이블을 표현하고
객체가 곧 데이터가 되는 방식이라서 처음엔 헷갈렸다.
하지만 ORM을 쓰는 이유를 듣고 나니 어느 정도 이해가 됐다.
SQL 문을 직접 작성하지 않아도 됨
테이블이 코드처럼 보이기 때문에 유지보수가 쉬움
대규모 프로젝트에서 특히 강력함
“ORM은 결국 SQL을 자동으로 생성하는 도구”라는 개념이
머릿속에 자리 잡기 시작한 날이었다.
20일차 — CRUD 설계 방법 학습
개발을 배울수록 느끼는 건데
코드는 치는 것보다 설계가 더 어렵다.
어떤 URL 구조를 가져갈지
어떤 HTTP 메서드를 사용해야 할지
어떤 데이터가 request에 담겨야 하는지
응답은 어느 형태로 줄지
이걸 미리 설계해야 코드가 길어져도 로직이 안 꼬인다.
특히 다음 구조가 머리에 확실히 들어왔다:
| 기능 | Method | URL |
|---|---|---|
| 전체 조회 | GET | /users |
| 단일 조회 | GET | /users/:id |
| 등록 | POST | /users |
| 수정 | PUT | /users/:id |
| 삭제 | DELETE | /users/:id |
이건 앞으로 어떤 프로젝트를 하든 계속 반복해서 쓰이는 구조다.
이번 주에서 배운 것 중 실무와 가장 가까운 내용이었다.
21일차 — 데이터베이스 실습 & DB 내부 동작 이해
단순히 SELECT, INSERT하는 실습이 아니라
DB 내부 구조를 상세하게 들어가는 수업이었기 때문이다.
특히 다음 내용이 매우 도움이 됐다:
인덱스가 왜 빨라지는가
단순히 정렬되어 있어서 빠르다 가 아니라,
인덱스 파일 자체가 작아서 메모리에 바로 로드되기 때문이라는 설명이 명확했다.
COMMIT / ROLLBACK의 의미
DB가 메모리 버퍼에서 수정되는 이유,
Undo Segment가 존재하는 이유,
왜 COMMIT 이후에는 ROLLBACK이 불가능한지까지
그동안 단어로만 알고 있던 개념들이 연결되었다.
동시성 제어(은행 계좌 예시)
레코드를 잠궈야 하는 이유가 실전 사례로 와닿으면서
“DBMS가 왜 필요한가”를 확실히 이해했다.
아직 코드를 보면 막막한 순간이 많다.
하지만 이번 주는 확실히 “전체 그림”이 보이기 시작했다.
아, 이런 흐름으로 만들면 되겠구나 하는 감각이 조금씩 생겨나는 느낌이다.
앞으로도 천천히, 하지만 꾸준히 나아간다면
지금보다 훨씬 성장한 모습이 될 것이라고 생각한다.
다음주에는 React 상태 관리 조금 더 연습 SQL 문법 확실히 다지고 내가 하고싶은 기능으로
작은 CRUD 프로젝트 1개 직접 만들어보기를 해서 부족한 부분을 보완할 예정이다.
앞으로도 천천히, 하지만 꾸준히 나아간다면
지금보다 훨씬 성장한 모습이 될 것이라고 생각한다.
본 후기는 [카카오엔터프라이즈x스나이퍼팩토리] 카카오클라우드로 배우는 AIaaS 마스터 클래스 3기(B-log) 리뷰로 작성 되었습니다.