본문 바로가기

분류 전체보기159

[node.js] V8엔진에 대하여 1. V8 엔진이란?Google에서 개발한 오픈소스 JavaScript 엔진으로, JavaScript 코드를 실행할 때 사용된다.Chrome 브라우저와 Node.js에서 사용되며, 빠른 실행 속도를 자랑한다.V8은 C++로 작성되었으며, JavaScript를 기계어로 변환하여 실핸한다.2. V8 엔진의 주요 특징JIT(Just-In-Time) 컴파일 방식 -> 인터프리팅이 아니라 실행 중 기계어로 변환하여 빠름가비지 컬렉션 -> 불필요한 메모리 자동 해제크롬과 Node.js에서 사용 -> 서버(Node.js)와 클라이언트(Chrome) 모두에서 실행 가능WebAssembly(Wasm) 지원 -> JavaScript 이외의 언어도 실행 가능3. V8 엔진의 내부 구조V8의 주요 컴포넌트Parser : Ja.. 2025. 2. 11.
[웹, 브라우저] 렌더링 과정, 렌더링 엔진 1. 웹 페이지가 렌더링 되는 과정1. 네트워크 요청사용자가 https://naver.com과 같은 웹사이트에 접속하면 DNS 조회를 통해 IP 주로를 찾는다.IP 주소를 찾은 후, 브라우저는 HTTP(S) 요청을 보내서 HTML, CSS, JavaScript, 이미지 등의 리소스를 가져온다.2. HTML 파싱 및 DOM 생성브라우저는 HTML 파일을 다운로드하고, 이를 파싱하여 DOM 트리를 생성한다.DOM(Document Object Model)은 HTML 태그를 트리 구조로 변환한 것이며, 각 태그는 노드가 된다. Hello, World! 위 HTML이 DOM 트리로 변환되면Document ├─ │ ├─ │ │ ├─ Example │ ├─ │ ├─ Hello, W.. 2025. 2. 10.
[Circuit Breaker] Circuit Breaker 패턴의 필요성 1. 서킷 브레이커란?쉽게 말하면 두꺼비 집과 같다.설정 이상의 전류가 흐르면 회로를 보호하기 위해 차단기가 작동된다.문제 상황에서 서버를 보호하기 위해 작동한다.서비스가 장애를 겪으면 클라이언트에게 유호한 응답을 줄 수 없다.적절한 조취를 취하지 않으면 서비스에 계속 요청을 보내고 우리는 한정된 자원(쓰레드, 메모리 등등)은 낭비 된다.이런 문제를 해결하기 위해 서킷 브레이거를 활용하게 된다.2. 서킷 브레이커 구성0) 서킷 브레이커는 크게 3가지로 구성되어 있다. Closed, Open, Half Open이 있다.1) Closed아무런 문제가 없는 경우의 상태전기가 흐르기 위해서는 회로가 닫혀(closed)있어야 한다. 그래서 정상 상황이 closed 상태이다.서비스에 문제가 생겨 응답을 주지 못하는.. 2025. 1. 20.
[ElasticSearch] 엘라스틱 서치 관련 면접 질문 대비 정리 면접 예상 질문 및 답변Elasticsearch의 기본 개념과 작동 원리를 알려주세요.Elasticsearch는 Apache Lucene을 기반으로 하는 오픈 소스, 분산, RESTful 검색 엔진입니다. JSON 문서를 저장하고, 이를 인덱싱하여 빠르게 검색할 수 있게 합니다. 핵심 기능은 전체 텍스트 검색과 함께 복잡한 검색 쿼리를 지원하는 것입니다. 데이터는 샤드로 분할되어 있어 여러 노드에 분산 저장되며, 이를 통해 고가용성과 확장성을 제공합니다.Elasticsearch에서 인덱싱은 어떻게 이루어지나요?문서가 Elasticsearch에 제출되면, 그 문서는 JSON 형식으로 변환되어 인덱스에 저장됩니다. 각 문서는 고유한 ID로 식별되며, Elasticsearch는 문서의 내용을 분석하여 역색인을.. 2025. 1. 20.