반응형

WEB WAS/미들웨어 27

Coherence 란?

Coherence 란? => Oracle 에서 제공하는 In-Memory Data Grid => 대규모 데이터를 분산하여 저장 및 액세스 할 수 있는 분산 캐시 시스템 => 여러 서버 노드에 데이터를 자동으로 분산하여 저장 => 데이터에 대한 고속 액세스 제공 주요 기능 1. 데이터 분산 : 데이터를 여러 서버 노드에 자동으로 분산하여 저장 데이터 부하 분산 및 확장성 향상 2. 데이터 캐싱 : 데이터를 메모리에 캐싱하여 빠른 액세스 제공 캐시된 데이터는 빠르게 액세스 할 수 있고 반복적인 액세스를 줄일 수 있음 3. 고가용성 : 데이터의 복제와 장애 조치 기능을 제공 하나 이상의 복제본을 유지하여 데이터 손실 없이 서비스 지속 가능 4. 분산 쿼리 및 계산 : 복잡한 쿼리를 분산하여 병렬 처리 및 결과..

세션 클러스터링 (Session Clustering) 이란?

세션 클러스터링이란? => 여러 서버에 걸쳐 세션 데이터를 분산 저장하고 관리하는 기술 => 일반적으로 웹 어플리케이션은 세션을 사용하여 클라이언트의 상태를 유지하고 사용자에게 일관된 경험을 제공함 => 단일서버 실행 시 서버 장애 또는 부하 분산의 어려움으로 인해 세션 데이터 손실 및 서비스 중단의 위험이 존재 - 이러한 문제를 해결하기 위해 여러 서버 간 세션 데이터 공유 및 동기화 방법 제공 => 클러스터링 된 환경에서는 각 서버가 동일한 세션 데이터를 사용하며, 클라이언트의 요청이 동일한 세션에 접근하더라도 서버 간에 세션 데이터를 공유하여 일관성을 유지함 장점 - 고가용성 : 세션 클러스터링을 통해 여러 서버간에 세션 데이터를 공유하므로 단일 서버 장애 시 세션 데이터 유실 없이 서비스 지속 가..

vhosts 란? (Virtual Hosts)

vhosts란? => 가상 호스트 라고 하며 한 서버에 여러 도메인을 등록하여 사용한다는 의미 => 하나의 물리적인 서버를 사용하여 다수의 독립적인 웹사이트를 운영할 수 있음 => 클라이언트의 요청에 대한 도메인 이름을 기반으로 적절한 가상 호스트 설정을 찾아 처리함 => 하드웨어 및 운영 비용 절감 => 독립된 도메인 간 서로 영향을 주지 않고 개별적 관리 가능 장점 - 비용절감 : 단일 서버에서 여러 도메인을 호스팅 할 수 있어 하드웨어 및 운영 비용이 절감됨 - 자원공유 : 서버 자원을 효율적으로 공유할 수 있음 (CPU, Memory, 대역폭 등 여러 도메인 간 나누어 사용 가능) - 유연성 : 각 도메인을 독립적으로 관리할 수 있으므로 하나의 도메인이나 어플리케이션 장애가 다른 도메인에 영향을 ..

Apache Tomcat vs WebLogic

Apache Tomcat과 WebLogic은 둘 다 WAS의 종류에 속하는 서버 소프트웨어 이다. Apache Tomcat - 오픈소스 기반의 WAS - 가벼운 웹 어플리케이션을 실행하는데 사용됨 - 주로 Servlet 및 JSP (JavaServer Pages) 컨테이너 로서 동작함 - 서블릿 기반의 어플리케이션을 호스팅 하고 처리함 - Java EE (Java Enterprise Edition) 대부분의 기능을 제공함 - 스레드 기반으로 동작 Oracle WebLogic - 상용 WAS로서 Oracle Corporation 에서 개발 및 유지보수 - 기업의 대규모 및 복잡한 어플리케이션 실행 시 사용 - Java EE 표준 사양을 완벽히 준수 및 기술 지원 (Java Message Service, E..

서블릿 (Servlet)이란?

서블릿이란? => Servlet => 자바를 사용하여 웹 어플리케이션을 개발하기 위한 기술 => 서버 측에서 동적 웹 페이지를 생성하고 클라이언트에 대해 응답을 제공 => 자바 언어를 기반으로 작성되며 웹 서버에서 실행되는 작은 프로그램 단위 => 웹 요청과 응답의 흐름을 간단한 메소드 호출만으로 체계적으로 다룰 수 있게 함 => 웹 컨테이너에서 이것을 실행함 - 서블릿 인스턴스 생성 후 서버에서 실행됨 특징 - HTML을 사용하여 응답 - JAVA 스레드 이용 - UDP보다 속도가 느림 - HTML변경 시 Servlet을 재 컴파일 해야함 참고 https://coding-factory.tistory.com/742 [Web] 서블릿(Servlet)이란 무엇인가? 서블릿 총정리 서블릿(Servlet)이란?..

3-way Handshake 란? (TCP 통신, 4-way Handshake)

TCP 란? => Trasmission Control Protocol => 인터넷상에서 데이터를 신뢰성있게 전송하기 위해 사용되는 프로토콜 => 패킷 기반의 통신이며 데이터 분할, 전송 순서 제어, 에러 검출 및 복구 담당 3-way Handshake 란? => TCP 통신 시작 전 클라이언트와 서버 간 논리적 연결을 설정하기 위해 사용 3-way Handshake 3단계 1. 클라이언트는 서버에게 SYN (Synchronize Sequence Number) 패킷 으로 연결 요청 - 클라이언트가 서버와 통신을 시작하고자 알리는 역할 2. 서버는 클라이언트의 연결 요청을 받고 클라이언트에게 수락의 의미인 ACK(SYN+ACK) 패킷 전송 3. 클라이언트는 서버의 ACK 패킷을 받고 이에 대한 확인 ACK를..

MPM (Multi-Processing Module) 이란?

MPM이란? => 웹 서버에서 동시에 여러 개의 클라이언트 요청을 처리하는 방법을 제공하는 모듈 => 웹 서버 성능 및 확장성 향상 아파치에서 사용되는 MPM 3가지 1. Prefork MPM => 여러개의 프로세스를 생성하여 각각이 독립적인 클라이언트 요청 처리 => 단일 스레드로 동작하며 요청 하나 당 프로세스 할당 => 프로세스 별 자체 메모리 보유 - 독립적 환경으로 동작 => 안정성이 높지만 프로세스 간 오버헤드가 있고 메모리 사용량이 많아 성능이 떨어질 수 있음 2. Worker MPM => 멀티 스레드 기반 => 여러개의 프로세스를 생성하고 각 프로세스는 여러 스레드로 클라이언트 요청 처리 => Prefork MPM 보다 메모리 사용량이 적고 처리량과 동시성이 높음 => 스레드 간 동기화와 ..

GSLB 란? (Global Server Load Balancing)

GSLB 란? => 여러 지리적 위치에 분산된 서버 및 데이터 센터 간의 부하 분산을 관리하는 기술 => 주로 웹 사이트, 어플리케이션, 클라우드 서비스에 사용됨 => DNS 기반으로 작동 (+ health check, active/backup 지정 가능) 1. 사용자가 웹사이트에 접속 요청 2. DNS 쿼리 실행 -> 도메인 이름을 IP 주소로 변환 3. GSLB 사용 시 DNS 서버는 사용자의 위치, 서버 상태, 트래픽 조건 등을 고려하여 적합한 IP 주소 반환 이때, 다중화 되어있는 서버의 상태를 확인하여 IP 주소를 반환해준다. ex. A 서버는 active 상태, B서버는 Back-up 상태일 경우 A 서버를 반환해주고 두 서버 모두 active 상태 일 경우 로드 밸런서로의 기능으로 부하 분산..

L4 부하 분산 - 로드밸런싱 방법 (해시, R.R, LC)

L4 (Transport Layer) 부하분산 => 네트워크 트래픽을 전송 계층에서 분산 시키는 방법 IP 해시 => 클라이언트의 소스 IP 주소(+ port 도 될 수 있음)에 따라 트래픽을 특정 서버에 할당한다. => 세션 연결 유지 목적 => IP 주소가 변경되면 서버에 할당된 부하분산이 변경될 수 있다. => 동일한 사용자에 대해 동일한 서버로 연결됨 라운드 로빈 (Round Robin) => 모든 서버에 동일한 순서로 트래픽을 분산 시킴 => 간단하고 구현이 쉽다. => 서버간의 성능이 비슷한 경우에 사용됨 => 5대의 서버가 있다면 5부터 1 다시 1부터 5 이러한 방식으로 분산됨 => 경로보장 x 가중 라운드 로빈 (Weighted Round Robin) => 서버마다 가중치를 지정하여 트래..

GC (Garbage Collection, G1GC 란?)란? - Heap Memory

GC (Garbage Collection) => 자바 프로그램에서 동적 할당된 객체들 중에서 사용되지 않는 객체들을 자동으로 탐지하여 해제하는 프로세스 => 메모리 누수와 같은 일반적인 메모리 관리 문제를 해결하기 위해 사용 => Heap Memory 에서 사용되지 않는 객체를 식별하고 회수하여 메모리를 재사용 할 수 있음 Heap Memory 란? => 자바에서 동적으로 생성된 객체들이 저장되는 메모리 영역 => JVM 메모리 구조 중 하나 => 프로그램 실행 중 필요한 객체들이 할당되고 관리 => 크기가 유동적이며, GC 대상임 GC 알고리즘 : 사용되지 않는 객체를 식별하고 해제하는 방법 / App의 요구사항과 환경에 맞는 알고리즘 선택 GC 구성요소 New 영역 1. 객체 동적 할당 : new 영..

JDBC 란?

JDBC란? => Java Database Connectivity => 데이터 베이스에 대한 표준화 된 접근 방식 제공 => DBMS에 독립적으로 작성된 자바 어플리케이션이 데이터 베이스와 통신 가능 구성 자바 어플리케이션 -> JDBC API -> JDBC 드라이버 -> 데이터 베이스 JDBC 흐름 JDBC 드라이버 로드 -> DB 연결 -> 데이터 추가 및 수정 (SQL 문 사용) -> 결과처리 -> DB 연결 종료 JDBC 소스 예제 (간단한 SELECT문 사용 예제) => MySQL DB 내 customers 테이블 데이터 조회 import java.sql.*; public class JdbcExample { public static void main(String[] args) { // JDBC ..

아파치, 톰캣 연결법 (3가지)

mod_jk => 아파치 웹 서버와 톰캣 사이의 통신 담당 (AJP 프로토콜 사용) => 아파치 웹 서버에서 동적인 요청을 톰캣으로 전달 장점 - 높은 처리량 : AJP 프로토콜을 사용하여 아파치와 톰캣 간 효율적 통신 지원 - 유연한 설정 : workers.properies 파일을 사용하여 톰캣 서버와의 통신 설정을 자세히 할 수 있음 단점 - 설정 복잡성 : 사용자가 구성 옵션을 정확히 이해하고 설정해야 함 - 모듈 추가 필요 : mod_jk 모듈을 따로 설치하고 활성화 해야함 mod_proxy => 아파치 웹 서버를 프록시 서버로 동작 시켜 클라이언트의 요청을 톰캣과 같은 백엔드 서버로 전달 => HTTP, HTTPS 프로토콜 지원 장점 - 단순한 설정 : 아파치 웹서버 내장 모듈이므로 추가 설치 ..

반응형