호이로그
close
프로필 배경
프로필 로고

호이로그

  • 분류 전체보기 (591) N
    • 개발 (312) N
      • C언어 (0)
      • PHP (6)
      • JAVA (70)
      • Python (10)
      • Typescript (75) N
      • HTML (0)
      • DB (50)
      • NestJS (3)
      • 리눅스 (53)
      • 구글지도 (29)
      • 기타 (16)
    • IT 테크 (216) N
      • 리뷰 (110)
      • 기타 (104) N
    • 전자회로 & 부품 (44)
    • 디지털 행정 & 자동화 실무 가이드 (7)
    • 기타 (1)
  • 홈
  • 태그
  • 방명록

Spring Boot와 Jenkins CI/CD 파이프라인 구축 - 자동화된 배포 환경 만들기

개발 규모가 커질수록 “코드를 수정할 때마다 수동으로 빌드하고 배포”하는 방식은 비효율적입니다. 이를 자동화하기 위한 대표적인 도구가 Jenkins이며, Spring Boot와 결합하면 빌드·테스트·배포가 자동으로 이어지는 CI/CD 파이프라인을 쉽게 구성할 수 있습니다. CI/CD란 무엇인가?CI (Continuous Integration): 개발자가 코드를 푸시할 때마다 자동으로 빌드와 테스트를 수행하여 문제를 조기에 발견CD (Continuous Deployment): 빌드가 성공하면 자동으로 스테이징 또는 프로덕션 서버에 배포즉, Jenkins를 이용하면 “코드 → 테스트 → 빌드 → 배포”의 전체 과정을 자동화할 수 있습니다. 1. Jenkins 환경 준비1-1. Docker로 Jenkins ..

  • format_list_bulleted 개발/JAVA
  • · 2025. 11. 11.
  • textsms

Spring Boot + Kubernetes 배포하기 - 컨테이너 오케스트레이션으로 확장성 확보

Docker를 사용하면 애플리케이션을 컨테이너로 패키징할 수 있지만, 여러 대의 서버와 수많은 컨테이너를 관리하기에는 한계가 있습니다. 이때 등장하는 것이 Kubernetes (쿠버네티스)입니다. Kubernetes란?Kubernetes는 Google이 개발하고 CNCF가 관리하는 컨테이너 오케스트레이션 플랫폼입니다. 수십~수백 개의 Docker 컨테이너를 자동으로 배포, 스케일링, 복구하고, 서비스 간 트래픽을 효율적으로 분산시킵니다.Pod: Kubernetes의 최소 실행 단위 (1개 이상의 컨테이너 포함)Deployment: Pod의 배포, 업데이트, 롤백을 관리Service: Pod 간 통신과 외부 노출(Load Balancer) 담당Ingress: 외부 트래픽을 도메인 기반으로 라우팅 1. 준..

  • format_list_bulleted 개발/JAVA
  • · 2025. 11. 10.
  • textsms

Spring Boot + Docker로 배포하기 - 손쉬운 컨테이너 기반 애플리케이션 배포

현대적인 애플리케이션 배포 방식은 더 이상 서버에 직접 코드를 복사하는 형태가 아닙니다. 대신, 실행 환경과 애플리케이션을 하나의 이미지(Image)로 패키징하여 어디서나 동일하게 실행할 수 있는 Docker 컨테이너 기반 배포가 표준이 되었습니다. Docker를 사용하는 이유Spring Boot는 자체적으로 내장 톰캣을 포함하고 있어, 독립 실행이 가능하지만 운영 환경마다 Java 버전, 설정, OS 환경이 달라 문제가 발생할 수 있습니다. Docker를 이용하면 이러한 환경 차이를 없애고, “어디서 실행해도 동일하게 동작”하는 배포를 실현할 수 있습니다.개발/운영 환경의 일관성 확보배포 자동화 (CI/CD)와 연동 용이컨테이너 기반 스케일링 (ECS, Kubernetes 등) 1. Spring Bo..

  • format_list_bulleted 개발/JAVA
  • · 2025. 11. 9.
  • textsms

Sleuth와 Zipkin으로 분산 트레이싱 - 마이크로서비스의 요청 흐름 가시화

마이크로서비스 환경에서는 하나의 요청이 여러 서비스를 거쳐 처리됩니다. 예를 들어 주문 API를 호출하면, 주문 서비스 → 결제 서비스 → 사용자 서비스로 연속 호출이 일어날 수 있습니다. 이때 요청 흐름이 어디서 지연되었는지, 어느 서비스에서 오류가 발생했는지를 추적하는 것이 바로 분산 트레이싱(Distributed Tracing)입니다. 분산 트레이싱이란?분산 트레이싱은 여러 서비스에 걸친 요청 흐름을 추적하여, 요청 단위 성능 병목 구간과 오류 원인을 파악하는 기술입니다. 각 요청에는 고유한 Trace ID가 부여되며, 요청이 다른 서비스로 전달될 때마다 Span이라는 하위 단위로 세분화되어 기록됩니다.이러한 Trace/Span 정보를 수집하고 시각화하기 위한 도구로는 Sleuth와 Zipkin이 ..

  • format_list_bulleted 개발/JAVA
  • · 2025. 11. 8.
  • textsms

Hystrix/Resilience4j로 장애 대응하기 — 마이크로서비스의 회복탄력성 설계

마이크로서비스 환경에서는 서비스 간 호출이 빈번하게 발생합니다. 이때 한 서비스의 장애가 다른 서비스로 전파되면, 전체 시스템이 연쇄적으로 다운되는 장애 전이(Failure Cascade)가 발생할 수 있습니다. 이를 방지하기 위해 사용하는 기술이 바로 Circuit Breaker (서킷 브레이커) 패턴이며, Spring Cloud에서는 Hystrix 또는 Resilience4j로 구현할 수 있습니다. 서킷 브레이커(Circuit Breaker)란?서킷 브레이커는 마이크로서비스 간 호출 시 장애가 지속될 경우, 일정 시간 동안 호출을 차단하여 장애 전파를 방지하는 패턴입니다.[정상 상태] → [Open 상태] → [Half-Open 상태] → [Closed 상태]Closed: 모든 요청 정상 처리Open..

  • format_list_bulleted 개발/JAVA
  • · 2025. 11. 7.
  • textsms

Eureka로 서비스 디스커버리 구현하기 - 마이크로서비스의 핵심 인프라 구성

마이크로서비스 아키텍처에서는 여러 개의 서비스가 독립적으로 배포되고 실행됩니다. 문제는 이렇게 서비스가 분리되면 “서버의 위치(IP, 포트)”를 각 서비스가 직접 관리하기 어렵다는 점입니다. 이때 서비스 디스커버리(Service Discovery)를 사용하면, 서비스가 실행될 때 자동으로 자신의 위치를 등록하고, 다른 서비스는 이름으로 이를 찾을 수 있습니다. . 서비스 디스커버리란?서비스 디스커버리는 동적으로 변하는 서비스 인스턴스의 위치 정보를 자동으로 관리하는 기능입니다. 예를 들어 주문 서비스가 사용자 서비스의 IP를 직접 알고 있으면, 서버 증설·재배포 시마다 주소를 수정해야 합니다. 하지만 디스커버리 서버를 두면 서비스는 실행 시 자신을 등록하고, 다른 서비스는 이름 기반으로 호출할 수 있습니..

  • format_list_bulleted 개발/JAVA
  • · 2025. 11. 6.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (591) N
    • 개발 (312) N
      • C언어 (0)
      • PHP (6)
      • JAVA (70)
      • Python (10)
      • Typescript (75) N
      • HTML (0)
      • DB (50)
      • NestJS (3)
      • 리눅스 (53)
      • 구글지도 (29)
      • 기타 (16)
    • IT 테크 (216) N
      • 리뷰 (110)
      • 기타 (104) N
    • 전자회로 & 부품 (44)
    • 디지털 행정 & 자동화 실무 가이드 (7)
    • 기타 (1)
최근 글
최근 댓글
태그
  • #google지도api
  • #java
  • #mysql
  • #springboot
  • #routesapi
  • #리눅스기초
  • #api가이드
  • #리눅스명령어
  • #typescript
  • #googlemap
전체 방문자
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바