분류 전체보기
-
[CS] DispatcherServlet, filter, interceptorComputer Science/CS 2024. 4. 29. 15:54
Servlet서블릿은 자바 언어를 웹 애플리케이션에서 개발하기 쉽게 하기 위해 만든 API이다.자바 웹 페이지를 접근하기 위한 API를 제공한다. DispatcherServletDispatcher는 "급파자", "보내다" 라는 의미이다.→ 가장 먼저 요청 받고, 처리할 컨트롤러를 찾아서 정해주는 역할이다. 클라이언트로부터 어떠한 요청이 오면 톰캣과 같은 서블릿 컨테이너가 요청을 받게 된다.그리고 이 모든 요청을 프론트 컨트롤러인 디스패처 서블릿이 가장 먼저 받게 된다. 그러면 디스패처 서블릿은 공통적인 작업을 먼저 처리한 후에 해당 요청을 처리해야하는 컨트롤러를 찾아서 작업을 위임한다. FrontController는 주로 서블릿 컨테이너의 제일 앞에서 서버로 들어오는 클라이언트의 모든 요청을 받아서 처리..
-
[CS] Load balancingComputer Science/CS 2024. 4. 10. 10:42
로드 밸런싱 부하분산 트래픽을 분산시켜주는 컴퓨터 네트워크 기법 여러 서버가 분산 처리하는 것 사용자가 많아져 트래픽이 하나의 서버로 몰리지 않도록 적절하게 분배시키는 역할 로드 밸런싱의 종류 ● L4 Transport계층을 사용, IP주소와 포트 번호 부하 분산이 가능 ▷장점 - 패킷의 내용을 확인하지 않고 로드를 분산하므로 속도가 빠르고 효율이 높음 - 데이터의 내용을 복호화할 필요가 없기에 안전 - L7 로드 밸런서보다 가격이 저렴 ▷ 단점 - 패킷의 내용을 살펴볼 수 없으므로, 섬세한 라우팅 불가 - 사용자의 IP가 수시로 바뀌는 경우라면, 연속적인 서비스를 제공하기 어려움 ● L7 Application계층을 사용, URL 또는 HTTP헤더에서 부하 분산이 가능 - L4로드밸런서의 기능을 더하여,..
-
[CS] Proxy PatternComputer Science/CS 2024. 4. 9. 16:07
프로그래밍에서 프록시 패턴은 소프트웨어 설계 패턴이다. 프록시 패턴은 대상 원본 객체를 대리하여 대신 처리하게 함으로써 로직의 흐름을 제어하는 행동 패턴이다. 객체 지향 프로그래밍에 접목해보면 클라이언트가 대상 객체를 직접 쓰는 것이 아니라 프록시(대리인)을 거쳐서 쓰는 코드 패턴이라고 보면 된다. 따라서 대상 객체(subject)의 메소드를 직접 실행하는 것이 아닌, 대상 객체에 접근하기 전에 프록시 객체의 메서드를 접근한 후 추가적인 로직을 처리한뒤 접근하게 된다. 구체적으로 인터페이스를 사용하고 실행시킬 클래스에 대한 객체가 들어갈 자리에 대리자 객체를 대신 투입한다. 클라이언트 쪽에서 실제 실행시킬 클래스에 대한 객체를 통해 메서드를 호출하고 반환 값을 받는지, 대리자 객체를 통해 메서드를 호출하..
-
[Network] Proxy, Reverse ProxyProgramming/SpringBoot 2024. 4. 3. 16:35
proxy란? "대리"라는 의미로 내부 네트워크에서 인터넷 접속을 할 때 빠른 액세스나 안전한 통신 등을 확보하기 위한 중계 서버를 "프록시 서버"라고 한다. proxy server 서버와 클라이언트 사이에 중계기로, 대리로 통신을 수행하는 것 클라이언트와 웹 서버간의 중개자 역할을 하는 서버이다. 프록시 서버는 크게 포워드 프록시, 리버스 프록시로 나뉜다. - 포워드 프록시는 클라이언트 - 리버스 프록시는 서버쪽의 설정을 한다. Forward Proxy 우리가 흔히 말하는 '프록시 서버'란 포워드 프록시 서버를 의미한다. 프록시 서버는 클라이언트 앞에 놓여 있다. 클라이언트가 웹 서버에 요청을 보내면 중간에서 그 요청을 프록시 서버가 가로챈다. 프록시 서버는 해당 요청을 웹 서버에게 다시 보내고, 웹 ..
-
[CS] polling push pullComputer Science/CS 2024. 4. 2. 15:04
방식 Pull ex) http request 클라이언트가 서버에게 데이터를 요청하는 것 Polling ex) ajax 하나의 장치(프로그램)가 충돌 회피 또는 동기화 처리 등을 목적으로 다른 장치(프로그램)의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 송수신 등의 자료처리를 하는 방식 (주기적으로 서버에 연산을 요청) Loop 및 while문 내에서 반복적으로 외부 입력을 감시하는 문법으로 구현된다. Real-Time 웹을 위한 기법으로, 일정한 주기를 가지고 서버와 응답을 주고 받는 방식 (RealTime : 사용자가 즉시라고 느낄 정도로 충분히 빠르거나, 컴퓨터 외부에서 진행되는 처리에 빠르게 동작하는 컴퓨터 반응 수준) polling은 http의 단점을 보완하기 위해 고안된 기법이다. 웹이..
-
[CS] 웹 서비스 구조Programming/SpringBoot 2024. 3. 27. 18:30
정적 페이지 (Static Pages) 데이터베이스에서 정보를 가져오거나 등 별도의 서버에서의 처리가 없어도, 사용자들에게 보여줄 수 있는 페이지. 어떠한 사용자가 오던간에 동일한 페이지를 보여준다. Ex) image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들 동적 페이지 (Dynamic Pages) 서버의 데이터베이스에서 정보를 가져와서 처리하는 것처럼, 어떠한 요청에 의하여 서버가 일을 수행하고 해당 결과가 포함된 파일을 보여주는 페이지. 사용자들마다 다른 페이지가 보여질 수 있다. Web Server 클라이언트의 요청에 따라 정적 파일을 응답하여 제공하는 소프트웨어 nginx WAS (Web Application Server) 클라이언트의 요청에 대해 동적인..
-