Spring Microservice(102)
-
Admin processes
📌 Admin Processes (관리 작업 자동화)(Twelve-Factor App 원칙: 관리 작업도 코드로 관리해야 한다.)마이크로서비스를 운영하는 동안 데이터 마이그레이션, 배치 작업, 시스템 유지보수 등의 관리 작업이 필요할 수 있습니다.이러한 관리 작업(Admin Processes)은 일회성(Ad-hoc)으로 실행하는 것이 아니라, 코드로 작성하여 자동화해야 합니다.🔹 1. Admin Processes(관리 작업)란?마이크로서비스 운영 중 데이터 마이그레이션, 데이터 변환, 배치 작업 등을 수행해야 할 수 있음.이러한 작업을 수동으로 실행하는 것이 아니라, 코드로 작성하여 자동화해야 함.관리 작업을 별도의 소스 코드 저장소(Repository)에 저장하여 추적 가능해야 함.각 환경(개발, ..
2025.03.02 -
Logs
📌 Logs (로깅 관리)(Twelve-Factor App 원칙: 로그(Log)는 이벤트 스트림으로 관리해야 한다.)마이크로서비스 환경에서 로그(Log)는 단순한 파일이 아니라, 스트림 형태의 이벤트 데이터로 관리되어야 합니다.각 마이크로서비스는 로그를 표준 출력(stdout)으로 기록하고,로그 수집 도구(Logstash, Fluentd 등)를 활용하여 중앙 집중식 로그 관리 시스템(ELK Stack 등)에 저장해야 합니다.🔹 1. Logs(로깅 관리)란?마이크로서비스는 로그 파일을 직접 관리하지 않고, 표준 출력(stdout)에 기록해야 함.로그는 독립적인 이벤트 스트림이며, 중앙 집중식 로그 관리 시스템을 통해 수집 및 분석해야 함.로그 수집 도구(Logstash, Fluentd 등)를 활용하여 ..
2025.03.02 -
Dev/prod parity
📌 Dev/Prod Parity (개발/운영 환경 일치)(Twelve-Factor App 원칙: 개발과 운영 환경을 최대한 유사하게 유지해야 한다.)"Dev/Prod Parity"는 개발(Development), 스테이징(Staging), 운영(Production) 환경 간의 차이를 최소화해야 한다는 원칙입니다.즉, 모든 환경에서 동일한 코드, 인프라, 서비스 구성을 유지하여배포(Deployment) 과정에서 발생하는 오류를 방지하고 신뢰성을 높이는 것이 목표입니다.🔹 1. Dev/Prod Parity(개발/운영 환경 일치)란?개발, 테스트, 운영 환경 간 차이를 최소화해야 함.동일한 코드, 동일한 패키지, 동일한 의존성을 사용하여 모든 환경에서 일관되게 동작하도록 유지.배포 자동화(Continuou..
2025.03.02 -
Disposability
📌 Disposability (폐기 가능성)(Twelve-Factor App 원칙: 서비스는 쉽게 시작되고 종료될 수 있어야 한다.)마이크로서비스는 언제든지 시작(Start) 및 종료(Shutdown)될 수 있어야 하며,이 과정이 다른 서비스에 영향을 미치지 않아야 합니다.이를 통해 탄력적 확장(Elastic Scaling)과 빠른 배포(Rapid Deployment)가 가능해집니다.🔹 1. Disposability(폐기 가능성)이란?마이크로서비스는 즉시 시작 및 종료될 수 있어야 함.실패한 인스턴스를 자동으로 교체할 수 있어야 함.애플리케이션 실행 시간이 짧아야 하며, 배포 시 빠르게 반영 가능해야 함.컨테이너 환경(Docker, Kubernetes)과 오토스케일링(Auto Scaling)과의 궁합..
2025.03.02 -
Concurrency
📌 Concurrency (동시성 처리)(Twelve-Factor App 원칙: 프로세스 모델을 사용한 확장성 확보)클라우드 네이티브 애플리케이션은 수직적 확장(Scale-Up)이 아니라, 수평적 확장(Scale-Out)을 사용하여 확장해야 합니다.즉, 단일 프로세스를 더 크게 만드는 것이 아니라, 여러 개의 프로세스를 생성하여 트래픽을 분산하는 방식이 바람직합니다.🔹 1. 확장(Scaling) 방식의 차이📌 아래 다이어그램은 수직적 확장(Scale-Up)과 수평적 확장(Scale-Out)의 차이를 보여줍니다. ✅ (1) 수직적 확장(Scale-Up)CPU, RAM 등의 하드웨어 자원을 증가시켜 애플리케이션을 더 크게 확장.단일 서버의 성능을 향상하여 부하를 처리.하지만, 하드웨어 성능의 한계가 존..
2025.03.02 -
Port binding
📌 Port Binding (포트 바인딩)(Twelve-Factor App 원칙: 서비스는 자체적으로 포트를 바인딩해야 한다.)마이크로서비스 아키텍처에서는 각 서비스가 독립적으로 실행되어야 합니다.이를 위해 별도의 웹 서버(Apache, Nginx, Tomcat 등) 없이 자체적으로 HTTP 요청을 처리할 수 있어야 합니다.이 원칙을 "Port Binding"이라고 하며, 서비스는 자체적으로 포트를 바인딩하여 실행됩니다.🔹 1. Port Binding(포트 바인딩)이란?마이크로서비스는 독립적으로 실행되며, 자체적으로 HTTP 포트를 바인딩해야 함.별도의 웹 서버(Apache, Nginx, Tomcat) 없이 실행 가능해야 함.각 서비스는 고유한 포트에서 실행되며, 다른 서비스와 격리됨.📌 아래는 P..
2025.03.02