새로운 포스트
-
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까지
다른 사람들이 관심있어한 포스트
-
Istio [Istio] 8편: 모니터링과 관찰 가능성, 그리고 Istio 메트릭 정리 1. 모니터링(Monitoring) vs 관찰 가능성(Observability)구분모니터링관찰 가능성질문 유형"이 값이 정상 범위인가?""왜 이런 일이 벌어졌는가?"대상알려진 문제 (known-unknowns)미지의 문제 (unknown-unknowns)접근사전 정의된 대시보드·알림임의의 질문에 답할 수 있는 데이터 구조관계관찰 가능성을 구현하는 하나의 활동모니터링을 포함하는 더 넓은 시스템 속성관찰 가능성은 제어 이론(control theory)에서 온 개념으로, 시스템 내부 상태를 외부 출력만으로 추론할 수 있는 능력을 뜻합니다.이를 위한 세 기둥(Three Pillars)이 Metrics(집계된 수치), Logs(이산 이벤트), Traces(요청의 전체 흐름 추적)입니다.다만 세 기둥은 각자 따로 ..
-
JVM [JVM] CDS와 AppCDS - JVM이 클래스 로딩을 캐싱하는 방법 JVM 인터널 시리즈이전 글에서 ClassLoader가 .class 파일을 찾아 InstanceKlass로 변환하는 과정을 살펴봤습니다.이번 글은 그 연장선입니다. JVM이 매번 같은 작업을 반복하지 않도록 결과를 캐싱하는 방법, Class Data Sharing(CDS) 을 다룹니다. 1. 왜 JVM 시작이 느린가?java -jar app.jar를 실행하는 순간, JVM은 애플리케이션이 첫 번째 요청을 처리하기 전까지 상당한 양의 작업을 수행합니다. 전형적인 Spring Boot 애플리케이션은 완전히 초기화되기까지 15,000~25,000개의 클래스를 로드합니다. 각 클래스는 아래의 단계를 거칩니다.Loading : .class 파일 탐색 → 바이트코드 읽기/파싱 → InstanceKlass 생성 ..
-
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 Security [Spring Security] Spring Security 환경에서 CORS 제대로 이해하고 설정하기 CORS란?CORS(Cross-Origin Resource Sharing)는 브라우저가 현재 페이지의 출처(Origin)와 다른 출처로 HTTP 요청을 보낼 때 적용되는 보안 정책이다. 여기서 Origin이란 프로토콜 + 호스트 + 포트의 조합을 말하며, 이 중 하나라도 다르면 Cross-Origin으로 간주된다. 예를 들어 프론트엔드가 http://localhost:3000, 백엔드가 http://localhost:8080이면 포트가 다르므로 Cross-Origin이다. 중요한 점은 CORS는 서버가 아닌 브라우저가 적용하는 정책이라는 것이다. 서버 간 통신이나 Postman 같은 도구에서는 CORS가 적용되지 않는다. 브라우저가 서버의 응답 헤더를 확인해서 "이 Origin에서의 요청이 허용됐는가?".. -
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의 ..