바이너리 포맷을 규정하고 파서를 만드는 것은 무척 손이 많이 가고, 오류가 발생하기도 쉬운 어려운 작업인데, 이런 부분을 집중적으로 돕는 프레임워크가 있어 공유합니다.
Kaitai Struct라는 프레임워크이고, 이름에서 알수 있듯 Kaitai는 일본어로 해체 (解体)라는 뜻입니다.
ksy 파일로 도메인 언어로 바이너리 포맷을 분석한 내용을 사양으로 기재하면, 여기에 맞추어 각종 언어 별로 파서를 만들어주는 일을 합니다. 지원하는 언어로 C#은 물론 NodeJS, Python 등 여러 프로그래밍 언어를 두루 지원합니다.
그리고 공식 홈페이지에는 잘 알려진 유명한 바이너리 포맷들을 KSY 파일로 정의해놓은 갤러리와 온라인 IDE도 같이 제공하고 있어 편하게 테스트해보실 수 있습니다.
이 주제로 구현 방법을 고민 중이신 분들께 도움이 될 수 있을 것 같아 공유해봅니다.