About
JSON2Class는 반복적인 JSON 모델링 비용을 줄이기 위해 시작했습니다
실제 개발에서는 예쁜 데모보다 지루한 반복 작업이 더 많은 시간을 가져갑니다. JSON2Class는 API 응답, 이벤트 payload, 테스트 fixture를 코드 모델로 옮기는 반복 업무를 줄이고, 개발자가 타입 설계와 계약 검토에 더 집중할 수 있도록 만든 도구입니다.
왜 이 도구를 만들었는가
백엔드와 프런트엔드 팀이 함께 일할 때 자주 보는 장면은 비슷합니다. 누군가는 샘플 JSON을 메신저로 보내고, 누군가는 그걸 바탕으로 DTO나 interface를 손으로 다시 작성합니다. 그 과정에서 필드명이 조금씩 달라지고, nullable 해석이 어긋나고, 문서는 코드보다 늦게 업데이트됩니다.
JSON2Class는 이 불필요한 복사 작업을 줄이는 데서 출발했습니다. 개발자는 샘플 payload를 한 번 붙여 넣고, Java DTO, Kotlin data class, TypeScript interface, Markdown 문서를 빠르게 비교할 수 있어야 한다고 봤습니다. 도구는 초안을 빠르게 만들고, 팀은 그 초안을 기반으로 타입과 네이밍 규칙을 결정하는 방식이 훨씬 생산적입니다.
어떤 상황에서 가장 도움이 되는가
외부 API를 처음 붙일 때, 아직 OpenAPI 문서가 충분하지 않은 경우가 많습니다. 이럴 때 샘플 응답 하나만으로 DTO 구조를 먼저 잡아 두면 연동 속도가 훨씬 빨라집니다. 이벤트 payload 설계나 사내 서비스 간 계약을 정리할 때도 같은 접근이 유효합니다.
또한 실무에서는 테스트 fixture를 빠르게 정리하는 일이 자주 필요합니다. JSON 응답을 모델 클래스로 고정해 두면 테스트 코드, QA 시나리오, 문서 예시를 같은 계약 위에서 유지하기 쉬워집니다. JSON2Class는 이런 반복 작업을 줄여 개발 생산성을 높이는 데 초점을 둡니다.
운영 원칙
첫째, 핵심 변환 작업은 가능한 한 브라우저에서 처리합니다. 민감한 샘플 JSON을 불필요하게 서버로 보내지 않는 방향이 개발자 도구로서 더 적절하다고 판단합니다.
둘째, 생성기는 최종 코드를 대신하는 제품이 아니라 검토 가능한 초안을 빠르게 만드는 제품이라는 관점을 유지합니다. 실제 프로젝트 규칙에 맞는 타입 보정, Validation, 날짜 처리, enum 분리는 개발자가 최종적으로 판단해야 합니다.
셋째, 단순 유틸리티 사이트가 아니라 설명 가능한 개발자 문서 사이트를 지향합니다. 그래서 메인 도구뿐 아니라 Java, Kotlin, TypeScript별 가이드와 정책 페이지를 함께 운영해, 사용자가 결과를 이해하고 검토할 수 있도록 구성합니다.