Skip to content
John Park edited this page Jun 18, 2026 · 11 revisions

Dochi WAS Wiki

  • WAS를 직접 구현하며 구조와 성능을 분석하고 개선한 엔지니어링 과정을 기록하였습니다.
  • Wiki는 '문제 발생 -> 병목 계측 -> 원인 분석 -> 구조 개선 -> 성능 비교' 흐름으로 정리되어 있습니다.
  • 상세 문서는 오른쪽 사이드바에 주제별로 정리되어 있습니다.

프로젝트 맥락과 구조

Dochi WAS 개발을 왜시작했는지, 사용자는 어떻게 실행하는지, 내부 요청 흐름은 어떻게 구성되어 있는지, 어떤 구조로 동작하는지를 설명합니다. 오른쪽 사이드바의 '최상단'에서 다음 문서를 확인할수있습니다.

  • Overview
  • How to use?
  • Sequence & Class Diagram

성능 개선 방향 설정 과정

부하 테스트 환경을 구성하고 병목 분석 기준으로 성능 개선 방향을 세운 과정입니다. 오른쪽 사이드바의 '요청 처리 성능 개선' 부제목 밑에 정리되어 있습니다.

  • 1. 부하 테스트 환경과 통과 기준 설정
  • 2. 성능 분석과 개선 방향

스레드 풀과 I/O 모델 개선 과정

부하 테스트시 P99 Latency 높고 일정 주기로 급증/급감 패턴이 발생하여, 병목 계측 후 원인을 분석하고 해결한 과정입니다. 오른쪽 사이드바의 '스레드 풀과 I/O 모델 개선' 부제목 밑에 정리되어 있습니다.

  • 1. 스레드 풀 증가 실험 기반 확장 스레드 풀 구현
  • 2. 지속 연결 설정값 감소 실험으로 요청량 분산
  • 3. Blocking 병목 해소
  • 4. Virtual Thread 도입 후 성능 비교와 한계

HTTP 요청 처리 로직 개선 과정

워커 스레드풀 동적 확장과 Keep-Alive 옵션 조정하여 성능 개선 후, 요청 처리 로직에서 병목을 계측하고 원인을 분석하면서 해결한 과정입니다. 오른쪽 사이드바의 'HTTP 요청 처리 로직 개선' 부제목 밑에 정리되어 있습니다.

  • 1. 요청 처리 로직의 병목 분석
  • 2. 요청 처리 로직의 병목 개선
  • 3. 요청 처리 로직의 병목 개선 후 성능 비교
  • 4. HTTP 버전 확장성 설계 및 구현
  • 5. HTTP 입력 버퍼링 최적화와 역제어

TCP 연결과 해제 비용 줄이기 과정

HTTP/1.1 Keep-Alive를 직접 구현하고, TCP 연결 재사용 전후의 성능 차이를 비교한 과정입니다. 오른쪽 사이드바의 'TCP 연결과 해제 비용 줄이기' 부제목 밑에 정리되어 있습니다.

  • 1. Keep Alive 구현
  • 2. Keep Alive 구현 전후 성능 테스트 비교

HTTP부터 TCP까지 문제 해결 과정

요청 처리 중 발생한 EOF, 연결 종료, 응답 전송 실패 등 HTTP와 TCP 경계에서 발생한 문제를 분석해서 해결한 과정입니다. 오른쪽 사이드바의 ' HTTP부터 TCP까지 문제 해결' 부제목 밑에 정리되어 있습니다.

  • 1. Request line 읽기시 예상치 못한 EOF
  • 2. 서버가 응답을 보내기 전에 연결 종료

Clone this wiki locally