분류 전체보기198 API Gateway - SLA API Gateway에서 SLASLA는 Service Layer Agreement로 서비스 수준에 대한 약속을 의미합니다.예를들어 "해당 API는 얼마나 안정적으로 빠르게, 예측 가능하게 작동하나요?"와 같이 개별 API 요청에 대해 속도, 성공률, 호출 제한 등 세부적인 기준을 설정하는 것입니다. API Gateway SLA 예시예를 들어, /payment라는 API를 제공하는 서버를 운영하는 경우, 클라이언트에게 아래와 같은 약속(SLA)을 합니다.항목약속 내용응답 속도1초 이내에 응답 보장호출 제한 초당 10번까지만 호출 가능가용성월 99.9% 시간 동안 정상 동작 즉, 해당 약속을 api gateway가 대신 지켜주는 역할을 하는 것입니다. API Gateway에서 SLA를 관리하는 기능API G.. 2025. 4. 18. [Spring Docs] Data Access with R2DBC 이번글은 공식 문서에서 소개하는 Data Access with R2DBC에 대해 정리했습니다. R2DBC ("Reactive Relational Database Connectivity") is a community-driven specification effort to standardize access to SQL databases using reactive patterns. R2DBC(“Reactive Relational Database Connectivity”)는 리액티브 패턴을 사용하여 SQL 데이터베이스에 접근하는 방식을 표준화하기 위한 커뮤니티 주도의 명세(specification) 노력입니다. Package HierarchyThe Spring Framework’s R2DBC abstractio.. 2025. 4. 17. Kafka 사용 사례 Kafka는 언제 사용할까요? 실시간 로그 처리Kafka를 활용하면 웹 서버, 애플리케이션 서버, DB 서버 등 여러 시스템에서 발생하는 로그를 중앙에서 수집하고 관리할 수 있습니다. 이를 통해 대규모 시스템에서도 로그 데이터를 효율적으로 처리할 수 있으며, 장애나 성능 문제를 신속하게 파악할 수 있는 기반이 마련됩니다. 실제 활용 사례로는, 웹 애플리케이션에서 오류 로그와 성능 메트릭을 수집해 문제를 조기에 인식하거나, 장애 발생 시 빠르게 대응할 수 있는 구조를 구성하는 데 Kafka가 사용됩니다. 특히 DevOps 환경에서는 인프라 상태를 실시간으로 모니터링하고, 문제가 생기면 자동으로 대응할 수 있는 시스템을 구축하는 데 중요한 역할을 합니다. 데이터 스트리밍 시스템 Kafka는 데이터 스트리밍.. 2025. 4. 16. [JVM] 핫스팟 VM에서의 객체 돌아보기 이번 글은 "JVM 밑바닥까지 파헤치기" 책의 2.3 핫스팟 가상 머신에서의 객체 돌아보기에 대한 부분을 정리 및 요약한 글입니다. 객체 생성자바는 객체 지향 프로그래밍 언어로 자바 프로그램이 동작하는 동안 언제든 수시로 객체가 만들어집니다. 언어 수준 객체 생성자바는 객체 지향 언어 프로그래밍으로 동작하는 동안 언제나 수시로 객체가 만들어집니다.언어 수준에서는 객체 생성은 간단하게 new 키워드를 사용하면 끝납니다.가상 머신 수준에서는 어떤 과정을 거쳐 객체가 생성될까요?가상 머신 수준 객체 생성가상 머신에서는 new 명령어의 바이트코드를 만나게 되면, 해당 명령의 매개 변수가 상수 풀 안의 클래스를 가리키는 심벌 참조인지 먼저 확인합니다. 그다음으로 이 참조가 뜻하는 클래스가 로딩, 해석, 초기화 되.. 2025. 4. 16. [JVM] OutOfMemory 예외 이번 글은 "JVM 밑바닥까지 파헤치기" 책의 2.4 실전 : OutOfMemoryError 예외에 대한 부분을 정리 및 요약한 글입니다. 이번 절의 목적은 각 런타임 영역에 저장되는 내용을 검증하고, 실제 메모리 오버플로가 일어나는 과정을 경험하는데 초점이 맞춰집니다.다음 나오는 예제 코드들의 첫 부분에는 예제 실행 시 설정해야 하는 가상 머신 시작 매개 변수가 주석으로 적혀 있습니다.('VM 매개 변수'로 시작하는 주석) 이 매개 변수들은 실행 결과에 영향을 줍니다. 실행 및 디버그 구성-Xms20mJVM이 실행될 때 초기로 확보할 힙 메모리 크기를 설정합니다.-Xmx20mJVM이 사용할 수 있는 힙 메모리의 최대 크기를 지정합니다.-XX:+HeapDumpOnOutOfMemoryErrorOutOfMe.. 2025. 4. 15. OAuth 2.0 이번글은 OAuth 2.0에 대해 정리한 글입니다. OAuth 2.0 등장 배경외부 앱이 우리의 서비스를 이용해 사용자의 데이터를 활용하고자 할 때, 예전에는 사용자로부터 ID와 비밀번호를 직접 입력받아 처리하는 방식이 일반적이었습니다. 예를 들어, 트위터 통계를 보여주는 앱이 있다고 합시다.이 앱은 트위터 데이터를 분석하기 위해 사용자에게 “당신의 트위터 계정 정보를 입력해주세요”라고 요청했습니다. 사용자는 그대로 트위터 ID와 비밀번호를 입력했고, 앱은 그 정보를 통해 사용자의 계정에 접근했습니다. 이 방식은 다음과 같은 문제점을 가집니다.앱이 사용자의 비밀번호를 평문으로 저장할 수도 있습니다.비밀번호만 있으면 모든 권한을 사용할 수 있기 때문에, 앱이 사용자를 완전히 통제할 수 있습니다.사용자가 이.. 2025. 4. 15. [Spring Docs] Initializing a DataSource 이번글은 공식 문서에서 소개하는 Initializing a DataSource에 대해 정리했습니다. The org.springframework.jdbc.datasource.init package provides support for initializing an existing DataSource. The embedded database support provides one option for creating and initializing a DataSource for an application. However, you may sometimes need to initialize an instance that runs on a server somewhere. org.springframework.jdbc.da.. 2025. 4. 15. [Spring Docs] Embedded Database Support 이번글은 공식 문서에서 소개하는 Embedded Database Support에 대해 정리했습니다. The org.springframework.jdbc.datasource.embedded package provides support for embedded Java database engines. Support for HSQL, H2, and Derby is provided natively. You can also use an extensible API to plug in new embedded database types and DataSource implementations.org.springframework.jdbc.datasource.embedded 패키지는 자바 임베디드(내장형) 데이터베이스 엔진에.. 2025. 4. 14. Saga Pattern(사가 패턴) 이번글은 MSA 환경에서 데이터의 일관성을 보장해주기 위한 Saga Pattern에 대해 정리한 글입니다. 데이터 일관성기존의 모놀리식 환경에서는 하나의 DBMS가 트랜잭션의 원자성과 일관성을 보장해줬습니다.즉, 어떤 작업 중 일부가 실패하더라도, 전체 트랜잭션을 간단한게 롤백할 수 있었습니다. 하지만 MSA에서는 하나의 기능이 여러 개의 마이크로서비스에 걸쳐 동작하게 됩니다.즉, 전체 트랜잭션이 하나의 DB에서 처리되는 것이 아닌, 여러 마이크로서비스의 개별적은 로컬 트랜잭션들이 조합된 형태가 됩니다. MSA에서는 DBMS가 제공하던 트랜잭션 기능만으로 전체 시스템의 일관성을 유지하기가 어렵습니다.한다고 해도, 하나의 서비스라도 실패 하면, 데이터의 일관성이 깨지는 큰 문제가 발생하게 됩니다. 사가 패.. 2025. 4. 11. 이전 1 2 3 4 5 6 7 ··· 22 다음