Jinsu's Technical Blog
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (250)
      • Java (18)
      • Spring Framework (33)
        • Toby's Spring 3.1 (6)
        • Spring IoC (6)
        • TDD (6)
        • Reflection (6)
        • AOP (6)
      • Spring Boot (11)
      • Spring Security (22)
      • Database (17)
        • Mysql (2)
        • JDBC (2)
        • JPA (13)
      • Build and Development Tools (3)
        • Maven (1)
        • Gradle (1)
        • Lombok (1)
      • Network (12)
      • Apache Tomcat (11)
      • Microservices Architecture (33)
      • Linux (9)
      • React (10)
      • Docker (22)
      • OAuth (10)
      • DevOps (2)
      • Git (2)
      • HTML (1)
      • CSS (1)
      • JavaScript (1)
      • Problem and Solution Guide (8)
        • Java (1)
        • Spring Framework (4)
        • Reflection (1)
        • Dynamic Proxy (1)
        • JPA (1)
      • Note-Taking (23)
  • 홈
  • 태그
  • 방명록
Microservices Architecture

AWS S3 인스턴스 생성 및 IAM 그리고 Access/Secrete Key 생성

AWS S3 인스턴스 생성 1. AWS에 로그인 후, Search 창에 S3를 입력후 해당 페이지로 이동합니다. 2. 사이드 메뉴바에서 Buckets를 선택합니다. 그리고 Create bucket 버튼을 선택합니다. 3. 버킷 이름을 작성합니다. Amazon S3의 버킷 이름 규칙은 일반 목적 버킷과 디렉터리 버킷에 대해 각각 적용됩니다.일반 목적 버킷 이름 규칙길이: 3~63자.문자 사용: 소문자, 숫자, 점(.), 하이픈(-)만 사용 가능.시작과 끝: 문자나 숫자로 시작하고 끝나야 함.연속 점 금지: 두 개의 점이 연속으로 올 수 없음.IP 형식 금지: IP 주소 형식(예: 192.168.5.4)으로 지정 불가.특정 접두사 및 접미사 금지:접두사: xn--, sthree-, sthree-configu..

2024. 12. 24. 10:33
Microservices Architecture

글로벌 필터(Global Filter)

글로벌 필터(Global Filter)는 Spring Cloud Gateway에서 제공하는 필터로, 모든 HTTP 요청과 응답에 대해 전역적으로 실행되는 필터입니다.✅ 글로벌 필터란?Spring Cloud Gateway의 핵심 기능 중 하나입니다. 모든 요청이 라우팅되기 전에 전처리(Pre-processing) 작업을 수행하고,응답이 반환되기 전에 후처리(Post-processing) 작업을 수행할 수 있습니다. 특정 라우트에 상관없이 모든 요청에 대해 적용되기 때문에 전역 필터로 불립니다.✅ 글로벌 필터의 특징전역 적용 특정 라우트(Route)와 상관없이 모든 요청에 대해 필터를 적용합니다. 전처리와 후처리 가능 요청이 서버에 도달하기 전에 전처리 작업을 수행할 수 있습니다. 응답이 반환되기..

2024. 12. 16. 14:10
Microservices Architecture

Correlation ID

Correlation ID는 분산 시스템이나 마이크로서비스 아키텍처에서 사용되는 개념으로, 하나의 요청(Request)과 그와 관련된 모든 작업을 추적하기 위해 사용하는 고유한 식별자입니다.✅ Correlation ID의 역할요청과 응답의 흐름을 추적하기 위한 유일한 ID입니다. 서비스 간의 여러 요청이 발생할 때, 하나의 작업 단위(트랜잭션)를 식별하고 추적할 수 있습니다. 로그나 모니터링 도구에서 하나의 요청에 대한 전체 흐름을 확인할 수 있습니다. ✅ 왜 Correlation ID가 필요할까?분산 시스템에서의 요청 추적 마이크로서비스에서는 하나의 요청이 여러 서비스로 전달되며, 각 서비스가 여러 단계로 작업을 수행합니다. Correlation ID를 사용하면 전체 요청 흐름을 추적할 수 있..

2024. 12. 16. 14:03
Microservices Architecture

/actuator/gateway/refresh의 refresh

/actuator/gateway/refresh의 refresh는 Spring Cloud Gateway에서 라우팅 설정 및 환경 설정을 동적으로 갱신하는 기능을 의미합니다.✅ Spring Cloud Gateway의 refresh란?Spring Cloud Gateway는 라우팅 설정과 환경 설정을 애플리케이션 실행 중에 동적으로 갱신할 수 있습니다. 이때 /actuator/gateway/refresh 엔드포인트를 호출하면 Gateway의 라우팅 설정을 새로고침합니다. 보통 Spring Cloud Config Server나 환경 변수, 설정 파일에 변경된 값을 반영하고자 할 때 사용됩니다.✅ 기본 개념라우팅 설정이란? Spring Cloud Gateway는 요청 경로(Route)를 정의하여 특정 서비스를..

2024. 12. 16. 12:33
Microservices Architecture

리액티브(Reactive)와 논리액티브(Non-Reactive)

리액티브(Reactive)와 논리액티브(Non-Reactive)는 프로그래밍 방식이나 시스템 동작의 차이를 설명하는 개념입니다. 이를 쉽게 설명하자면 "데이터와 요청을 처리하는 방식의 차이"라고 볼 수 있어요.✅ 리액티브(Reactive)란?"이벤트(데이터)의 흐름에 따라 반응하며 비동기적으로 처리하는 방식"입니다.비동기: 요청과 응답이 동시에 일어나지 않아도 기다리지 않고 다른 작업을 진행합니다. Non-Blocking: 처리 시간이 오래 걸리는 작업이 있어도 멈추지 않고 다른 작업을 처리합니다. 데이터 흐름 중심: 데이터나 이벤트가 들어오면 즉시 반응(React)해서 처리합니다. 📌 리액티브 방식 예시콜센터를 떠올리면 쉬워요.전화가 걸려오면 → 즉시 대기 중인 상담원이 전화를 받습니다. 상담..

2024. 12. 16. 10:41
Microservices Architecture

Spring Cloud Gateway

Spring Cloud Gateway는 마이크로서비스 아키텍처(MSA) 환경에서 사용되는 API Gateway 솔루션입니다. 스프링 팀이 공식적으로 제공하며 Spring WebFlux 기반으로 만들어졌습니다. ✅ Spring Cloud Gateway란?API Gateway 역할을 수행하는 프레임워크입니다. 클라이언트와 여러 마이크로서비스 사이의 단일 진입점 역할을 합니다. 비동기 리액티브 프로그래밍(Non-blocking) 기반으로 구현되어 성능이 뛰어납니다. 요청 라우팅, 필터링, 보안, 로드 밸런싱 등의 기능을 제공합니다.✅ Spring Cloud Gateway의 주요 기능라우팅 (Routing) 요청을 적절한 서비스로 전달합니다. URL 패턴이나 조건에 따라 라우팅 규칙을 설정할 수 있습..

2024. 12. 16. 10:38
Microservices Architecture

서비스 게이트웨이(Service Gateway)

서비스 게이트웨이(Service Gateway)는 마이크로서비스 아키텍처(MSA) 환경에서 클라이언트와 백엔드 서비스 간의 중간 관문 역할을 하는 서버나 시스템입니다.클라이언트의 요청을 여러 마이크로서비스로 라우팅하고, 부가적인 기능(인증, 로깅, 로드 밸런싱, 보안 등)을 제공합니다. 이를 통해 클라이언트가 여러 서비스와 직접 통신하는 복잡성을 줄여주고, 서비스 간의 효율적인 통신을 가능하게 합니다.✅ 서비스 게이트웨이의 주요 역할요청 라우팅 (Routing) 클라이언트 요청을 적절한 백엔드 서비스로 전달합니다. 예: /api/users → 사용자 서비스, /api/orders → 주문 서비스.로드 밸런싱 (Load Balancing) 여러 인스턴스 중 하나로 요청을 분산하여 시스템 부하를 줄입니..

2024. 12. 16. 10:36
Microservices Architecture

Netflix Zuul

Netflix Zuul은 API Gateway 역할을 하는 서버 애플리케이션으로, 마이크로서비스 아키텍처에서 요청 라우팅, 로드 밸런싱, 보안 등의 기능을 제공하는 도구입니다. Zuul은 Netflix의 OSS(Open Source Software) 프로젝트 중 하나로 개발되었으며, 주로 Spring Cloud Netflix 프로젝트와 함께 사용됩니다.✅ Zuul의 핵심 역할Zuul은 클라이언트 요청과 여러 마이크로서비스 사이에서 중간 관문 역할을 합니다.라우팅 (Routing) 클라이언트의 요청을 적절한 서비스로 전달합니다. 예: /api/users → 사용자 서비스, /api/orders → 주문 서비스 로드 밸런싱 (Load Balancing) 여러 인스턴스 중 하나로 요청을 균등하게 분산..

2024. 12. 16. 09:43
Microservices Architecture

링 버퍼(Ring Buffer)

링 버퍼(Ring Buffer) 또는 원형 버퍼(Circular Buffer)는 고정된 크기의 메모리 공간을 사용하여 데이터를 효율적으로 저장하고 읽을 수 있는 자료구조입니다. FIFO(First In, First Out) 방식으로 동작하며, 마지막 위치에 도달하면 다시 처음으로 돌아가 순환 구조를 유지합니다.1. 링 버퍼의 구조링 버퍼는 원형 구조를 가지며 다음과 같은 주요 요소를 포함합니다: 버퍼: 데이터를 저장하는 고정된 크기의 배열 또는 메모리 공간 head(헤드 포인터): 데이터를 읽을 위치를 가리킵니다. tail(테일 포인터): 데이터를 쓸 위치를 가리킵니다. 용량: 버퍼의 총 크기 (고정) 2. 링 버퍼의 동작 방식1) 데이터 쓰기 (Enqueue)tail 포인터가 가리키는 위치에 ..

2024. 12. 13. 11:25
Microservices Architecture

Circuit Breaker(서킷 브레이커)

Circuit Breaker(서킷 브레이커) 패턴은 시스템의 장애 전파를 방지하고, 안정성을 유지하기 위한 마이크로서비스 설계 패턴입니다.1. Circuit Breaker란?"회로 차단기"라는 뜻으로, 특정 서비스 호출에 실패하거나 응답 지연이 발생했을 때 추가 호출을 차단하고 빠르게 대체 동작(폴백)을 실행합니다. 이를 통해 시스템의 과부하와 전체 장애 전파를 방지합니다. 2. Circuit Breaker의 동작 원리3가지 상태Closed (닫힘) 정상 상태로, 모든 요청이 허용됩니다. 이 상태에서 실패가 기준치를 초과하면 Open 상태로 전환됩니다.Open (열림) 실패가 감지되었을 때 추가 요청을 차단합니다. 일정 시간 후 Half-Open 상태로 전환되어 일부 요청을 허용해 봅니다.Ha..

2024. 12. 13. 10:12
Microservices Architecture

폴백(Fallback)

폴백(Fallback)이란 시스템이나 서비스가 정상적으로 동작하지 않을 때 대비책으로 대체 동작이나 대체 서비스를 실행하는 것을 의미합니다. 1. 폴백의 개념시스템에 장애가 발생하거나 외부 서비스가 실패했을 때, 사용자에게 최소한의 기능이나 대체 결과를 제공하는 패턴입니다. 목표: 시스템의 안정성을 유지하고 사용자에게 최소한의 서비스라도 제공하기 위함입니다.2. 폴백이 필요한 상황네트워크 장애 외부 API 호출이 실패했을 때 대체 데이터를 제공해야 하는 경우 시스템 장애 주요 서비스나 기능에 문제가 발생했을 때 다른 서비스로 요청을 우회 타임아웃 응답 시간이 길어져 요청이 실패했을 때 빠르게 다른 로직을 실행 데이터 불일치 데이터베이스나 캐시에서 데이터가 없을 경우 기본값을 반환 3. ..

2024. 12. 13. 10:09
Microservices Architecture

엘라스틱서치(Elasticsearch)

✅ 엘라스틱서치(Elasticsearch)는 오픈소스 기반의 분산형 검색 및 분석 엔진입니다.데이터의 빠른 검색, 저장, 분석을 지원하며, JSON 형식의 RESTful API를 통해 데이터를 처리합니다.주로 로그 분석, 실시간 검색, 데이터 모니터링 등에서 많이 사용되며, Elastic Stack(ELK)의 핵심 구성 요소입니다.📌 엘라스틱서치 개요분산 검색 엔진: 대용량 데이터를 분산 저장하고 빠르게 검색합니다. RESTful API 기반: HTTP를 통해 요청 및 응답이 JSON 형식으로 이루어집니다. NoSQL 데이터베이스: 스키마리스(schema-less) 구조로 문서 기반 저장소입니다. 실시간 데이터 분석: 대량의 데이터를 빠르게 인덱싱하고 분석합니다.🔎 주요 특징1️⃣ 분산형 구조엘..

2024. 12. 10. 10:36
Microservices Architecture

12 팩터 앱(12 Factor App)

✅ 12 팩터 앱(12 Factor App)은 클라우드 환경에서 실행되는 현대적인 애플리케이션을 설계하고 배포하기 위한 방법론입니다. Heroku의 개발자들이 정의했으며, 애플리케이션을 유지보수하기 쉽고 확장 가능하게 만드는 12가지 원칙을 제공합니다. 📌 12 Factor App의 개요목적: 클라우드 네이티브 애플리케이션의 유연성, 확장성, 이식성을 극대화 대상: 마이크로서비스 아키텍처 및 컨테이너 기반 배포에 적합 핵심 가치: 독립적인 구성, 무상태성, 포터블(이식 가능)한 코드베이스 1️⃣ 코드베이스(Codebase)"코드베이스는 단일 저장소이며 여러 환경에 배포된다."하나의 코드베이스를 사용하고, 각 배포는 코드베이스의 스냅샷입니다. 버전 관리 시스템(예: Git)으로 관리하며, 여러 ..

2024. 12. 10. 09:54
Microservices Architecture

스프링 클라우드 패턴

1️⃣ 개발 패턴 (Development Patterns)마이크로서비스 개발 시 설정 관리, 서비스 발견, 통신과 같은 개발의 핵심 요소를 처리합니다.📌 주요 패턴분산 설정 관리 패턴 도구: Spring Cloud Config 목적: 설정 파일을 중앙화된 서버에서 관리해 모든 마이크로서비스가 공유합니다. 예시:spring: cloud: config: uri: http://localhost:8888서비스 디스커버리 패턴 도구: Eureka, Consul 목적: 서비스 간 동적 연결 및 위치 검색을 지원합니다. 예시:eureka: client: service-url: defaultZone: http://localhost:8761/eureka/서비스 간 통신 패턴 ..

2024. 12. 10. 09:15
Microservices Architecture

Resilience4j

Resilience4j는 마이크로서비스 아키텍처에서 자주 발생하는 장애에 대한 복원력(resilience)을 제공하기 위한 경량화 라이브러리입니다. Java 8+ 기반으로 개발되었으며, 특히 함수형 프로그래밍의 개념을 활용하고 있습니다.Resilience4j는 Netflix Hystrix의 대안으로 주목받고 있으며, Spring Boot와의 통합이 용이한 것이 특징입니다. Circuit Breaker 패턴을 포함해 다양한 탄력성 패턴을 제공하여 시스템의 신뢰성과 가용성을 높이는 데 도움을 줍니다.주요 기능들 🔍Circuit Breaker (서킷 브레이커)실패율이 높을 때 특정 기능 호출을 차단하여 시스템 전체 장애를 방지하는 패턴입니다.상태 관리: CLOSED → OPEN → HALF-OPEN실패율이나..

2024. 12. 9. 14:20
  • «
  • 1
  • 2
  • 3
  • »

공지사항

  • Jinsu's GitHub

전체 카테고리

  • 분류 전체보기 (250)
    • Java (18)
    • Spring Framework (33)
      • Toby's Spring 3.1 (6)
      • Spring IoC (6)
      • TDD (6)
      • Reflection (6)
      • AOP (6)
    • Spring Boot (11)
    • Spring Security (22)
    • Database (17)
      • Mysql (2)
      • JDBC (2)
      • JPA (13)
    • Build and Development Tools (3)
      • Maven (1)
      • Gradle (1)
      • Lombok (1)
    • Network (12)
    • Apache Tomcat (11)
    • Microservices Architecture (33)
    • Linux (9)
    • React (10)
    • Docker (22)
    • OAuth (10)
    • DevOps (2)
    • Git (2)
    • HTML (1)
    • CSS (1)
    • JavaScript (1)
    • Problem and Solution Guide (8)
      • Java (1)
      • Spring Framework (4)
      • Reflection (1)
      • Dynamic Proxy (1)
      • JPA (1)
    • Note-Taking (23)

블로그 인기글

전체 방문자

오늘
어제
전체
Powered by Privatenote Copyright © Jinsu's Technical Blog All rights reserved. TistoryWhaleSkin3.4

티스토리툴바