개발 초기 더미 데이터(dummy data) 만드는 법

개발 초기에는 CRUD API를 검증하거나 UI 화면을 테스트하기 위해 더미 데이터(dummy data)가 필요합니다.특히 FastAPI + PostgreSQL + Docker 환경에서는 백엔드와 데이터베이스가 별도로 구동되기 때문에 테스트용 초기 데이터를 자동으로 세팅해주는 스크립트가 있으면 훨씬 효율적입니다.이번 글에서는 다양한 더미 데이터는 생성 방법과 각각의 장단점을 정리했습니다. 🧭 왜 테스트 데이터 초기화가 필요할까? 개발 초기에는 UI나 API 기능 검증을 위해 … 더 읽기

테이블을 꼭 FK(ForeignKey)로 연결하는게 좋을까?

“모든 테이블을 ForeignKey로 연결해야 할까?”저는 자산앱의 데이터베이스 모델링을 하면서 테이블이 늘어나고 관계가 복잡해질수록 이런 질문이 생기기 시작했습니다.특히 FastAPI와 PostgreSQL 환경에서 SQLModel/SQLAlchemy 같은 ORM을 쓰면, 설계 결정이 코드와 런타임 동작에 직접적인 영향을 미치기 때문에 고민이 더 자주 발생하죠.이번 글에서는 실제 예제 코드를 기반으로, FK를 사용하는 이유와 사용하지 않았을 때의 차이점, 그리고 어떤 상황에서 FK를 의도적으로 생략하는 … 더 읽기

FastAPI에서 모델 변경사항을 테이블에 반영하는 방법

FastAPI 프로젝트를 운영하다 보면 데이터베이스 모델을 수정해야 하는 경우가 자주 발생합니다.특히 프로젝트가 커질수록 모델 정의(models.py) 와 실제 테이블 구조(DB Schema) 간의 불일치를 방지하는 것이 중요합니다.이번 글에서는 자산 앱 프로젝트의 모델링(ERD) 구조를 예시로, Alembic 마이그레이션 도구를 사용해 일부 테이블에만 존재하던 created_at, updated_at 필드를 모델에 추가 정의하고 테이블에 반영하는 방법을 정리해보겠습니다. 💡 문제 상황: 모델은 바뀌었는데 테이블은 … 더 읽기

자산 앱 프로젝트의 모델링(ERD) 구조

소개글에서 밝힌 바와 같이 저는 자산을 관리하는 앱을 만들고 있습니다. 이번 글에서는 프로젝트에서 사용된 데이터 모델링(ERD) 구조를 바탕으로, 각 테이블의 구조, 필드 설명, 그리고 FastAPI ORM(SQLModel)이 실제 DB 테이블을 자동으로 생성하는 원리까지 자세히 다룹니다. 목차 ERD 설계 개념 본 프로젝트에서는 Python의 SQLModel을 활용하여 데이터 모델링을 구현했습니다.SQLModel은 SQLAlchemy와 Pydantic을 결합한 ORM(Object Relational Mapping) 프레임워크로,데이터 검증과 DB … 더 읽기

FastAPI에서 모델(Model)과 스키마(Schema)의 분리

유지보수성 향상, 데이터 검증 및 보안강화를 위해 FastAPI와 SQLModel을 함께 사용하면 데이터베이스 테이블 정의(모델)와 API 요청/응답 검증(스키마)을 분리할 수 있습니다.이번 포스팅에서는 FastAPI + SQLModel + PostgreSQL(Docker) 환경을 기반으로, 스키마(Schema)에서 받은 데이터를 안전하게 모델(Model)로 변환하여 저장하는 방법을 구체적인 코드 예시와 함께 살펴보겠습니다. 🧭 개발 환경 📂 프로젝트 구조 위 구조는 FastAPI 백엔드에서 모델과 스키마를 완전히 분리하는 … 더 읽기

Next.js + FastAPI로 Google 로그인 구현하기 (JWT 검증 포함)

이번 글에서는 Google Auth를 사용해 사용자 로그인 기능을 구현하고, 로그인 후 발급받은 AccessToken을 백엔드(FastAPI)에서 검증 및 사용자 인증의 흐름을 확인할 수 있습니다.소셜 로그인을 적용하면 사용자는 별도의 회원가입 없이 Google 계정만으로 간편하게 로그인할 수 있습니다. 또한 NextAuth를 이용하면 보안성과 확장성을 모두 확보할 수 있습니다. 📚 목차 📂 프로젝트 구조 ☁️ Google Cloud Console 설정 Google OAuth … 더 읽기

📁효율적인 개발을 위한 디렉토리 설계 가이드(FastAPI+Next.js)

이번 포스팅에서는 저의 로컬 환경 기준으로 구성한 프로젝트 구조를 바탕으로 각 디렉토리와 파일의 역할을 상세히 설명하겠습니다. 프로젝트 디렉토리 구조에는 정확한 정답은 없지만 올바른 설계 원칙을 이해하면 개발에 큰 도움이 됩니다. 📑 목차 🛠 프로젝트 디렉토리 구조를 나누는 이유 대규모 애플리케이션일수록 디렉토리 구조를 체계적으로 나누는 것이 필수입니다.주요 이유는 다음과 같습니다. 즉, 디렉토리 구조는 단순히 코드 정리를 … 더 읽기

🚀 FastAPI API 테스트 (pytest + pytest-cov)

FastAPI는 Python 기반의 비동기(Asynchronous) 웹 프레임워크로, 빠른 성능과 간결한 코드 구조 덕분에 최근 많은 개발자들이 선택하고 있습니다.하지만 프로젝트가 커지고 API가 복잡해질수록 코드 변경 시 버그나 예외 상황이 발생할 가능성도 높아집니다. 이러한 문제를 예방하기 위해서는 FastAPI 테스트 코드 작성이 필수적입니다.테스트 코드는 단순한 검증 단계를 넘어, 서비스 안정성과 유지보수 효율을 높이는 핵심 요소입니다.특히 pytest를 활용하면 API 동작을 … 더 읽기

FastAPI CRUD API 구현 및 Swagger UI를 활용한 테스트

웹 애플리케이션에서 CRUD(Create, Read, Update, Delete) 기능은 백엔드 개발의 핵심입니다.이번 글에서는 FastAPI와 SQLModel을 활용해 자산(Asset) 모델을 예시로 CRUD API를 만들고, PostgreSQL 데이터베이스와 연동하며, Swagger UI에서 API를 테스트하는 방법까지 단계별로 안내합니다. 🧩 참고이번 글에서는 FastAPI를 활용한 CRUD API 구현에 초점을 맞추었기 때문에, 데이터베이스 테이블 모델링에 대한 내용은 다루지 않았습니다.모델 설계와 관계 설정 등은 추후 별도의 포스팅에서 … 더 읽기

Next.js, FastAPI, PostgreSQL(DB) 서버 구동 및 종료 방법

📘 개요 풀스택 개발 환경에서 프론트엔드(Next.js), 백엔드(FastAPI), 데이터베이스(PostgreSQL)를 각각 구동/종료하고 관리하는 것이 필요합니다.이번 포스팅에서는 Docker Compose를 사용한 DB(PostgreSQL) 서버, 백엔드(FastAPI) 서버, 프론트엔드(Next.js) 서버를 구동하고 종료하는 방법과 추가로 VS Code를 이용해 프론트엔드와 백엔드 서버를 동시에 실행하는 방법까지 알아보겠습니다. 🧩 참고: – 개발 초기 단계에서는 코드 수정 후 즉각적인 반영과 디버깅 효율을 높이기 위해, Next.js와 FastAPI를 로컬 … 더 읽기