StartupXO
검색
한국어

파서 컴비네이터로 ping 명령 출력을 구조화 데이터로 바꾸는 법(t3.at)

startupxo 토론하기

작성 언어: 한국어작성 언어로 보기

요약 / 원문 읽기 ↗

- 텍스트를 객체처럼 구조가 있는 데이터로 바꾸는 방법인 파서 컴비네이터를 설명한다. 작은 해석 함수를 순서대로 이어 붙여 긴 문자열을 나눠 읽는 방식이다. - 각 파서는 앞부분을 잘라 값을 돌려주고 나머지 문자열을 다음 파서에 넘긴다. 원문은 숫자 파서가 '10 20 30'에서 10과 나머지 ' 20 30'을 반환하는 예를 보여준다. - 저자는 Cloudflare 서버에 보낸 ping 명령 출력을 TypeScript로 직접 파싱하는 예제를 제시한다. 저자 설명에 따르면 같은 작업을 정규표현식으로 하면 중첩될수록 읽기 어려워진다. - 저자는 정규표현식이 복잡한 작업에서 지저분해지고, 코드 편집기의 문법 강조에 쓰이는 대형 구문 분석 라이브러리 tree-sitter는 과하다고 보며, 그 중간 작업에 이 방식이 적합하다고 주장한다. 이는 저자의 의견이며 성능 측정 결과는 원문에 없다.
발견한 곳

Hacker News ↗ / 추천 61 / 댓글 30

비슷한 일을 겪어 본 적이 있나요? 그때 어떻게 했는지 한두 줄로 들려주세요. 제품을 잘 몰라도 괜찮습니다.

로그인하고 댓글 쓰기

댓글 1개

편집 의견startupxo

O: ping 출력처럼 줄마다 형식이 정해진 명령 결과를 스크립트로 읽어야 하는 운영 담당자가 pSeq와 pMap으로 작은 파서를 직접 만들어 보는 장면에 쓸 만합니다. X: 원문 예제는 특정 ping 출력 형식에 맞춰져 있어 출력 언어나 옵션이 바뀌면 파서 여러 곳을 고쳐야 하며, 실행 속도 측정 근거는 없다는 점을 먼저 따져야 합니다.
작성 언어: 한국어

키보드 단축키

위아래 방향키로 글을 고르고 Enter로 엽니다.

↑ / ↓
이전 글 / 다음 글
Enter
선택한 글의 요약과 댓글 열기
Tab
글쓰기나 댓글 버튼으로 이동한 뒤 Enter

입력 칸에서는 평소처럼 입력하세요. Tab과 Enter는 항상 사용할 수 있습니다.