최근 포스트

JVM의 구조와 Java 프로젝트 실행시 동작 흐름

우리가 작성한 자바 프로그램이 동작하기 위해서는 javac 명령어를 통해 .java 파일을 .class 바이트코드로 컴파일한 뒤 java 명령어를 통해 이 .class 코드를 JVM이 읽어 실행해야한다. JVM은 여러 구성요소들로 이루어져 있으며 이 요소들이 유기적을 연결되어 프로...

Message Queue

Message Queue에 대해 알아보기 전에 컴퓨팅 시스템에서 Queue가 어떤 의미를 가지는지 훑고 넘어가자. 컴퓨팅 시스템에서 서로 다른 시스템 간 커뮤니케이션을 할때, 그 중간에 Queue를 두는 것이 일반적이다.

분산 시스템 이해하기

근래 MSA, 쿠버네티스, 카프카 등 대규모 서비스에서 사용되는 여러가지 기술들에 대해 눈으로 보고 귀를 듣는 경우가 많아졌다. 꽤나 예전부터 학습하고자 하는 마음에 관련 포스트들을 북마크에 쟁여 놓고 있었는데 일련의 경험이 트리거가 되어 드디어 그 보따리를 풀게 되었다. 먼저, ...

Nginx 블로킹 문제점과 쓰레드풀

Nginx는 이벤트 기반의 비동기-논블로킹 방식을 사용한다. 덕분에 다량의 트래픽을 빠르게 처리하는 것이 가능하다. 하지만 Nginx의 이런 동작구조에서도 ‘블로킹’ 문제가 발생하는 이벤트들이 존재하였고 이 문제를 보완하기 위해 쓰레드 풀 매커니즘을 추가하게 되었다.

Nginx. Apache와 비교하며..

현재(2023년 9월 기준) 가장 인기있는 웹서버가 무엇이냐고 물어보면 단언컨대 Nginx가 빠질 수 없다. Nginx는 2004년 출시 이후 꾸준히 웹서버 시장에서 점유율을 높이기 시작했다. 2008년 모바일 시장이 본격화됨에 따라 급부상하여 현재에 이르러 시장 점유율 34% 기...