2025-10-28
1일 1아티클
요즘IT
FastAPI
트러블슈팅
- (DB) 프론트엔드에서 API 두 번 호출 시 SQLAIchemy 예외 발생
- FastAPI 들어오는 HTTP 요청이 고유 작업 단위로 처리되고, 요청마다 새로운 DB 연결 생성하도록 구현
- 원인 : 파이썬 클래스 변수와 인스턴스 변수의 차이를 이해하지 못한 것
- 패키지 구조의 함정
- ORM 클래스 안에 데이터 조회 코드를 넣으려고 시도 → 참조 관계들이 얽혀 상호 참조 문제 발생
- DB를 쿼리하려는 코드를 묶어 SQLAIchemy 쿼리 빌더형태로 변환하는 라이브러리 제작
- 클래스 생성의 장단점
- 가급적 모든 코드를 클래스로 묶은 구조로 제작
- 비즈니스 로직 성격에 따라 하나의 클래스에 모을 수 있음
- 클래스 생성자 DB 세션 및 사용자 인증 상태 전달하여 State 관리 가능
- but 일반적으로 데이터 객체 제외한 모든 객체는 함수로 구성
- 뒤늦은 테스트 코드
- 초기에 Postman 의존한 작업
- 고통의 수레바퀴 과정에서 소모되는 시간이 매우 많음
- TDD 방식 도입,
Tox와Pytext도입
PHP+CodeigniterHTML안에PHP스크립트를 직접 끼워넣는 구조- 서버가
200 Response응답 미반환 시, 단순try-catch로 해결하기 어려움
- python의 라이브러리 활용하기 (웬만한건 다 있다)
- Controller DTO → Service DTO → ORM Model 변환 과정에서 유효성 검사, 데이터 복사 코드 급증
Pydantic라이브러리 활용 :model_validator(데이터 변환),@field_validator(값 체크),@computed_field(간단한 연산 묶기)
오늘 배운 것
- AI
- 가속기
- 양자화