본문 바로가기

CS19

CDN(Content Delivery Network)이란? 우리가 매일같이 사용하는 웹 사이트나 앱은 사실상 전 세계 어디서든 접근 가능해야 한다.그런데 모든 요청이 본 서버(Origin Server)까지 가서 처리된다면 속도도 느려지고 서버 과부하도 일어나게 되는데, 이런 문제를 해결해주는 게 바로 CDN(Content Delivery Network)이다. CDN은 말 그대로, 콘텐츠를 전달하는 데 특화된 네트워크로, 본 서버와 사용자 사이에 있는 전 세계 각지의 서버(엣지 서버)에 데이터를 캐싱해두고 중간에서 데이터를 대신 전달해주는 역할을 한다.이 때 전달하려는 데이터가 정적인지, 동적인지에 따라 전달 방식이 달라진다. 정적 캐싱 vs. 동적 캐싱정적 캐싱: 이미지, JS 파일처럼 미리 예측 가능한 콘텐츠를 각 엣지 서버에 미리 저장동적 캐싱: 사용자가 요.. 2025. 6. 5.
인터넷과 웹 매일 스마트폰을 켜고 "인터넷을 한다"고 말하지만, 정확히 인터넷이 무엇인지, 그리고 웹(Web)과는 어떤 차이가 있는지 헷갈렸다.따라서 이번에는 우리가 당연하게 사용하고 있는 인터넷과 웹의 차이점과 대해 알아보려고 한다. 인터넷이란 무엇인가?인터넷(Internet)이라는 단어는 Inter(사이의 관계, 연결), Network(네트워크)의 결합어이다.여기서 Inter는 두 개 이상의 대상 간의 연결이나 상호작용을 뜻하고, Network는 컴퓨터나 장비가 서로 그물망처럼 연결된 집합을 말한다.따라서 인터넷은 네트워크들 간의 연결을 의미하며, 전 세계의 컴퓨터 네트워크들이 서로 연결되어 데이터를 주고받을 수 있는 세계 최대의 네트워크라고 할 수 있다. 그렇다면 인터넷을 어떻게 데이터를 주고받을 수 있을까?T.. 2025. 6. 5.
WebSocket & STOMP의 개념 Polling, Long Polling, SSE(Server Sent Event)HTTP의 이해HTTP란?클라이언트와 서버가 서로 데이터를 주고받기 위해 사용되는 통신 규약으로 다음과 같은 데이터 타입을 전송할 수 있다.HTML, TEXT이미지, 음성, 영상, 파일 등JSON, XML이렇게 거의hbb-devlog.tistory.com이전 글에서 클라이언트와 서버가 데이터를 실시간으로 주고 받는 방법으로 Polling, Long Polling, SSE를 알아보았는데, 이 방법들은 클라이언트와 서버가 동시에 양방향 통신이 불가능하다는 단점이 있다.웹소켓은 HTML5의 새로운 기능으로, 웹 애플리케이션과 서버 간에 상시 연결을 유지할 수 있는 통신 프로토콜이다.HTTP 프로토콜과 다르게 클라이언트와 서버 간의.. 2025. 2. 23.
Polling, Long Polling, SSE(Server Sent Event) HTTP의 이해HTTP란?클라이언트와 서버가 서로 데이터를 주고받기 위해 사용되는 통신 규약으로 다음과 같은 데이터 타입을 전송할 수 있다.HTML, TEXT이미지, 음성, 영상, 파일 등JSON, XML이렇게 거의 모든 형태hbb-devlog.tistory.com HTTP 통신은 요청-응답(Request-Response) 구조를 따르며, 무상태(stateless), 비연결성(connectionless) 이라는 특징을 가진다.즉, 서버는 클라이언트가 요청을 보낼 때만 응답하고, 응답이 완료되면 연결이 종료되는데, 이러한 특성 때문에 실시간 데이터 통신이 필요한 서비스에서는 한계가 존재한다.이를 해결하기 위해 클라이언트와 서버 간 데이터를 실시간으로 주고받는 방법으로 Polling과 Long Polling.. 2025. 1. 13.
OAuth2.0 개념 기존에 로그인 방식은 사이트마다 별도로 가입을 해 사용자가 많은 비밀번호를 사용해야 하며, 서비스 제공자 입장에서는 개인 정보를 직접 관리해야하므로 부담이 있었다.OAuth(Open Authorization)는 인증과 권한 위임을 위한 개방형 표준 프로토콜로, 사용자가 자신의 개인정보를 제3자 서비스(우리 앱)에 직접 제공하지 않고도, 해당 서비스가 플랫폼 내의 정보에 접근할 수 있도록 권한을 부여하는 방식으로 사용한다.OAuth2.0 용어Authentication(인증)Id/Password 확인하여 신원을 체크Authorization(인가)사용자가 플랫폼에 있는 개인 정보 사용을 동의하여 권한 부여Resource서버가 관리하는 사용자 정보Authorization Code인가 단계 이후 Auth Serv.. 2025. 1. 2.
HTTP의 이해 HTTP란?클라이언트와 서버가 서로 데이터를 주고받기 위해 사용되는 통신 규약으로 다음과 같은 데이터 타입을 전송할 수 있다.HTML, TEXT이미지, 음성, 영상, 파일 등JSON, XML이렇게 거의 모든 형태의 데이터를 전송할 수 있으며 서버 간 데이터를 주고 받을 때 역시 HTTP 프로토콜을 사용한다.HTTP의 특징1. 클라이언트-서버 구조위에서 HTTP 통신은 클라이언트와 서버가 서로 데이터를 주고 받는 형태로 되어있다고 하였다.즉 클라이언트가 Request를 보내면 서버가 Response를 보내는 요청-응답 구조로 되어있다.이렇게 클라이언트와 서버를 명확하게 구분함으로써 클라이언트는 UI를 그리는데 집중할 수 있고, 서버에서는 비즈니스 로직과 데이터를 다루는데 집중할 수 있게 된다.2. 무상태(.. 2024. 12. 27.
CORS CORS(Cross-Origin Resource Sharing, 교차 출처 리소스 공유)HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제로 웹 애플리케이션이 리소스가 자신의 출처와 다를 때 브라우저는 요청 헤더에 Origin 필드에 요청 출처를 함께 담아 교차 출처 HTTP 요청을 실행함.CORS는 브라우저에 구현된 스펙으로, 브라우저가 클라이언트의 요청 헤더와 서버의 응답헤더를 비교해서 최종 응답을 결정한다.두 개의 출처를 비교하는 방법은 URL 구성요소 중에서 Protocol, Host, Port 세 가지가 모두 동일한 지 판단CORS의 종류1. Simple Request예비 요청(Preflight.. 2024. 12. 26.
프로세스와 스레드 프로세스의 개념컴퓨터에서 실행 중인 프로그램을 뜻하는 것으로 운영체제(OS)가 프로그램을 실행시키면, 프로세스라는 단위로 관리된다.이 때 각 프로세스는 고유한 메모리 공간을 할당받는데 해당 공간에는 프로그램 코드(명령어들), 데이터(변수, 스택, 힙 등)가 있다.또한 독립적으로 동작하기 때문에 다른 프로세스와 메모리 공간을 공유하지 않는다. CPU: 프로그램의 명령어를 실제로 처리하는 장치메인 메모리(RAM): 프로세스가 CPU에서 실행되기 위해 대기하는 곳으로 프로세스의 실행 코드와 데이터가 여기에 존재한다. 단일 프로세스초창기 컴퓨터의 방식으로 CPU는 한 번에 하나의 작업만 할 수 있는데 이는 실행 중인 프로그램이 있다면 다른 프로그램은 실행할 수 없다. 만약 프로그램이 I/O 작업을 하여 대기 상.. 2024. 12. 26.
웹 서버, WAS, 리버스 프록시 웹 서버웹 서버란 웹 서비스를 지원해주는 하드웨어나 소프트웨어를 의미한다.하드웨어 : 웹 서비스를 지원하는 컴퓨터 시스템을 의미한다.소프트웨어 : 클라이언트로부터 웹 페이지 요청을 받아 정적인 컨텐츠(html, css, jpeg, javascript 등)를 제공하는 컴퓨터 프로그램으로 Apache, Nginx, IIS 등이 있다.만약 정적인 컨텐츠 대신 동적인 컨텐츠를 제공해야 한다면 WAS에게 해당 요청을 전달하고, 처리 결과를 다시 받아와 클라이언트에게 전달해준다.만약 이미지 파일을 클라이언트에게 보내야 한다면? 보통 이미지 파일은 HTML 문서와 함께 클라이언트로 보내지지 않는다. 즉 HTML 문서를 먼저 받은 뒤 그에 맞는 이미지를 다시 서버로 요청하고 그 후에 이미지 파일을 받아오게 됨. 이 때.. 2024. 12. 26.