새로운 포스트
-
Istio
[Istio] 8편: 모니터링과 관찰 가능성, 그리고 Istio 메트릭 정리
-
Istio
[Istio] 7편: Istio 복원력 - 로드밸런싱, 재시도, 서킷브레이커
-
Istio
[Istio] 6편: 트래픽 관리 실전 - 배포와 릴리스의 분리부터 카나리, 미러링, 외부 서비스 연동까지
-
Istio
[Istio] 5편: 이스티오 게이트웨이 실무 편 - 책임 분리, 주입, 로그, 설정 관리
-
Istio
[Istio] 4편: 이스티오 게이트웨이 - 인그레스 포인트에서 라우팅까지
-
Istio
[Istio] 3편: 이스티오 엔보이(Envoy) 프록시 파헤치기 - 개념부터 핵심 기능까지
-
Istio
[Istio] 2편: Istio 첫걸음 - CRD부터 관찰가능성까지, 핵심 컴포넌트 훑어보기
-
Istio
[Istio] 1편: 서비스 메시(Service Mesh)를 제대로 이해하기 - 문제부터 Istio까지
다른 사람들이 관심있어한 포스트
-
Techfork [26/01/28] 오늘의 개발 일지 - 웹 Apple 소셜 로그인 구현 오늘은 웹에서 Apple 소셜 로그인을 할 수 있도록 REST API 문서를 보고 구현했습니다. 애플 로그인은 카카오 로그인보다 훨씬 까다롭더군요...https://developer.apple.com/documentation/signinwithapplerestapi Sign in with Apple REST API | Apple Developer DocumentationCommunicate between your app servers and Apple’s authentication servers.developer.apple.com 웹 Apple 로그인 구현 가이드TechFork 프로젝트의 Spring Security OAuth2 기반 Apple 소셜 로그인 구현⚠️ Apple vs Kakao 핵심 차이.. -
JVM [JVM] 가비지 컬렉터의 역사 (6) - ZGC와 Generational ZGC: 서브밀리초 GC의 모든 것 이전 포스트에서 Shenandoah는 Brooks Pointer를 사용해 동시 압축을 구현했습니다.https://dmoritle.tistory.com/174 [JVM] 가비지 컬렉터의 역사 (5) - Shenandoah GC: 동시 이주 실현한 Low-Latency 가비지 컬렉터서론: 왜 Low-Latency GC가 필요해졌는가하드웨어 성장이 만든 역설1990년대부터 2000년대 초반까지 JVM 힙 메모리는 수백 MB 수준이었습니다. 그러나 메모리 가격 하락과 64비트 아키텍처의 보편화로dmoritle.tistory.com ZGC는 같은 목표를 Colored Pointer와 Load Barrier로 달성하되, 구현 전략은 정반대에 가깝습니다. 1. ZGC 개요ZGC란?ZGC(Z Garbage Colle..
-
Spring [Spring] Spring의 비동기 처리 — @Async부터 Virtual Thread 통합까지 들어가며이전 포스트에서 자바의 네 가지 동시성 구현 메커니즘(Thread, Executor, Fork/Join, Virtual Thread)을 살펴보았습니다. 이번 포스트에서는 Spring Framework가 이 위에서 비동기 처리를 어떻게 추상화하는지 정리합니다. Spring은 @Async 어노테이션 하나로 메서드를 비동기로 실행할 수 있게 해줍니다. 편리하지만, 내부 동작 원리를 이해하지 못하면 "분명히 @Async를 붙였는데 동기로 실행된다"는 문제를 마주치게 됩니다. 이 포스트에서는 설정부터 동작 원리, 흔한 함정, 그리고 Spring Boot 3.2+에서의 Virtual Thread 통합까지 다룹니다. 1. @Async와 ThreadPoolTaskExecutor 설정1-1. @EnableAsyn..
-
Spring [Spring] Spring MVC + Tomcat vs Spring WebFlux + Netty, 그리고 Virtual Thread까지 Spring 기반 웹 애플리케이션의 동시성 모델을 비교하고, JDK 21의 Virtual Thread가 가져온 패러다임 변화를 정리합니다.1. 두 가지 동시성 모델Spring MVC + Tomcat: Thread-per-RequestSpring MVC는 thread-per-request 모델을 사용한다. 요청이 들어오면 Tomcat의 스레드 풀(기본 200개)에서 스레드 하나를 할당하고, 해당 스레드가 컨트롤러 → 서비스 → DB 호출까지 전부 담당한다. DB I/O 같은 블로킹 작업이 발생하면 해당 스레드는 응답이 올 때까지 대기(blocking) 상태에 놓인다. Spring WebFlux + Netty: Event LoopSpring WebFlux는 Event Loop 모델을 사용한다. Netty의 .. -
Techfork [26/02/18] 오늘의 개발 일지 - Cloudflare 환경에서 Nginx 프록시 헤더 잘 사용하기 Cloudflare 환경에서 Nginx 프록시 헤더가 하는 일개요소셜 로그인의 리다이렉트 URL이 https가 아닌 http로 나가는 문제가 있었습니다. OAuth2 provider에 등록된 redirect URI와 불일치해서 로그인 자체가 실패하는 상황이었는데, 원인을 추적해보니 Cloudflare + Nginx 환경에서 프록시 헤더가 제대로 전달되지 않는 문제였습니다. 여기서는 TLS 종료 지점에 따른 Nginx 프록시 헤더에 대해 자세하게 다뤄보겠습니다. Nginx 설정에 있는 proxy_set_header 4줄이 각각 왜 필요한지, Cloudflare가 아니라 Nginx에서 직접 TLS를 처리하면 어떻게 달라지는지 비교합니다. Nginx 설정 전체먼저 TechFork의 실제 default.conf..