Development
-
nginx 설정 관련 업무를 진행하다, nginx에 http2 설정을 켜는 방법을 알게 되었다.기존에는 keepalive 설정으로 http1.1을 사용하고 있었는데 http2.0과에 어떤 차이가 있는지 알아보자. HTTP/2 정의 HTTP/2는 HTTP/1.1의 성능 한계를 개선하기 위해 만든 차세대 전송 프로토콜로, 기본적으로 TCP 위에서 동작하며 요청 병렬성 향상, 헤더 압축, 지연 최소화를 목표로 함브라우저 ↔ 서버 간 통신 효율을 극대화하기 위한 버전 HTTP/2 주요 특징구분설명멀티플렉싱(Multiplexing)하나의 TCP 커넥션 위에서 여러 요청/응답을 동시에 처리 가능. (HTTP/1.1은 요청 순서에 막힘 발생: head-of-line blocking)스트림(Stream)요청/응답 단..
[Web] HTTP2.0 & HTTP1.1nginx 설정 관련 업무를 진행하다, nginx에 http2 설정을 켜는 방법을 알게 되었다.기존에는 keepalive 설정으로 http1.1을 사용하고 있었는데 http2.0과에 어떤 차이가 있는지 알아보자. HTTP/2 정의 HTTP/2는 HTTP/1.1의 성능 한계를 개선하기 위해 만든 차세대 전송 프로토콜로, 기본적으로 TCP 위에서 동작하며 요청 병렬성 향상, 헤더 압축, 지연 최소화를 목표로 함브라우저 ↔ 서버 간 통신 효율을 극대화하기 위한 버전 HTTP/2 주요 특징구분설명멀티플렉싱(Multiplexing)하나의 TCP 커넥션 위에서 여러 요청/응답을 동시에 처리 가능. (HTTP/1.1은 요청 순서에 막힘 발생: head-of-line blocking)스트림(Stream)요청/응답 단..
2025.11.10 -
성능 테스트를 진행하기 위해서 타겟이 되는 서비스에서 호출하는 외부 API mocking이 필요하게 되었다. 간단하게 python을 이용하여 웹서버를 띄워서 목적을 달성해 보자. flask자바에서 대표적인 웹 개발 프레임워크는 스프링이다.이와 유사하게 파이썬에서도 flask 웹 개발 프레임워크가 존재한다.이를 이용하여 간단하게 웹서버를 띄울 수 있다. 실행 환경 세팅 sudo apt install python3.12-venvpython3 -m venv venvsource venv/bin/activatepip install flaskpip install gunicornpip install gevent 대체 API 코드 작성 from flask import Flask, jsonify, requestimp..
[Test] 외부 API mocking성능 테스트를 진행하기 위해서 타겟이 되는 서비스에서 호출하는 외부 API mocking이 필요하게 되었다. 간단하게 python을 이용하여 웹서버를 띄워서 목적을 달성해 보자. flask자바에서 대표적인 웹 개발 프레임워크는 스프링이다.이와 유사하게 파이썬에서도 flask 웹 개발 프레임워크가 존재한다.이를 이용하여 간단하게 웹서버를 띄울 수 있다. 실행 환경 세팅 sudo apt install python3.12-venvpython3 -m venv venvsource venv/bin/activatepip install flaskpip install gunicornpip install gevent 대체 API 코드 작성 from flask import Flask, jsonify, requestimp..
2025.09.30 -
지금까지 keepalive timeout이 지나면 tcp 연결이 끊어진다고 이해하고 있었는데 꼭 그런 것만은 아닌 거 같다. Nginx Nginx의 경우에는 http 블록의 keepalive timeout 설정은 client-nginx 간의 연결에 대한 설정이다. 만약 해당 설정을 0이라면 client-nginx 간의 tcp 연결은 매번 다시 맺어야 한다. 이렇게 알고 있어서 keepalive는 tcp 연결과의 관계라고만 생각했다. Load Balancer하지만 Nginx 이외에 Cloud 상품인 Load Balancer의 keepalive timeout에 대해서 알아보게 되었는데여기서는 keepalive timeout이 0이면tcp 연결은 유효하지만 http 세션이 끊긴다. (persistent c..
Keepalive -TCP/HTTP지금까지 keepalive timeout이 지나면 tcp 연결이 끊어진다고 이해하고 있었는데 꼭 그런 것만은 아닌 거 같다. Nginx Nginx의 경우에는 http 블록의 keepalive timeout 설정은 client-nginx 간의 연결에 대한 설정이다. 만약 해당 설정을 0이라면 client-nginx 간의 tcp 연결은 매번 다시 맺어야 한다. 이렇게 알고 있어서 keepalive는 tcp 연결과의 관계라고만 생각했다. Load Balancer하지만 Nginx 이외에 Cloud 상품인 Load Balancer의 keepalive timeout에 대해서 알아보게 되었는데여기서는 keepalive timeout이 0이면tcp 연결은 유효하지만 http 세션이 끊긴다. (persistent c..
2025.09.26 -
최근에 포스팅을 통해서 성능 테스트의 개념 및 종류를 알아보았으니 이제 실제로 수행해보자.(https://kkang-joo.tistory.com/180) 성능테스트를 실행할만한 다양한 오픈소스 툴이 제공되어지는데그중에 접근성이 좋고, 설정파일도 yml 형식이라 간단해보이는 Artillery를 선택하게 되었다. Artillery의 특징 및 사용 방법을 알아가보자. ArtilleryArtillery는 성능 테스트 및 부하 테스트를 위한 오픈소스 툴Node.js 기반에서 실행API, 웹 애플리케이션, 서버의 성능을 검증하는 데 유용하며, 특히 HTTP, WebSocket, GraphQL, Socket.io, Kinesis 등의 프로토콜을 지원-> Artillery는 가볍고 설정이 간편한 성능 테스트 툴로, ..
[Test] Artillery - 성능테스트최근에 포스팅을 통해서 성능 테스트의 개념 및 종류를 알아보았으니 이제 실제로 수행해보자.(https://kkang-joo.tistory.com/180) 성능테스트를 실행할만한 다양한 오픈소스 툴이 제공되어지는데그중에 접근성이 좋고, 설정파일도 yml 형식이라 간단해보이는 Artillery를 선택하게 되었다. Artillery의 특징 및 사용 방법을 알아가보자. ArtilleryArtillery는 성능 테스트 및 부하 테스트를 위한 오픈소스 툴Node.js 기반에서 실행API, 웹 애플리케이션, 서버의 성능을 검증하는 데 유용하며, 특히 HTTP, WebSocket, GraphQL, Socket.io, Kinesis 등의 프로토콜을 지원-> Artillery는 가볍고 설정이 간편한 성능 테스트 툴로, ..
2025.03.25