본문 바로가기
[개발] Info/용어

파싱(Parsing)

by Devsong26 2024. 6. 30.
반응형

파싱(parsing)은 프로그래밍에서 데이터를 특정 형식으로 해석하고 구조화하는 과정을 의미합니다. 원시 데이터를 의미 있는 구성 요소로 분리하고, 이를 바탕으로 데이터의 의미를 이해하고 처리하는 작업입니다. 파싱은 텍스트, 파일, 네트워크 데이터 등 다양한 형태의 데이터를 다룰 때 필수적인 과정입니다.

파싱의 필요성

  1. 데이터 구조화: 원시 데이터(raw data)를 의미 있는 구조로 변환하여 프로그램에서 사용할 수 있게 합니다.
  2. 데이터 변환: 데이터 포맷을 변환하여 다른 시스템 간의 데이터 교환을 가능하게 합니다.
  3. 데이터 검증: 데이터를 파싱하면서 형식이나 값이 유효한지 검증할 수 있습니다.

파싱의 과정

  1. 토큰화(Tokenization): 입력 데이터를 작은 단위인 토큰(token)으로 분리합니다. 예를 들어, 문장을 단어로 분리하는 작업이 토큰화에 해당합니다.
  2. 구문 분석(Syntax Analysis): 토큰을 구조적으로 해석하여 문법적으로 올바른지를 검사합니다. 문법 규칙에 따라 토큰들이 어떻게 조합되는지 확인합니다.
  3. 의미 분석(Semantic Analysis): 구문 분석이 완료된 후, 각 구성 요소의 의미를 해석하여 데이터의 의미를 파악합니다.

파싱의 종류

  1. 탑다운 파싱(Top-down Parsing): 입력 문자열을 최상위부터 하위로 분석합니다. 대표적인 방법으로 재귀적 하향 파싱(Recursive Descent Parsing)이 있습니다.
  2. 바텀업 파싱(Bottom-up Parsing): 입력 문자열을 가장 하위 구성 요소부터 상위로 분석합니다. 대표적인 방법으로 LR 파싱(Left-to-right, Rightmost derivation)이 있습니다.

 

  1.  

파싱 도구와 라이브러리

프로그래밍 언어마다 다양한 파싱 도구와 라이브러리가 존재합니다. 예를 들어:

  • ANTLR: 강력한 파서 생성기 도구로, 다양한 언어를 지원하며 복잡한 언어의 파서를 생성할 수 있습니다.
  • JavaCC: 자바용 파서 생성기로, 문법 파일을 작성하여 파서를 생성합니다.
  • PLY: 파이썬을 위한 파서 생성기로, Lex와 Yacc 스타일의 파서를 생성합니다.
 

이 예제에서는 수식을 토큰으로 분리하고, 스택을 사용하여 연산의 우선순위를 처리한 후 결과를 계산합니다. 파싱 과정에서 토큰화, 구문 분석, 의미 분석을 모두 수행하고 있습니다.

반응형

'[개발] Info > 용어' 카테고리의 다른 글

워커 러너 패턴  (0) 2024.07.21
보일러 플레이트(boiler plate)  (0) 2024.07.21
서브루틴  (0) 2024.06.30
오버헤드  (0) 2024.06.29
데몬 스레드  (0) 2024.06.29