FastAPI 초보 개발자의 성장통: 삽질을 통해 배우는 백엔드 개발
by DD
7개월 전
조회수 12
FastAPI를 처음 사용하며 SQLAlchemy 예외, 클래스/인스턴스 변수 차이 등 기초적인 문제에 직면함
ORM 사용의 불편함을 느껴 Service 레이어에서 직접 DB 쿼리를 수행하는 방식으로 변경
Tox를 활용한 테스트 코드 도입으로 코드 품질을 개선하고, 테스트 커버리지 86% 달성
FastAPI와 SQLAlchemy 연동 시 흔한 문제
FastAPI와 SQLAlchemy를 함께 사용할 때, DB 세션 관리가 중요하다. 구체적으로, HTTP 요청마다 새로운 DB 연결을 생성하도록 설정해야 한다. 따라서 클래스 변수/인스턴스 변수의 차이를 정확히 이해하고, 세션 누수를 방지해야 한다.
ORM 사용의 함정과 Service 레이어 설계
ORM은 초기 개발 속도를 높이지만, 복잡한 쿼리에서는 N+1 쿼리 문제를 야기한다. 따라서 Service 레이어에서 직접 DB 쿼리를 수행하는 방식을 고려해야 한다. 반면, 코드 중복과 유지보수성 저하라는 새로운 문제에 직면할 수 있다.
테스트 코드 도입의 중요성
테스트 코드는 코드 품질을 향상시키고, 리팩토링의 안전성을 보장한다. 구체적으로, Tox를 사용하여 다양한 환경에서 테스트를 수행할 수 있다. 결과적으로, 테스트 커버리지를 높여 버그 발생 가능성을 줄일 수 있다.