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

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

자산 앱 프로젝트의 모델링(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 백엔드에서 모델과 스키마를 완전히 분리하는 … 더 읽기