목록IT (81)
♥️7분 빠른 소식 전달해 드립니다♥️
Shutdown 포트를 제외한 HTTP, HTTPS, AJP 포트는 Connector 속성에 의해 관리된다. address, port 한 호스트 내에서 여러 IP address를 사용하고 있다면 address 속성을 통해 특정 IP address만 listen하도록 설정할 수 있다. 기본 설정 값은 0.0.0.0으로 모든 IP address가 listen한다. o.a.tomcat.util.net.JIoEndpoint 클래스의 bind 메서드를 통해 BIO 방식 Connector의 소켓 생성에 대해 알아본다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 @Override public void bind() throws Exception { ... 생략 ... if (serverSocket..
Apache HTTP Server를 배치하는 경우 Tomcat Connector(mod_jk)를 통해 연결하는 것을 전제로 한다. nginx와 같은 웹서버 제품과 연결하여 구성할 수도 있다. Tomcat은 웹 애플리케이션 서버이면서 하나의 자바 애플리케이션이다. Tomcat을 기동하기 위해서는 JRE(Java Runtime Environment)환경에서 JVM상 o.a.catalina.startup.Bootstrap 클래스를 실행해야 한다. 컨트롤러 기기란? yum(Yellowdog updater, Modified): 레드햇 계열 리눅스 패키지 관리 도구 apt(Advanced Packaging Tool): BSD 계열 리눅스 등에 포팅된 패키징 툴 32bit 자바의 최대 사용 가능 메모리를 2^32(4..
휘발성 영역인 JVM 메모리 내에 세션 객체가 생성되어 있을때 Tomcat이 중지한다면, 메모리 내에 생성되어 있던 모든 세션은 제거된다. Tomcat 인스턴스를 다중화하더라도 특정 Tomcat 인스턴스가 중지한다면 그 Tomcat 내의 세션은 모두 사라지게 된다. 세션을 통해 구현한 범위에 따라 영향도가 달라지나, 흔히 로그인을 다시 해야한다는 등의 상황이 벌어진다. 이러한 문제를 해결하기 위해 세션 클러스터를 사용한다. 동일 업무를 처리하는 여러 인스턴스를 하나의 클러스터 그룹으로 묶으면 멤버들은 자신이 생성하고 변경한 세션 정보를 다른 인스턴스와 공유한다. 갑자기 장애가 발생하여 특정 멤버가 중지하더라도 여전히 다른 인스턴스에서 세션을 가지고 있기 때문에 사용자 세션은 유지된다. 단, 세션 클러스터..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ueQAG/btqwILw214G/dbziTZZbWQPCPxSOjfnAj0/img.png)
The Problem 사람들은 다른 애플리케이션과의 통신을 위해 일반적인 목적의 애플리케이션이나 라이브러리를 사용합니다. 예를 들어, 우리는 웹서버로부터 정보를 가져오고 웹서비스를 통해 원격 프로시저를 호출하기 위해 HTTP 클라이언트 라이브러리를 사용합니다. 그러나, 일반적인 목적의 프로토콜이나 이를 구현한 것은 때때로 그렇게 잘 확장되지 않습니다. 덩치 큰 파일, 전자 메일 메시지, 금융정보와 멀티 플레이어 게임 데이터와 같은 실시간 메시지 교환을 위해 우리는 일반적인 목적의 HTTP 서버를 사용하지는 않을 것입니다. 필요한 것은 특수한 목적을 위해 매우 최적화된 프로토콜 구현입니다. 예를 들면, 여러분은 Ajax 기반 채팅 애플리케이션, 미디어 스트리밍, 혹은 덩치 큰 파일 전송을 위해 최적화된 H..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bvHBsX/btqwHcI7W2T/txQrcDguOAV2fjpMAKvOAk/img.png)
메시지 큐 개념을 다시 잡아보고자 학습용도로 작성한 포스팅입니다. 출처는 http://zzong.net/post/3 입니다. 메시지 지향 미들웨어(Meesage Oriented Middleware: MOM)은 비동기 메시지를 사용하는 다른 응용 프로그램 사이에서 데이터 송수신을 의미합니다. MOM을 구현한 시스템을 메시지 큐(MessageQueue: MQ)라 합니다. 메시지 큐는 별도의 공정 작업을 연기할 수 있는 유연성을 제공하여 SOA(Service-Oriendted Architecture)의 개발에 도움을 줄 수 있습니다. 프로그래밍에서 MQ는 프로세스 또는 프로그램 인스턴스가 데이터를 서로 교환할때 사용하는 방법입니다. 이때 데이터를 교환할 때 시스템이 관리하는 메시지 큐를 이용하는 것이 특징입니..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bn1KPd/btqwHez9oeX/gHMVK6Hv2yOK9jRs5FOw70/img.png)
01. IP 주소와 포트 번호 TCP/IP 프로토콜을 이용해 통신하려면 IP 주소가 있어야 합니다. 또한 인터넷에서 동작하는 각종 서비스를 구분하기 위한 포트 번호를 지정해야 합니다. 이 절에서는 IP 주소와 포트번호의 기본 개념을 살펴보고, 관련 함수의 사용법을 배웁니다. IP 주소와 호스트명 IP 주소는 인터넷을 이용할 때 사용하는 주소로, 점(.)으로 구분된 32비트 숫자로 표시합니다. (예: 192.168.100.51) IP 주소를 네트워크 주소(인터넷 주소) network address(internet address)라고도 합니다. IP 주소는 A~C 클래스로 구분됩니다. 시스템은 주소를 숫자로 구분하는 것이 효율적이지만, 사람은 주소를 이름으로 구분하는 것이 더 편합니다. 따라서 시스템에는 I..
소켓 프로그래밍 기초에서는 TCP/IP 프로토콜이 무엇인지 살펴보고 이를 이용해 네트워크 프로그래밍을 하는 데 필요한 기본 개념을 다뤘습니다. TCP와 UDP의 차이점과 IP주소와 포트 번호의 역할도 알아보았습니다. 또한 TCP/IP 프로토콜 기반 프로그램 작성에 필수적인 소켓 인터페이스 관련 함수와 구조체를 살펴보고 간단한 프로그램도 작성해봤습니다. 네트워크를 통해 데이터를 주고받으며 동작하는 네트워크 프로그램은 일반적으로 서버와 클라이언트로 역할을 구분할 수 있습니다. 서버는 클라이언트의 요청에 따라 다양한 서비스를 제공하는 프로그램으로, 보통 데몬(daemon) 프로세스라고 합니다. 예를 들어, 브라우저를 통해 웹사이트에 접속할 경우 서버에는 웹 서비스를 제공하는 HTTP 데몬이 동작하고 있어 사용..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yFKWa/btqwHcPWxOC/zxkSNCpdeIQ1xgRkeWsS7K/img.png)
블로킹 모드 어떤 시스템 콜을 호출했을때 네트워크 시스템 동작이 완료할때까지 그 시스템 콜에서 프로세스가 멈춥니다. 소켓 생성시 디폴트는 default 모드입니다. listen(), connect(), accept(), recv(), send(), read(), write(), recvfrom(), sento(), close() block 될 수 있는 소켓 시스템 콜입니다. I/O시 처리될 때까지 기다려야하기 때문에 비동기적인 작업 수행 불가능하게 됩니다. 일대일 통신을 하거나 프로그램이 한가지 작업만 하면 되는 경우는 blocking 모드로 프로그램을 작성할 수 있습니다. 논블로킹 모드 소켓 관련 시스템 콜에 대하여 네트워크 시스템이 즉시 처리할 수 없는 경우라도 시스템콜이 바로 리턴되어 응용 프로그램..