본문 바로가기

전체 글33

폴링 vs SSE — 무엇을 쓰고 무엇을 아낄 것인가 안녕하세요 졸린개발자입니다. 오늘은 기술 선택에 대한 이야기를 준비해왔습니다. 수백만 동시접속을 처리하는 예매 시스템 설계 영상을 보다가 재미있는 지점을 발견했는데요 KTX 예매 시스템은 대기열 상태 전달에 폴링을 사용하였는데, 토스증권은 반대로 폴링을 걷어내고 SSE를 도입했다는 겁니다. 분명 데이터를 자원 효율적으로 조회하기 위한 하나의 목적이 있는데서로 다른 기술을 선택한 것이죠 코딩하는기술사 — [풀영상] 수백만 동시접속을 처리하는 예매 시스템 아키텍처 설계토스ㅣSLASH 24 — SSE 이벤트 푸쉬로 불필요한 Polling 제거하기 왜 다른 선택을 한 건지제가 만약 도입한다면 어떤 기준으로 선택을 할 것인지에 대해 고민을 해 보았습니다. 참고: 이 글은 하드웨어 리소스 측면에서만 비교하였습니.. 2026. 7. 19.
동기 서버에서 비동기 HTTP 클라이언트가 무조건 성능이 좋은것은 아니다 안녕하세요 졸린개발자입니다. 오늘도 옛날 얘기를 준비해왔습니다.초창기 꼬꼬마 주니어 시절에 섣부르게 했던 결정을 되돌아보는 글입니다. 새 외부 서비스 호출, RestTemplate(동기) 대신 WebClient(비동기)를 선택하였다.새로운 외부 서비스를 호출해야하는 기능을 개발하던 때였습니다. Http 요청을 날려야하는데, Spring에서는 두가지 Http Client를 제공하던 시절이였죠.동기로 동작하는 RestTemplate과, 비동기 기반의 WebClient였습니다. 저는 WebClient를 선택했고, 그 이유는 아주 단순했습니다.RestTemplate의 Javadoc에 아래와 같은 문구가 있었습니다.NOTE: As of 5.0 this class is in maintenance mode, with.. 2026. 6. 15.
비동기 서버의 동작과 주의사항 안녕하세요. 졸린 개발자입니다. 오늘은 저번 포스팅에 이어비동기 서버의 동작과 주의사항에 대해 알아봅시다. 저번 포스팅(동기 서버의 스레드 개수는 몇개로 지정하면 좋을까?) 비동기 서버가 필요한 이유저번 포스팅 마지막에, 비동기 서버가 필요했던 이유에 대해 알아보면서 마무리를 하였습니다. 간단히 다시 살펴보자면동기서버는 스레드 컨텍스트 스위칭으로 인한, 아래와 같은 세가지 이유로 인해 비용이 높아지는 구조였습니다. 1. TCB 변경 비용2. (유저모드 커널모드) 전환비용3. 캐시 사용불가 비동기서버에서는 어떤 방식으로 처리하길래동기서버보다 빨라지게 되는걸까요? 비동기/논블로킹 서버 (이하 비동기서버)비동기 서버에서는 어떻게 요청을 처리할까요? 요청은 EventLoopGroup에 도착하게 됩니다.그리고.. 2026. 5. 6.
동기 서버의 스레드 개수는 몇개로 지정하면 좋을까? 안녕하세요. 졸린 개발자입니다.오늘은 서버의 스레드 개수를 몇개로 설정하면 좋을지에 대해 알아봅시다. 이번 포스팅에서는 동기 서버에 대해서 먼저 알아보고다음 포스팅에서 비동기 서버에 대해 다뤄볼 예정이니 많은 관심 부탁드립니다. 단일 스레드 서버간단한 서버부터 봅시다. 단일 스레드라는것은, 서버가 한번에 하나의 처리만을 할 수 있다는 뜻입니다. 그러면 유저 여러명이 요청을 보내었을때단일 스레드 서버는, 한번에 여러명의 요청을 받지 못한다는 의미일까요? 그건 아닙니다. 큐를 이용하면 되겠죠.요청을 Queue에 넣은 뒤, 하나씩 처리해서 응답을 해주면 되겠죠 이 방법의 문제는 무엇일까요? 1. Queue에 들어간 순서대로 처리가 됩니다. Queue에 순차적으로 들어있기때문에, Queue에 마지막에 들어.. 2026. 3. 14.
Kafka 컨슈머가 리밸런싱이 될 수 있는 케이스 - 한번의 poll로 적은 양의 record를 가져오게 하는게 좋다 안녕하세요. 졸린 개발자입니다. 오늘은 아무런 문제가 없어 보이는데Kafka 컨슈머가 갑작스럽게 리벨런싱될 수 있는 케이스를 소개드립니다. 아래와 같은 오류를 만나면 어떻게 해야할까요?컨슈머가 리밸런싱이 되어 에러 로그를 찍고 있게 되면 어떻게 해야할까요?CommitFailedException: Offset commit cannot be completed since the consumer not part of an active group for auto partition assignment;is likely that the consumer was kicked out of the group. 오류를 보니, 컨슈머 그룹에서 kick out이 되었군요 발생 원인 탐색아래와 같이 아무런 문제도 없어 보이는데 .. 2026. 3. 8.
Cloudflare 장애 리포트에서 배울만한 점 (점진적 배포 / 카나리아 배포) 안녕하세요, 졸린 개발자입니다. 오늘은 Cloudflare 장애 리포트 글을 읽다가배울만한 점이 있어, 여러분들께도 공유하기 위해 이 포스트를 적습니다.(Cloudflare를 비난하기 위한 글이 아님을 밝힙니다.) https://news.hada.io/topic?id=24867 Cloudflare 2025년 12월 5일 장애 | GeekNews2025년 12월 5일 08:47 UTC에 Cloudflare 네트워크 일부가 심각한 장애를 겪었으며, 약 25분 후인 09:12에 완전히 복구됨전체 HTTP 트래픽의 약 28% 가 영향을 받았고, 특정 조건을 만족한 고객만 장애를 경험news.hada.io 배경 요약최근에 프론트에서 아주 핫했던 보안 이슈가 있었죠React Server Components를 사용.. 2025. 12. 6.