새로운 포스트
-
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 핵심 차이.. -
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..
-
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.. -
JVM [JVM] invokevirtual과 invokeinterface — 바이트코드부터 vtable/itable까지 이전 포스트에서 클래스 로딩과 Klass 구조를 다뤘습니다. 이번엔 그 위에서 메서드 호출이 실제로 어떻게 이뤄지는지를 살펴보겠습니다. 1. invoke 명령어 종류Java 메서드 호출은 상황에 따라 다른 바이트코드로 컴파일됩니다.바이트코드대상invokevirtual일반 인스턴스 메서드invokeinterface인터페이스 메서드invokespecial생성자, private, super 호출invokestaticstatic 메서드invokedynamic람다, 동적 호출 이 중 invokevirtual과 invokeinterface가 동적 디스패치(dynamic dispatch)가 일어나는 핵심 명령어입니다. 둘 다 런타임에 실제 객체 타입을 확인해 메서드를 찾지만, 내부 구조는 다릅니다. 2. 바이트코드 ..
-
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..