프록시(proxy)란 사용자의 요청을 대신 처리해 주는 중개 서버를 의미한다. 일반적으로 클라이언트와 서버 사이에 위치하여, 클라이언트의 요청을 받아서 서버에 전달하고, 서버의 응답을 다시 클라이언트에 전달한다. 이 과정을 통해 다양한 기능과 이점을 제공한다.1. 프록시의 기본 구조클라이언트는 웹 브라우저, 앱 등 사용자의 요청을 만드는 주체다.프록시 서버는 클라이언트와 서버 사이에 위치해 요청과 응답을 중계한다.실제 서버는 요청된 리소스나 데이터를 가진 최종 목적지다.2. 프록시의 주요 역할중개: 클라이언트와 서버 사이의 요청/응답을 대신 수행한다.캐싱: 자주 요청되는 데이터를 저장해 빠른 응답을 제공한다. (속도 및 트래픽 절감)보안: 내부 IP 숨김, 악성 요청 필터링, SSL 처리 등접근 제어: ..
이번 포스팅에서는 HTTP와 관련된 내용을 알아보겠다.1. HTTP 요청/응답 구조HTTP는 클라이언트(보통 브라우저)가 서버에 요청을 보내고, 서버가 응답하는 Request/Response 구조를 따른다.요청(Request) 구성GET /index.html HTTP/1.1Host: example.comUser-Agent: Mozilla/5.0Accept: text/html요청 라인: GET /index.html HTTP/1.1요청 헤더: 부가 정보 (예: Host, User-Agent, Accept)본문(Body): POST, PUT 등일 때 데이터가 포함됨응답(Response) 구성HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 1024...상태 라인:..
OSI 7 계층이란?OSI (Open Systems Interconnection) 7 계층 모델은 국제표준화기구(ISO)가 만든 네트워크 통신의 표준 참조 모델이다.목적은 서로 다른 시스템 간의 통신을 계층화된 방식으로 표준화하여 쉽게 이해하고 설계, 구현, 디버깅할 수 있게 하는 것이다.각 계층은 독립적이며 명확한 책임을 가지고 있으며, 위아래 계층과만 상호작용한다.왜 나누어야 하고 OSI 7 계층을 알아야 할까?단계별로 정의한 이유는 통신 과정 속에서 장애가 발생한 경우, 다른 계층의 소트프웨어나 장비를 건들지 않고 통신 장애가 발생한 계층에서만 해결책을 강구할 수 있기 때문이다.OSI 7 계층 구조 및 설명1 계층: 물리 계층 (Physical Layer)1. 핵심 개념물리 계층은 데이터를 전기적,..
pthread_rwlock_t: 읽기/쓰기 락 (Read-Write Lock)개념읽기 작업은 동시에 여러 개 가능,쓰기 작업은 오직 하나만 가능하도록 제어하는 락.다수의 reader는 동시에 접근 가능단 하나의 writer만 접근 가능하고, 이 동안 reader도 접근 불가읽기 작업이 많은 경우 성능 향상 가능.핵심 동작 원리락 요청허용 조건읽기 락쓰기 락이 잡혀 있지 않으면 여러 개 허용쓰기 락아무도 락을 잡고 있지 않아야 허용 (reader, writer 모두 없어야 함)관련 함수 (POSIX Threads)pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER;pthread_rwlock_init(&rwlock, NULL);pthread_rwlock_rdlock..
조건 변수란?조건 변수(Condition Variable)는 공유 자원의 상태가 어떤 조건을 만족할 때까지 쓰레드를 기다리게 하거나, 그 조건이 만족되면 다른 쓰레드를 깨우는 동기화 도구다.조건 변수의 동작 구조조건 변수는 반드시 mutex와 함께 사용된다.전형적인 흐름1. 쓰레드 A:pthread_mutex_lock(&mutex);while (조건이 false) pthread_cond_wait(&cond, &mutex); // 대기 상태 진입// 조건이 만족되면 계속 진행pthread_mutex_unlock(&mutex);2. 쓰레드 B (조건 만족시키는 측):pthread_mutex_lock(&mutex);// 조건을 true로 만드는 작업pthread_cond_signal(&cond); // ..
1. pthread_mutex_t: 상호배제(Mutual Exclusion)개념여러 쓰레드가 공유 자원에 동시 접근하지 못하도록 막는 도구.한 번에 하나의 쓰레드만 임계구역(Critical Section)을 실행할 수 있도록 보장.주요 함수pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; // 정적 초기화pthread_mutex_init(&lock, NULL); // 동적 초기화pthread_mutex_lock(&lock); // 락 획득 (다른 쓰레드가 잡고 있으면 대기)pthread_mutex_unlock(&lock); // 락 해제pthread_mutex_destroy(&lock); // 소멸 (동적으로 생성..