Docker란? 도커는 '데이터 또는 프로그램을 격리시키는 기능'을 제공하는 소프트웨어다.애플리케이션을 컨테이너라는 단위로 패키징하고 실행할 수 있도록 도와주는 가상화 기술을 제공한다. 한마디로 어떤 환경에서도 동일하게 실행되는 프로그램을 만들기 위한 도구다. 도커가 필요한 이유 설정 변경의 번거로움개발하고 배포할 때 제일 귀찮았던 부분은 내 PC에서는 잘 되게 설정해 놨는데, 배포서버에서 동작하게 하려면 설정을 바꿔줘야 하는 부분이었다.왜 설정을 바꿔줘야 하나? 운영체제, 라이브러리 등이 다르기 때문이다.컨테이너를 사용하면 개발자가 설정한 환경 그대로 유지할 수 있어서 어디서 실행하든 동일한 결과를 보장할 수 있다. 프로그램 격리의 필요성 도커가 주로 서버에서 프로그램과 데이터를 격리하는 기능을 제공한..
Vue.js로 만든 프론트엔드 프로젝트를 EC2에 배포하고, Nginxx를 통해 정적 파일을 서빙하는 방법을 정리했다.또한, 백엔드 API와 연동하는 설정 및 Swagger 접속 설정까지 포함했다. 1. 프로젝트 빌드EC2에 배포하기 전에 Vue 프로젝트를 빌드해야 한다.Vue 프로젝트 폴더에서 다음 명령어를 실행한다.npm run build 빌드가 완료되면 dist 폴더가 생성된다.이 dist 폴더 안에는 assets 폴더와 index.html 파일이 포함되어 있다. 이제 EC2 인스턴스의 Nginx root 경로로 파일을 옮겨야 한다.파일을 전송하는 방법은 scp 명령어를 사용하면 된다.여기에서 볼 수 있다. 2. Nginx 설치 및 설정1) Nginx 설치EC2 인스턴스에 인스턴스에 접속한 후 다..
Spring Boot 프로젝트를 EC2에 배포하는 방법을 단계별로 정리했습니다.IntelliJ를 사용하여 .jar 파일을 생성하고, EC2에 업로드한 후 실행하는 과정까지 상세히 설명합니다.1. Spring Boot를 .jar 파일로 만들기IntelliJ에서 Gradle을 사용하여 .jar 파일을 생성합니다.오른쪽 Gradle 창에서 해당 모듈을 선택Tasks → build → bootJar 실행build/libs 디렉토리에 .jar 파일이 생성됨2. .jar 파일을 EC2 서버에 옮기기EC2에 .jar 파일을 업로드하기 위해 scp 명령어를 사용합니다.먼저 서버에 등록된 공개키와 한 쌍인 사설키(private key)를 준비합니다.권한 설정chmod 400 private_key.pem ※ 권한이 너무 ..
Spring Cloud Config란? Spring Cloud Config는 분산 시스템에서 애플리케이션 설정을 중앙 집중식으로 관리하는 솔루션이다.환경별 설정을 관리하고, 변경 사항을 실시간으로 반영할 수 있다. 왜 사용할까? 애플리케이션마다 application.yml을 따로 관리하면 설정 변경이 번거로움마이크로서비스 환경에서 각 서비스의 설정을 중앙에서 통합 관리 가능Git 또는 로컬 파일 시스템을 설정 저장소로 활용 가능설정 변경 시 애플리케이션을 재시작하지 않고 실시간 반영 가능 사용법 1. Git private Repository 생성 후 SSH로 연결 window cmd창에서 아래 명령어 실행 ssh-keygen -t rsa -b 4096 -C "email" 실행하면 C:\User\사용..
1. 소개서킷 브레이커는 마이크로서비스 아키텍처(MSA)에서 서비스 장애로 인한 연쇄적인 실패를 방지하기 위한 패턴이다. 전기회로의 "회로 차단기(Circuit Breaker)" 개념에서 유래한 것으로, 특정 서비스가 장애가 발생했을 때 일시적으로 요청을 차단하여 전체 시스템이 무너지지 않도록 한다. 서킷 브레이커에서는 서비스의 상태를 아래의 3가지 상태로 구분한다. closed 정상적인 상태 open 장애가 발생해서 연결을 끊은 상태hided open 장애가 발생했는지 확인하는 상태 2. 사용 방법 Spring Boot에서는 Resilience4j 라이브러리를 사용하여 서킷 브레이커를 쉽게 구현할 수 있다. 1. 의존성 추가 build.gradleimplementation 'io.github.r..
단일 모듈에서의 Swagger 설정은 여기로 멀티 모듈(Spring Boot 기반)에서 Swagger를 설정하고 API 문서를 통합하는 방법을 정리해 봤다. 나는 모든 모듈에서 공통적으로 implement 하는 core 모듈을 사용해서 SwaggerConfig를 추상화하여 각 모듈에 Swagger 설정을 추가했다.그리고 각 모듈의 Swagger-ui 들을 각자의 IP로 들어가서 보면 불편하니까 Gateway 모듈에서 모아볼 수 있도록 설정해 주었다. 설정 과정 1. 의존성 추가Swagger를 추가할 각 모듈에는 아래 의존성을 추가하고implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.5' Swagger를 모아서 볼 Gateway모..