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

호이로그

  • 분류 전체보기 (423) N
    • 개발 (230) N
      • C언어 (0)
      • PHP (6)
      • JAVA (65) N
      • Python (10)
      • Typescript (0)
      • HTML (0)
      • DB (50)
      • NestJS (3)
      • 리눅스 (53)
      • 구글지도 (29)
      • 기타 (14)
    • IT 테크 (172)
      • 리뷰 (109)
      • 기타 (61)
    • 전자회로 & 부품 (12) N
    • 디지털 행정 & 자동화 실무 가이드 (2)
    • 기타 (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

[JAVA] Spring에서 세션 관리와 Redis 세션 클러스터링

대규모 사용자 트래픽이 발생하는 웹 서비스에서 세션 관리는 중요한 과제입니다. 특히 서버가 여러 대일 경우, 사용자의 세션 정보를 어떻게 공유하고 유지할 것인지는 시스템 안정성과 직결됩니다. Spring에서의 기본 세션 관리Spring Boot 기반의 애플리케이션은 기본적으로 HTTP 세션을 서버의 메모리에 저장합니다. 즉, 세션은 요청을 처리한 서버 인스턴스의 메모리에 저장되며, 다음 요청도 동일한 서버에 도달해야 세션을 유지할 수 있습니다.이 방식은 단일 서버 환경에서는 충분하지만, 다중 서버 또는 WAS를 수평 확장한 환경에서는 다음과 같은 문제가 발생합니다:서버 간 세션 정보가 공유되지 않아 로그인 상태가 유지되지 않음로드 밸런서 설정이 세션 스티키(sticky session)를 강제하게 되어 ..

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

[JAVA] Spring Boot에서 OAuth2 소셜 로그인 구현하기 (kakao)

OAuth2는 사용자 인증을 제3자 인증 제공자(Google, Kakao, GitHub 등)에 위임하여 간편하게 로그인할 수 있는 방식입니다.Spring Boot에서는 spring-security-oauth2-client를 활용하여 소셜 로그인을 쉽게 구현할 수 있습니다. OAuth2 소셜 로그인 흐름클라이언트가 소셜 로그인 버튼 클릭Spring Security가 OAuth2 인증 서버로 리디렉션사용자가 소셜 로그인 서비스(Google, Kakao, GitHub)에 로그인소셜 서비스에서 인증 코드를 발급하여 콜백으로 전달서버가 토큰 발급 및 사용자 정보 가져오기로그인 완료 후 원하는 페이지로 리다이렉트모든 과정은 Spring Security의 필터 체인과 OAuth2UserService에서 처리됩니다...

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

[JAVA] Spring Boot에서 이메일 발송 기능 구현하기 (JavaMailSender)

이메일 발송 기능은 사용자 인증, 알림, 문의 응답 등 다양한 웹 서비스에서 필수로 사용됩니다.Spring Boot에서는 JavaMailSender를 통해 SMTP 서버와 연동하여 간단히 구현할 수 있습니다.Gmail SMTP를 예시로 간단한 텍스트 메일부터 HTML 템플릿 메일 발송까지 전체 과정을 정리해보겠습니다. 의존성 추가 (Gradle 기준)dependencies { implementation 'org.springframework.boot:spring-boot-starter-mail'}빌드 후 자동으로 JavaMailSender Bean이 등록됩니다. SMTP 설정 (Gmail 기준)# application.ymlspring: mail: host: smtp.gmail.com ..

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

[JAVA] Spring Boot로 파일 업로드 및 다운로드 API 구현하기

웹 애플리케이션에서 파일 업로드 및 다운로드는 매우 흔한 기능입니다.Spring Boot는 MultipartFile과 ResponseEntity 등을 활용하여 이를 간단하게 구현할 수 있는 구조를 제공합니다.이번 글에서는 로컬 디스크에 파일 저장을 기준으로 업로드/다운로드 API를 구현하고, 실제 운영에 필요한 설정 및 보안 팁도 함께 소개합니다. 프로젝트 기본 세팅dependencies { implementation 'org.springframework.boot:spring-boot-starter-web'}# application.ymlfile: upload-dir: uploadsspring: servlet: multipart: max-file-size: 10MB max..

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

티스토리툴바