파서 (Parser)

seungjun.dev·2025년 7월 26일
0
post-thumbnail

문서나 데이터의 구조를 해석하여 원하는 값이나 의미 있는 데이터로 변환하는 프로그램
즉, 입력된 데이터를 컴퓨터가 이해할 수 있는 구조로 바꿈

예를 들면,

  • XML 파서는 XML 문서를 분석해서 요소, 속성 등 구성 정보를 파악하고 필요한 데이터 추출
  • JSON 파서는 JSON 형식의 데이터를 프로그램이 활용할 수 있는 객체 등으로 변환

데이터 처리 방식

  1. 데이터 입력
  2. 데이터 분해 (토큰화)
    • 데이터를 토큰(작은 단위)로 쪼갬
    • 대표적으로 구문자, 문법 규칙, 정규표현식을 활용
    • e.g.) JSON의 {}, XML의 <tag></tag>
  3. 문법 및 구조 분석
    • 자신만의 규칙 혹은 통계적 모델을 기준으로 구조를 분석
    • 텍스트 기반은 정규표현식이나 스트링 파싱, 마크업 언어는 전용 파서를 사용
  4. 데이터 변환 및 추출
    • 파싱된 내용을 구조화된 데이터로 변경
  5. 출력 (구조화된 데이터 반환)

파서가 만드는 데이터 구조

데이터 포맷변환 전파서가 만들어내는 구조 예시
텍스트"2024-07-16"문자열(str), 날짜 객체(DateTime)
CSVname,age\nTom,252차원 배열(List of lists), 오브젝트 배열
XML<user><id>1</id></user>트리(Tree) 구조, 노드(객체), 딕셔너리(dict)
JSON{ "id":1, "name":"Tom" }딕셔너리(dict), 객체(Object)
HTML<div>Text</div>트리 구조(노드, Element), 딕셔너리
  • 트리 구조
    • 대표적으로 XML, HTML 파싱후 생성되는 구조
    • 각 요소와 속성이 계층적으로 연결된 객체로 변환
  • 딕셔너리, 오브젝트
    • JSON 파싱 결과, key-value 쌍 형태로 구조화
    • 대부분의 언어에서 Map/Object 형으로 변환
  • 배열, 리스트
    • CSV, JSON의 배열 데이터 등에서 활용

e.g.) JSON 파싱

  • 입력

    { "id": 1, "name": "Tom", "roles": ["admin", "user"] }
  • 파싱 후

    {
      "id": 1,
      "name": "Tom",
      "roles": ["admin", "user"]
    }
profile
Web FE Dev | Microsoft Student Ambassadors Alumni

0개의 댓글