- 왼쪽 칸에 변환할 JSON을 붙여넣습니다(API 응답, 설정 파일 등).
- 오른쪽 위 탭에서 TypeScript · Python · Go 중 원하는 언어를 고릅니다.
- 변환된 타입 코드를 복사해 프로젝트에 붙여넣습니다.
API 응답이나 설정 파일을 코드에서 다룰 때, 미리 타입(TypeScript interface, Python dataclass, Go struct)을 정의해 두면 데이터의 모양이 코드에 그대로 드러납니다. 손으로 받아 적던 작업을 자동으로 끝내고, 오타나 빠진 필드를 편집기가 잡아 주게 됩니다.
- 자동 완성: 객체의 어떤 키가 있는지 편집기가 알려 줘 점(.)만 찍어도 필드가 떠오릅니다.
- 오타 방지: 정의에 없는 키를 쓰거나 타입이 안 맞으면 컴파일·검사 단계에서 바로 걸러집니다.
- 문서 역할: 타입 정의 자체가 "이 데이터는 이렇게 생겼다"는 살아 있는 설명서가 됩니다.
변환 결과를 다듬는 요령은 JSON에서 타입 만들기 가이드에 정리해 두었습니다.
- 실제 값이 든 예시로: 모든 필드에 대표 값이 채워진 JSON으로 변환하면 추론 정확도가 높아집니다. null이나 빈 배열은 타입을 알 수 없어 느슨하게 처리됩니다.
- 이름은 키에서: 중첩 객체의 타입 이름은 키 이름을 바탕으로 자동 생성됩니다. 결과에서 의미에 맞게 이름만 바꿔 주면 바로 쓸 수 있습니다.
- 추론은 출발점: 정수/실수 구분이나 선택적 필드(optional)는 자동 추론의 한계가 있으니, 생성된 타입을 기준으로 필요한 부분만 손봐 마무리하세요.
네. 객체 안의 객체는 각각 별도의 타입(인터페이스·클래스·구조체)으로 만들어 연결하고, 배열은 첫 번째 요소의 타입을 보고 원소 타입을 추론합니다. 키 이름을 바탕으로 중첩 타입의 이름을 자동으로 지어 줍니다.
JSON → Java DTO는 자바 클래스(Lombok 스타일)를 만들어 주는 도구입니다. 이 도구는 같은 아이디어를 확장해 TypeScript interface, Python dataclass, Go struct 세 가지로 출력합니다. 사용하는 언어에 맞춰 골라 쓰면 됩니다.
값이 null이거나 빈 배열이면 타입을 확정할 수 없어 가장 느슨한 타입(TypeScript any, Python Any, Go interface{})으로 둡니다. 정확한 타입이 필요하면 실제 값이 들어 있는 예시 JSON으로 변환한 뒤, 결과에서 직접 다듬는 것을 권합니다.
예시 값이 1처럼 소수점이 없으면 정수로, 1.5처럼 소수점이 있으면 실수로 추론합니다. 그래서 실제로는 소수가 들어올 수 있는 값인데 예시에 마침 정수만 들어 있으면 정수 타입으로 잡힐 수 있습니다. Python의 float, Go의 float64처럼 실수가 필요한 필드는 생성된 타입을 확인하고 직접 바꿔 주는 것이 좋습니다.
이 도구는 하나의 예시 JSON에 있는 키만 보고 타입을 만들기 때문에, 그 예시에 없는 키는 알 수 없고 있는 키는 모두 필수처럼 다룹니다. 실제로 있을 수도 없을 수도 있는 필드는 TypeScript의 물음표 표기나 Python의 Optional처럼 언어에 맞는 선택적 표기를 결과에 직접 더해 주면 됩니다.