HTTP HTTP는 웹상에서 클라이언트와 서버 간에 요청/응답으로 데이터를 주고 받을 수 있는 프로토콜입니다. 클라이언트가 HTTP 프로토콜을 통해 서버에게 요청을 보내면 서버는 요청에 맞는 응답을 클라이언트에게 전송합니다. 이 때, HTTP 요청에 포함되는 HTTP 메소드는 서버가 요청을 수행하기 위해 해야할 행동을 표시하는 용도로 사용합니다. 이 HTTP 메소드 중 GET과 POST의 특징과 차이점을 알아보겠습니다. GET HTTP/1.1 스펙인 RFC2616의 Section9.3에 따르면 GET은 서버로부터 정보를 조회하기 위해 설계된 메소드입니다. GET은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고, 쿼리스트링을 통해 전송합니다. URL의 끝에 ?와 함께 이름과 값으로 쌍을 이루는 요..

아파치 서버 MPM(Apache Multi-Processing Modules) 아파치 서버가 클라이언트에게서 받아들인 요청을 처리하기 위하여 자식 프로세스들에게 분배하는 모듈입니다. prefork 방식과 worker 방식이 있습니다. Prefork 하나의 자식 프로세스가 하나의 스레드를 갖는 구조로, 자식 프로세스는 최대 1024개까지 가능합니다. 프로세스로 운영되기 때문에 스레드 간 메모리 공유를 하지 않습니다(독립적이라 안정적인 대신에 메모리를 많이 사용합니다.). 실행 중인 프로세스 복제하여 실행합니다(메모리 영역까지 같이 복제). 응답 프로세스를 미리 띄워놓고 클라이언트 요청 시 자식 프로세스가 반응하게 되는 방식이며, 일반적으로 single CPU 또는 Dual CPU에서 성능이 좋습니다. wo..

HTTP통신 HTTP통신은 Hyper Text Transfer Protocol의 약자 입니다. Hyper Text(웹 문서를 구성하고 있는 언어인 HTML을 의미합니다)를 전송하기 위한 프로토콜입니다. HTML이란? HTML은 Hyper Text Markup Language의 줄인말로, Hyper Text, 즉 단순하게 text 의미를 넘어서(Hyper) 링크, 이미지 등 다양한 것들을 표현할 수 있다는 의미입니다. HTML은 웹 문서의 뼈대를 구성하는 언어입니다. 모든 웹 문서는 HTML로 이루어져 있고, HTML로 이루어진 문서 만이 브라우저를 통해 웹 문서로서 읽어질 수 있습니다. HTTP의 구성 HTTP통신은 기본적으로 요청(Request)과 응답(Response)으로 이루어져 있습니다. 클라이언..

N계층 구조에서의 성능이란 N계층 서버의 성능을 클라이언트를 제외한 서버군(server farm) 전체가 상호작용하며 클라이언트의 요청을 처리하는 능력입니다. 성능을 개선하기 위해서는 각 계층 서버 용량의 총합이 아니라, 가장 낮은 성능을 가진 자원 혹은 가장 큰 병목지점에 의해 좌우되므로 이점을 유의하며 개선해야 합니다. 어떻게 튜닝할 것인가 하드웨어, 소프트웨어(서버 소프트웨어) 및 운영체제의 메커니즘을 이해해야 합니다. 또한 자료구조 및 알고리즘에 따라 성능이 달라집니다. 그리고 튜닝을 수행함에 있어서 늘 가장 좋은 효과(성능)을 얻을 수 있는 방법은 병목지점을 찾아내고, 그것을 해결하느 ㄴ것입니다. 따라서, 서버 전체의 성능을 분석하는 것 뿐만 아니라 계층 간, 계층 별 성능을 측정할 수 있는 기..

Client/Server Architecture 클라이언트(일반적으로 GUI를 사용하는 어플리케이션)를 서버에서 분리하는 네트워크 구조이다. 각각의 클라이언트 소프트웨어 인스턴스는 서버에 요청을 전송할 수 있다. 하나의 서버에 복수의 클라이언트가 접속하게 된다.(일대다 관계) 서버 유형 어플리케이션 서버(게임, 채팅, 메신저, 증권 거래 서버 등), 파일 및 FTP 서버, 터미널 서버, 메일 및 DNS서버가 있습니다. 클라이언트/서버 기능 서버기능 수동적 서비스 제공자(Passive, Slave), 클라이언트 요청을 처리하기 위해 대기, 요정(request)을 처리한 후, 결과를 클라이언트에 회신(reply) 클라이언트 기능 능동적, 의뢰자(Active, Master), 서버가 수행할 수 있는 요청을 전..

https://12bme.tistory.com/272 [테스트] JMeter와 성능 테스트 1.1 JMeter란 Apache JMeter는 웹 애플리케이션처럼 클라이언트-서버 구조로 된 소프트웨어의 성능 테스트를 위해서 만들어진 100% 순수 자바 프로그램입니다. 스테파노 마조끼가 개발했으며, 이는 현재 톰캣(Tomc.. 12bme.tistory.com load 테스트를 하는 이유 : 시스템의 성능을 벤치 마크하기 위한 테스트를 의미합니다. 이 테스트는 부하(Load)를 순차적으로 증가시키면서 응답시간이 급격히 증가하거나 더는 처리량이 증가하지 않거나 시스템의 CPU와 Memory 등이 기준값 이상으로 증가하는 등 비정상 상태가 발생하는 임계점을 찾아내고 이를 바탕으로 성능 이슈에 대한 튜닝과 테스트를 ..