CS_study

렌더링, RestAPI

soobin Choi 2023. 2. 21. 23:50

1. 웹페이지가 브라우저에 랜더링 되는 과정?

웹페이지가 브라우저에 렌더링 되는 과정은 다음과 같은 단계를 거칩니다.

 

  1. HTML 문서 다운로드: 브라우저는 URL을 입력받고, 해당 URL에서 요청한 HTML 문서를 다운로드합니다. 이 과정에서는 DNS 조회, TCP 연결 등의 작업이 수행됩니다.
  2. HTML 파싱: 브라우저는 다운로드한 HTML 문서를 파싱 하여 DOM(Document Object Model) 트리를 생성합니다. DOM은 HTML 문서의 계층 구조를 나타내며, 노드와 엘리먼트 등의 정보를 포함합니다.
  3. CSS 다운로드: 브라우저는 HTML 문서에 포함된 CSS 파일을 다운로드합니다. CSS는 웹페이지의 레이아웃과 스타일을 정의하는 데 사용됩니다.
  4. CSS 파싱: 브라우저는 다운로드한 CSS 파일을 파싱하여 CSSOM(CSS Object Model) 트리를 생성합니다. CSSOM은 CSS 규칙들의 계층 구조를 나타내며, 노드와 규칙 등의 정보를 포함합니다.
  5. 렌더링 트리 생성: 브라우저는 DOM과 CSSOM을 결합하여 렌더링 트리(Render Tree)를 생성합니다. 렌더링 트리는 렌더링 될 요소들의 계층 구조를 나타내며, 노드와 스타일 등의 정보를 포함합니다.
  6. 레이아웃 계산: 브라우저는 렌더링 트리의 각 요소의 위치와 크기를 계산합니다.
  7. 페인팅: 브라우저는 렌더링 트리와 레이아웃 계산 정보를 바탕으로 화면에 요소를 페인팅합니다. 이 과정에서는 각 요소의 색상, 투명도, 텍스처 등이 고려됩니다.
  8. 페이지 로드 완료: 위의 과정이 모두 완료되면, 브라우저는 웹페이지가 렌더링되어 사용자에게 보이는 것을 완료합니다.wmr

즉 Parsing → Style  Layout  Paint  Composite 의 흐름

2. Restful API란? 메소드와 그 기준?

RESTful API는 Representational State Transfer(표현 상태 전이)를 따르는 API를 말합니다. 이것은 웹 상의 리소스를 표현하고, 요청에 따라 리소스의 상태를 전이시키는 아키텍처 스타일입니다.

RESTful API는 네트워크에서 클라이언트와 서버 사이에 데이터를 전송하기 위해 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용합니다. 다음은 일반적으로 사용되는 HTTP 메서드와 그 기준입니다:

  1. GET : 서버에서 리소스의 정보를 가져오기 위해 사용됩니다. 이 메소드는 리소스를 읽기만 하고 변경하지 않습니다.
  2. POST : 클라이언트에서 서버로 새로운 리소스를 만들기 위해 사용됩니다. 이 메서드는 서버에 새로운 데이터를 보내고, 그 데이터를 처리하여 새로운 리소스를 만듭니다.
  3. PUT : 클라이언트에서 서버로 기존 리소스를 업데이트하기 위해 사용됩니다. 이 메소드는 클라이언트에서 변경된 데이터를 서버로 보내서, 서버에서 해당 리소스를 업데이트합니다.
  4. DELETE : 클라이언트에서 서버로 리소스를 삭제하기 위해 사용됩니다. 이 메소드는 서버에서 해당 리소스를 삭제합니다.

HTTP 메소드를 사용하여 RESTful API를 구현할 때, 리소스의 상태 전이에 대한 의미가 명확해지고, API가 유연하고 확장 가능해지는 장점이 있습니다.

3. RESTful API와 비교할만한 것?

REST API 이외에도 다양한 API 아키텍처 스타일이 있습니다. 대표적인 것은 다음과 같습니다.

  1. SOAP (Simple Object Access Protocol) API : SOAP는 XML 기반의 메시지 교환 프로토콜입니다. SOAP API는 WSDL (Web Services Description Language)을 사용하여 API의 기능과 데이터 형식을 설명하고, XML을 사용하여 데이터를 교환합니다. SOAP API는 데이터의 안정성과 보안성이 뛰어나지만, RESTful API와 비교하여 구현이 복잡하고 느리다는 단점이 있습니다.
  2. GraphQL API : GraphQL은 페이스북에서 개발한 API 질의 언어입니다. RESTful API와 달리 클라이언트가 필요한 데이터의 형식과 양을 정의할 수 있으며, 서버에서는 클라이언트가 요청한 데이터만 반환합니다. 이를 통해 불필요한 데이터 전송을 방지하고, 클라이언트의 요청에 대한 정확한 응답을 보장할 수 있습니다.
  3. gRPC API : gRPC는 구글에서 개발한 API 프레임워크로, Protocol Buffers를 사용하여 데이터를 직렬화하고, HTTP/2를 사용하여 데이터를 전송합니다. RESTful API보다 빠르고 확장성이 뛰어나며, 서버 측에서 코드를 생성하여 클라이언트 코드를 작성하는 편의성이 있습니다.

이러한 API 아키텍처 스타일들은 각각의 장단점이 있으며, 사용하는 프로젝트의 목적과 요구사항에 따라 적절한 선택이 필요합니다.