본문 바로가기

전체 글18

Caching for Web Service 캐싱은 웹 서비스에서 성능을 향상하고 응답 시간을 줄이는 데 있어 필수적인 기술이다. 데이터를 일시적으로 저장하는 방식을 통하여 서비스가 각 요청마다 데이터를 재생성하지 않고도 빠르게 데이터를 검색/제공할 수 있도록 한다. 이는 서버의 부하를 줄일 뿐 아니라 사용자 경험의 향상도 이끌어낸다. 웹 서비스에 사용되는 캐시는 여러 유형이 있으며 각각 고유한 장점을 갖는다. 빠른 액세스를 위해 서버의 램에 데이터를 저장하는 메모리 캐시부터 서버를 향하는 요청 수를 줄이기 위해 사용자의 장치에 데이터를 저장하는 브라우저 캐시까지 각 유형의 캐시는 성능 향상을 위해 중요한 역할을 한다. 먼저, 웹 서비스에서 사용되는 메모리 캐시, 디스크 캐시, CDN 캐시 그리고 브라우저 캐시에 대해 알아본다. 그리고 속도와 효율.. 2023. 2. 7.
CORS 1. CORS란 무엇인가? Cross-Origin Resource Sharing(CORS, 교차 출처 리소스 공유)는 추가 HTTP 헤더를 이용하여 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다. 웹 애플리케이션은 자원이 자신의 출처와 다를 때 CORS HTTP 요청을 실행한다. 여기서 출처(Origin)가 의미하는 것은 무엇일까? 출처는 세 가지 요소로 구성된다. 각각 Scheme(사용하는 프로토콜, http or https), Hostname(서버(가상 호스팅)의 이름 혹은 IP), Port(서버와의 연결을 위한 TCP 포트 번호로, 입력되지 않았을 시 서비스의 기본 포트가 이용된다)이다. 따라서, 동일한 출처라면 두 URL.. 2023. 1. 31.
Event Loop 자바스크립트는 Single Thread 기반의 언어로 한 번에 하나의 작업만을 처리할 수 있는 특징을 가지고 있다. 하지만 동시에 비동기 작업을 처리할 수 있어 동시에 많은 작업을 처리할 수 있다는 특징을 가지고 있기도 하다. 이 때 비동기로 동작하는 핵심 요소는 Node.js의 libuv 라이브러리와 브라우저가 가지고 있다. 싱글 쓰레드임에도 동시에 여러 작업을 처리하는 이와 같은 특징은 이벤트 루프에 기반한다. 자바스크립트는 싱글 쓰레드에서 작업을 처리하기 때문에 시간이 오래 걸리는 작업은 다른 작업을 진행할 수 없도록 한다. 이를 차단 기능이라고 부른다. 차단되는 것을 방지하기 위해 다양한 방법을 이용한다.(setTimeout, Promise 등) 브라우저는 Call Stack, Heap, Even.. 2023. 1. 24.
Event Propagation 이번 글은 발생된 이벤트의 전파에 대한 글이다. https://developer.mozilla.org/en-US/docs/Web/API/Event Event - Web APIs | MDN The Event interface represents an event which takes place in the DOM. developer.mozilla.org 이벤트는 사용자의 액션에 의해 발생할 수도 있고, API에 의해 생성될 수도 있고, 요소를 선택한 후 click 메소드를 호출하는 방식 혹은 dispatchEvent를 통해 발생될 수도 있다. 특정 상황에서 발생하기를 원하는 이벤트는 onEvent와 같은 형식으로 DOM Node에 부착되거나 addEventListener를 통해 Event발생 시 Event .. 2023. 1. 23.