출시 — 스키마 지원, 정리된 내부 및 앞으로의 계획
Source: Dev.to
RunAPI가 크게 업그레이드되었습니다.
최신 버전에서는 스키마 지원을 도입하고, 내부 아키텍처를 개선했으며, 더 나은 테스트와 데이터베이스 확장성을 위한 기반을 마련했습니다 — 여전히 RunAPI는 가볍고 개발자 친화적입니다.
Python으로 API를 만들면서 파일 기반 라우팅 + FastAPI를 선호한다면 이번 릴리스를 주목하세요.
✨ 이번 릴리스의 새로운 기능
✅ 스키마 지원 (대형 업데이트)
RunAPI가 이제 스키마를 지원하므로 다음이 쉬워집니다:
- 요청 및 응답 모델 정의
- 입력을 일관되게 검증
- API가 성장함에 따라 구조를 유지
실제 운영 환경의 요구에 한 걸음 더 다가가면서도 여전히 간단하게 사용할 수 있습니다.
🧹 코드 품질 개선
내부 개선 사항이 다수 병합되어 정리가 이루어졌습니다:
- Python 3.12 호환성 수정 (
datetime.utcnow()→datetime.now(timezone.utc)) - Pydantic이 아닌 모델에 대한 안전한 처리
- 더 이상 사용되지 않는 Pydantic v1 패턴 제거
- 모듈 로딩 안전성 검사 강화
- 라우트 이름 생성 로직 정리
이 변경은 공개 API에 영향을 주지 않으며 RunAPI를 보다 견고하고 미래 지향적으로 만들어 줍니다.
🗄️ 스토리지: In‑Memory + SQLAlchemy (선택 사항)
RunAPI는 현재 두 가지 스토리지 백엔드를 지원합니다:
- InMemory 스토리지 (기본값, 의존성 없음)
- SQLAlchemy 스토리지 (SQLAlchemy가 설치된 경우에만 사용)
SQLAlchemy가 없을 경우 RunAPI는 자동으로 인‑메모리 스토리지로 전환되어 충돌이나 예기치 않은 동작이 발생하지 않습니다.
이를 통해 RunAPI는:
- 기본적으로 가볍게 유지
- 보다 진지한 사용 사례에도 유연하게 대응
🧠 다음에 개선할 내용
스키마 지원이 구현된 만큼, 다음은 집중할 영역입니다:
🔍 테스트 커버리지 확대
- 스키마 관련 테스트 추가
- 라우팅 및 인증에 대한 엣지 케이스 테스트
- 기능이 늘어날수록 신뢰성 강화
🧩 명확한 스토리지 추상화
InMemory와 SQLAlchemy 백엔드가 이미 존재하지만, 우리는 다음을 원합니다:
- 명확한 공통 인터페이스
- 더 깔끔한 백엔드 선택 로직
- 향후 확장(예: Redis 등) 용이성
📚 문서 및 예제 개선
- 스키마 사용 가이드
- 스토리지 동작에 대한 명확한 설명
- 실제 CRUD 예제 제공
🤝 기여하고 싶으신가요?
RunAPI는 아직 발전 중이며 기여를 적극 환영합니다.
시작하기 좋은 분야:
-
테스트 🧪
-
문서 📖
-
스토리지 추상화 🗄️
-
예제 및 템플릿 🧱
-
GitHub repo:
-
Issues:
🏁 마무리 생각
이번 릴리스는 화려한 기능보다는 탄탄한 기반을 다지는 데 초점을 맞췄습니다.
- 스키마는 더 안전한 API를 가능하게 합니다.
- 정리된 내부 구조는 개발 속도를 높입니다.
로드맵은 RunAPI를 부풀리지 않으면서도 유연하게 유지하도록 설계되었습니다. 직접 사용해 보시고 피드백을 주시면 언제든 환영합니다 🙌
즐거운 개발 되세요! 🚀