Spring Microservice(101)
-
Backing Services
📌 Backing Services (외부 서비스 연동)(Twelve-Factor App 원칙: Backing Services 활용)마이크로서비스는 데이터베이스, API, 메시징 시스템 등과 네트워크를 통해 통신합니다.이때, 코드 수정 없이 로컬 및 클라우드 서비스를 유연하게 변경할 수 있도록 설계하는 것이 중요합니다.이 섹션에서는 Backing Services(외부 서비스)를 활용하여 유연한 마이크로서비스를 구축하는 방법을 설명합니다.🔹 1. Backing Services(외부 서비스)란?Backing Services란 애플리케이션과 독립적으로 동작하는 외부 서비스를 의미합니다.이는 데이터베이스, SMTP 이메일 서버, 파일 저장소(AWS S3), 메시지 큐(Kafka, RabbitMQ) 등이 포함됩..
2025.03.02 -
Dependencies
📌 의존성 관리 (Dependencies Management)(Twelve-Factor App 원칙: 명확한 의존성 선언)마이크로서비스를 개발할 때, 사용하는 라이브러리와 프레임워크의 의존성을 명확하게 관리하는 것이 필수적입니다.올바른 의존성 관리는 빌드 안정성과 환경 간 일관성 유지에 중요한 역할을 합니다.🔹 1. 의존성 관리의 중요성마이크로서비스는 여러 외부 라이브러리(Third-Party Libraries)를 사용합니다.따라서 의존성을 적절히 관리하지 않으면 환경에 따라 빌드 결과가 달라질 수 있으며,버전 충돌로 인해 애플리케이션이 정상적으로 실행되지 않을 가능성이 있습니다.✅ 올바른 의존성 관리 방법1️⃣ 모든 의존성을 명시적으로 선언해야 함.2️⃣ 빌드 도구(Maven, Gradle)를 사용..
2025.03.02 -
Codebase
📌 Codebase (코드베이스) 관리 모범 사례(Twelve-Factor App 원칙: 단일 코드베이스 유지)마이크로서비스를 설계할 때, 각 마이크로서비스는 단일 코드베이스(Single Codebase)를 유지해야 합니다.이를 통해 유지보수성과 확장성을 높이고, 배포 과정에서의 혼란을 방지할 수 있습니다.🔹 1. 코드베이스(Codebase)란?코드베이스(Codebase)는 소스 코드가 저장된 단일 버전 관리 저장소(예: Git, SVN)를 의미합니다.모든 변경 사항은 버전 관리 시스템(Version Control System, VCS)을 통해 관리됩니다.각 마이크로서비스는 독립적인 코드베이스를 가져야 하며, 다른 마이크로서비스와 코드베이스를 공유하면 안 됩니다.🔹 2. 올바른 코드베이스 관리 방법..
2025.03.02 -
Config
🛠️ 마이크로서비스에서 환경별 설정(Config) 관리 방법마이크로서비스를 구축할 때, 환경별 설정(Configuration)은 소스 코드에서 분리해야 합니다.잘못된 설정 관리 방식은 배포와 유지보수를 어렵게 만들 수 있습니다.이 섹션에서는 Twelve-Factor App 원칙 중 "Config(설정)" 항목을 기반으로, 올바른 환경별 설정 관리 방법을 설명합니다.🔹 1. 환경별 설정(Config) 관리의 중요성마이크로서비스 환경에서는 다양한 환경(Development, Test, Staging, Production)에서 실행됩니다.각 환경마다 데이터베이스 연결 정보, API 키, 로그 레벨 등의 설정이 다를 수 있습니다.따라서 설정을 소스 코드에서 분리하고, 별도의 환경 설정 파일이나 중앙 집중식 ..
2025.03.02 -
How to build a cloud-native microservice
☁️ 클라우드 네이티브 마이크로서비스 구축 방법클라우드 환경에서 확장 가능하고 유지보수하기 쉬운 마이크로서비스를 설계하는 모범 사례를 이해하는 것은 필수적입니다.이 섹션에서는 Cloud-Native와 Cloud-Ready의 차이, 그리고 Twelve-Factor App 원칙을 적용한 마이크로서비스 구축 방법을 설명합니다.🔹 1. 클라우드 애플리케이션의 유형클라우드 환경에서 실행되는 애플리케이션은 크게 Cloud-Ready와 Cloud-Native로 구분됩니다.✅ 1.1 Cloud-Ready 애플리케이션원래 온프레미스(사내 서버)에서 실행되던 애플리케이션을 클라우드 환경에서 실행할 수 있도록 변환한 것.환경별 설정(개발, 테스트, 운영)이 코드에 포함되어 있는 경우가 많음 → 설정을 외부화하여 해결 가능..
2025.03.02 -
Spring Cloud by example
🌟 Spring Cloud by Example: 예제 코드 분석 및 정리이전 챕터에서는 Spring Cloud의 다양한 기술을 소개했습니다.이번에는 간단한 예제 코드를 통해 서비스 검색(Service Discovery)와 클라이언트 부하 분산(Client-Side Load Balancing) 을 어떻게 쉽게 구현할 수 있는지 살펴보겠습니다.📌 1. 예제 코드 개요아래 코드에서는 Eureka 기반 서비스 검색과 RestTemplate을 이용한 원격 호출을 구현하고 있습니다.이 코드를 직접 실행하려면 먼저 Eureka 서버 및 관련 서비스를 설정해야 합니다.📌 핵심 개념 요약• @EnableEurekaClient: 이 애플리케이션이 Eureka에 등록됨을 나타냄.• RestTemplate: 원격 서비스..
2025.03.02