API 타입 추론 개요
자동 타입 생성
백엔드 → 프론트엔드수동 작업 불필요
완전한 추론
파라미터부터 응답까지모든 타입 보장
실시간 동기화
API 변경 시자동 업데이트
IDE 지원
자동 완성타입 힌트
타입 추론이란?
문제: 수동 타입 정의의 어려움
전통적인 개발에서는 백엔드와 프론트엔드의 타입을 각각 수동으로 정의해야 합니다.- 중복 작업: 백엔드와 프론트엔드에서 같은 타입 두 번 정의
- 동기화 누락: 백엔드 변경 시 프론트엔드 타입 업데이트 누락
- 런타임 에러: 타입 불일치를 런타임에만 발견
- 유지보수 어려움: 타입이 많아질수록 관리 복잡도 증가
해결: 자동 타입 추론
Sonamu는 백엔드 타입을 자동으로 추론하여 프론트엔드에 전달합니다.- 백엔드 타입이 프론트엔드에 자동으로 복사됨
- API 변경 시 자동으로 동기화됨
- 단일 진실 공급원 (백엔드가 유일한 타입 소스)
타입 추론 과정
1단계: 백엔드 API 정의
TypeScript 타입을 포함하여 API를 정의합니다.- 반환 타입을 명시적으로 선언
- 중첩 객체, 유니온 타입, 리터럴 타입 모두 지원
- TypeScript의 모든 타입 기능 활용 가능
2단계: AST 파싱
Sonamu는 TypeScript 컴파일러 API를 사용하여 코드를 분석합니다.- TypeScript 코드를 트리 구조로 표현
- 타입 정보를 프로그래밍 방식으로 추출 가능
- 100% 정확한 타입 정보 획득
3단계: Service 타입 생성
추출한 타입을 Service 코드에 삽입합니다.- 유니온 타입 (
"admin" | "user") - 중첩 객체
- 배열 타입
- Date, null, undefined 등 모든 TypeScript 타입
4단계: TanStack Query Hook 생성
React Hook에도 타입이 정확히 전달됩니다.고급 타입 추론
제네릭 타입
제네릭을 사용하는 API도 정확히 추론됩니다.Subset 시스템
Subset 타입도 자동으로 생성됩니다.UserSubsetMapping[T]로 Subset에 따른 정확한 타입 반환- TypeScript의 조건부 타입 활용
복잡한 중첩 구조
깊게 중첩된 타입도 정확히 추론됩니다.실전 활용
React 컴포넌트
타입이 자동으로 추론되어 IDE 지원을 받습니다.data.입력 시user,stats자동 제안data.user.입력 시 모든 필드 자동 제안- 잘못된 필드 접근 시 즉시 에러 표시
