Web

[Web] 파싱이란?

양원준 2024. 6. 17. 17:57
728x90

 

최근, 모던 리액트 딥다이브를 읽고 있다.  csr, ssr 차이 파트를 읽던 중 "웹 렌더링은 html을 파싱하여 dom을 만들고, css를 파싱하여 cssom을 만든다"라는 구문을 자연스럽게 읽는 순간, 파싱의 정확한 개념이 뭐지란 생각이 들었다.

 

면접을 준비하거나 그 전에도 자연스럽게 파싱,파싱 했는데 정확히 무슨 개념인지 모르고 사용한 것 같아서 정리해 보려한다.

 

파싱이란?

  • 언어학에서는 문장을 그것을 이루는 구성 성분과 그 사이 위계 질서를 분석하여 문장의 구조를 결정하는 것
  • 컴퓨터과학에서는 일련의 문자열을 토큰으로 분해하고 그것들로 이루는 트리를 만드는 것
  • 결국, 파싱은 주어진 데이터를 해석하고 분석하여 원하는 형식 또는 구조로 변환하는 작업을 의미한다

 

파싱은 토큰화, 구문 분석의 단계로 나뉘어진다

  • 토큰화: 입력된 텍스트 데이터를 의미 단위로 나누는 과정. 예를 들어, 문장 “Hello, world!“를 토큰화하면 “Hello”, “,”, “world”, “!“와 같은 개별 토큰으로 나뉘어진다.
  • 구문 분석: 토큰화된 데이터를 문법적 규칙에 따라 구조화된 트리 형태로 변환하는 과정. 이를 통해 데이터의 계층 구조와 의미를 파악

 

 

HTML 파싱

브라우저는 HTML 문서를 받아들여 이를 파싱하여 DOM(Document Object Model) 트리를 생성

<!DOCTYPE html>
<html>
<head>
    <title>Sample Page</title>
</head>
<body>
    <h1>Hello, World!</h1>
</body>
</html>

 

위 html을 파싱하면 다음과 같은 dom트리가 생성

  • html
    • head
      • title: “Sample Page”
    • body
      • h1: “Hello, World!”

 

CSS 파싱

브라우저는 CSS 파일을 받아들여 이를 파싱하여 CSSOM(CSS Object Model) 트리를 생성

body {
    background-color: #f0f0f0;
}
h1 {
    color: blue;
}

 

위 css을 파싱하면 다음과 같은 cssom트리가 생성

  • body
    • background-color: #f0f0f0
  • h1
    • color: blue

 

JSON.parse, parseInt

json을 파싱하여 js 객체로 변환, parseInt로 문자열을 숫자열로 변환하는 것도 파싱의 일종이다

//json --> js
const jsonString = '{"name": "Yang", "age": 26}';
const jsonObject = JSON.parse(jsonString);
console.log(jsonObject.name); // Yang


//문자열 --> 숫자
const numberString = "123";
const number = parseInt(numberString);
console.log(number); // 123

 

 

 

 

결국, 파싱은 데이터를 해석하고 구조화하는 중요한 작업이다. 이를 통해 프로그램은 데이터를 이해하고 처리할 수 있게 된다.

 

 

 

 

 

 

 

 

728x90

'Web' 카테고리의 다른 글

[Web] SDK, API란?  (0) 2024.05.06
[Web] 쿠키, 세션  (1) 2024.04.26
[Web] CSR(클라이언트사이드랜더링), SSR(서버사이드랜더링)  (1) 2024.03.27
[Web] 랜더링이란 무엇인가?  (1) 2024.03.25