본문 바로가기

IT49

[Server] Web Server / WAS 개념 및 차이점 Web ServerWeb Server는 정적인 웹 리소스(HTML, CSS, 이미지 파일 등)를 서비스하는 데 특화된 서버 소프트웨어를 의미한다. 웹 서버는 클라이언트의 HTTP 요청을 받아 해당 요청에 맞는 정적 컨텐츠를 반환한다. 웹 서버는 주로 웹 애플리케이션의 비즈니스 로직을 처리하지 않고, 단순히 클라이언트에게 정적인 웹 페이지를 제공하는 데 사용된다.웹 서버의 주요 기능과 특징은 다음과 같다. 정적 컨텐츠 제공웹 서버는 HTML, CSS, JavaScript, 이미지, 비디오 등과 같은 정적인 웹 리소스를 클라이언트에게 전송한다. 이러한 리소스는 웹 애플리케이션의 비즈니스 로직과 상관없이 변하지 않는 고정된 내용이다.HTTP 요청 처리클라이언트의 HTTP 요청을 받아 해당 요청에 맞는 파일이나.. 2024. 9. 29.
[Server] What is Load Balancing? Load Balancing 로드 밸런싱은 애플리케이션을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법이다. 최신 애플리케이션은 수백만 명의 사용자를 동시에 처리하고 정확한 텍스트, 비디오, 이미지 및 기타 데이터를 빠르고 안정적인 방식으로 각 사용자에게 반환해야 한다. 이렇게 많은 양의 트래픽을 처리하기 위해 대부분의 애플리케이션에는 데이터가 중복되는 리소스 서버가 많이 존재한다. 로드 밸런서는 사용자와 서버 그룹 사이에 위치하며 보이지 않는 촉진자 역할을 하여 모든 리소스 서버가 동일하게 사용되도록 하는 디바이스이다. 저번 포스트에서 Reverse Proxy에 대해 설명하였는데,Reverse Proxy의 사용 이유에 로드밸런싱을 명시하였다. [Server] Reverse Proxy.. 2024. 9. 26.
[Server] Reverse Proxy / Forward Proxy Proxy프록시(Proxy)는 클라이언트와 서버 간의 통신을 중계하는 역할을 하는 서버나 소프트웨어이다.클라이언트는 서버에게 직접 요청을 보내지 않고 프록시를 통해 요청을 보낸다.프록시는 해당 요청을 대신 서버에 전달하여 응답을 받아 클라이언트에게 전송한다.프록시 서버(Proxy Server)는 프록시의 기능을 수행하기 위해 사용되는 서버이다. 즉 프록시(Proxy)는 '대리'라는 의미를 갖고 있으며, 서버와 서버사이의 중계기 역할을 한다고 보면 된다.프록시를 쓰는 이유는 보안상의 이유로 직접 통신할 수 없는 두 점 사이에서 대리로 통신을 수행하여 보안성, 성능, 안정성을 향상하기 위해서이다. 보통 웹은 클라이언트에서 서버로, 서버에서 클라이언트로 통신하며 데이터를 전달한다.이때 필연적으로 중복되는 데이.. 2024. 9. 25.
[Server] 상호 배제 알고리즘 - Dekker's Algorithm 병행 프로세스 및 상호 배제운영체제는 복수의 프로세스들을 관리하는 과정에서 여러 문제를 직면하게 된다.그중 가장 큰 문제는 Race Condition( 경쟁 조건 )의 극복이다.이에 대한 자세한 설명 및 여러 동기화 도구들은 아래 포스팅에 나와있다. [Server] Spin lock & Mutex & Semaphore기본 개념Spin lock, Mutex, Semaphore를 이해하기 전 기본적으로 알아야 하는 개념들이 존재한다. 이에 대해 먼저 살펴보면 다음과 같다.Race Condition ( 경쟁 조건 )여러 프로세스/스레드가 동시에 같은kyu-nahc.tistory.com운영체제가 여러 프로세스들을 관리할 때도 Race Condition이 발생할 수 있으며,두 개 이상의 프로세스가 동시에 공유 자.. 2024. 9. 25.
[Server] Spin lock & Mutex & Semaphore 기본 개념Spin lock, Mutex, Semaphore를 이해하기 전 기본적으로 알아야 하는 개념들이 존재한다. 이에 대해 먼저 살펴보면 다음과 같다.Race Condition ( 경쟁 조건 )여러 프로세스/스레드가 동시에 같은 데이터를 조작할 때 타이밍이나 접근 순서에 따라 결과가 달라질 수 있는 상황Synchronization ( 동기화 )여러 프로세스/스레드를 동시에 실행해도 공유 데이터의 일관성을 유지하는 것Critical Section ( 임계 영역 )공유 데이터의 일관성을 보장하기 위해 하나의 프로세스/스레드만 진입해서 실행 가능한 영역Mutual Exclusion ( 상호 배제 )위의 임계 영역에서 설명한, 하나의 프로세스/스레드만 진입해서 실행한다는 것 또는 동시 프로그래밍에서 공유 불.. 2024. 9. 24.
[Spring boot] JPA fetch join 2개 이상의 Collection Join 해결법 JPA fetch Join이전 포스트에서는 JPA의 N+1 문제 및 해결방안에 대해 정리하였다. [Spring boot] JPA N+1 발생 케이스 및 해결 방법JPA FetchType저번 포스트에서 Jpa의 FetchType인 지연 로딩과 즉시 로딩에 대해 정리하였다. [Spring boot] JPA FetchTypeFetchTypeFetchType이란 JPA에서 엔티티를 조회할 때 연관된 ‘엔티티 조회 방법을 결정하는kyu-nahc.tistory.com 지연로딩의 문제점을 해결하기 위해 fetch Join을 사용하였지만,fetch Join은 pagination이나 2개 이상의 Collection Join시 문제가 되었다.pagination은 fetch Join을 사용하지 않고 BatchSize를 사용.. 2024. 9. 23.

loading