이번 릴리스에서는 파싱 엔진을 전면적으로 개편하고 새로운 출력 스타일을 추가하여, apon.js가 최신 APON 사양을 완벽하게 지원하도록 업그레이드되었습니다.
✨ 새로운 기능 및 개선사항
- 새로운 캐릭터 단위 파서 도입
- 파싱 엔진이 기존의 라인 단위 처리 방식에서 벗어나, 문자(Character) 단위의 토큰 분석 방식으로 완전히 재구현되었습니다.
- 이를 통해 복잡한 APON 문서를 더욱 정밀하고 유연하게 파싱할 수 있게 되었습니다.
- SINGLE_LINE 및 COMPACT 스타일 지원
- 이제 파서가 항목이 쉼표(
,)로 구분된SINGLE_LINE및COMPACT형식을 기본적으로 지원합니다. - JSON처럼 한 줄로 된 APON 텍스트로부터 JavaScript 객체를 직접 파싱할 수 있습니다.
- 이제 파서가 항목이 쉼표(
- 인라인 주석 지원
- 이제 라인 중간(따옴표 내부 제외)에서도
#기호를 사용하여 주석을 달 수 있습니다. - 파서는
#이후부터 해당 물리적 라인의 끝까지를 주석으로 처리하여 무시합니다.
- 이제 라인 중간(따옴표 내부 제외)에서도
- 유연한 항목 구분자
- 객체의 항목이나 배열의 요소 구분자로 줄바꿈, 쉼표, 또는 두 가지를 혼용하여 사용할 수 있습니다.
- 이를 통해 설정을 복사하거나 순서를 바꿀 때 발생할 수 있는 구문 오류를 획기적으로 줄여줍니다.
APON.stringify()의 새로운 출력 스타일APON.stringify(obj, { style: '...' })에 스타일 옵션이 추가되었습니다.- PRETTY (기본값): 들여쓰기와 멀티라인 텍스트 블록을 사용하는 가독성 중심의 표준 형식입니다.
- SINGLE_LINE: 쉼표를 사용하여 가독성을 유지하면서 한 줄로 출력하는 형식입니다.
- COMPACT: 공백을 최소화하여 전송 효율을 극대화한 한 줄 압축 형식입니다.
- 멀티라인 문자열 자동 처리
SINGLE_LINE또는COMPACT스타일을 사용할 때,APON.stringify()는 여러 줄로 된 문자열을 이스케이프 처리된 한 줄 문자열(예:"line1\nline2")로 자동 변환합니다.- 이를 통해 데이터 내용에 상관없이 출력 결과가 항상 한 줄임을 보장합니다.
- 인터랙티브 데모 개선
- 온라인 데모 페이지에 스타일 선택 메뉴가 추가되어, 출력 스타일에 따른 APON 결과물 차이를 즉시 확인해 볼 수 있습니다.
🧪 테스트 커버리지 확대
- 새로운 파서와 모든 출력 스타일의 안정성을 검증하기 위해 22개의 전문적인 테스트 케이스를 구축하여 검증을 완료했습니다.
Juho Jeong NEWS
Release