1. 들어가며마이크로서비스 아키텍처를 도입하면, 애플리케이션은 하나의 덩어리가 아니라 여러 개의 독립된 서비스로 쪼개지게 된다. 이 각각의 서비스는 독립적으로 배포되고, 개별적으로 확장 가능하다는 장점이 있지만, 반대로 각 서비스가 서로를 찾고 통신해야하는 문제가 생긴다. 이 때, 이 문제를 해결해주는 Spring Cloud Eureka와 Service Discovery 개념에 대해서 정리해보려고 한다. 1.1 마이크로서비스에서 주소 관리는 왜 복잡해질까?근데, 왜 마이크로서비스에서 주소 관리는 복잡해진다고 할까? 서비스를 여러 개로 쪼개면 다음과 같은 문제가 생긴다.어떤 서비스가 다른 서비스를 호출할 때 정확한 주소(IP:PORT)를 알아야 한다 그런데 이 주소는 환경마다 다르고, 특히 클라우드 환경에..
분류 전체보기
1. 들어가며 Spring Cloud Config로 설정을 중앙화했지만, 변경사항을 각 서비스에 적용하는 과정이 여전히 번거롭다면 Spring Cloud Bus가 해결책이 될 수 있다. 이 글에서는 Spring Cloud Bus와 RabbitMQ를 활용하여 마이크로서비스 환경에서 설정 변경을 자동으로 전파하는 방법을 정리해본다. 2. 왜 Spring Cloud Bus가 필요한가?마이크로서비스 아키텍처에서는 여러 서비스 인스턴스가 동시에 실행되는 경우가 많다. 이런 환경에서 설정을 변경하려면 다음과 같은 문제에 직면하게 된다.2.1 Spring Cloud Config의 한계Spring Cloud Config는 설정을 중앙화하는 훌륭한 도구이지만, 다음과 같은 한계가 있다.Spring Cloud Config..
1. 들어가며마이크로서비스 환경에서는 각 서비스가 독립적으로 운영되기 때문에, 서비스별로 관리해야 할 설정 파일도 많아지고 복잡해진다. application.yml이나 application.properties에 설정을 넣어 관리하는 전통적인 방식은 규모가 작을 때는 괜찮지만, 서비스가 많아질수록 유지보수가 어려워지게 된다.그래서 등장한 것이 Spring Cloud Config. 이 구성 요소는 분산 환경에서 애플리케이션 설정을 중앙 집중식으로 관리하고, 깃(Git) 기반으로 버전까지 추적할 수 있게 해준다. 2. Spring Cloud Config란?2.1 환경 설정을 중앙에서 관리하는 이유단일 서비스에서는 보통 application.yml만 잘 관리하면 충분하지만, 마이크로서비스에서는 문제가 달라진다...
1. 들어가며.. Spring AI는 무엇인가최근 ChatGPT를 비롯한 생성형 AI의 발전과 함께, 개발자들은 자바 애플리케이션 안에서도 이러한 기술을 쉽게 통합하고 싶어 하는 니즈가 커지고 있다. 하지만 LLM API를 직접 다루는 것은 번거롭고, Java와 친화적인 추상화 계층이 없다는 점에서 진입 장벽이 존재했다. 바로 이런 문제를 해결하기 위해 등장한 것이 Spring AI다. Spring AI는 스프링 생태계에 LLM을 쉽게 연동할 수 있게 해주는 실험적인 프로젝트로, OpenAI, Azure OpenAI, Hugging Face같은 다양한 LLM 제공자들을 손쉽게 바꿔가며 사용할 수 있게 해준다. 뿐만 아니라, 프롬프트 템플릿, 벡트 기반 검색, RAG 패턴 구성 등 실제 AI 활용에 필요한..
1. CI/CD: 현대 소프트웨어 개발의 기반1.1. 정의CI/CD는 지속적 통합(Continuous Integration)과 지속적 배포(Continuous Delivery 또는 Deployment)의 약자로, 빈번하고 신뢰할 수 있는 소프트웨어 제공을 가능하게 하는 자동화된 개발 접근 방식이다.이 방식은 변경 사항을 보다 빠르고 안정적으로 릴리즈할 수 있게 하며, 반복적이고 수동적인 작업을 제거함으로써 개발 생산성과 품질을 향상시킨다.1.2. CI/CD 도입의 목적변경 사항의 빠른 통합 및 배포자동화된 테스트와 검증을 통한 품질 확보개발 및 운영 간의 경계 최소화짧은 피드백 루프를 통한 빠른 개선 사이클1.3. 기존 배포 방식과의 차이점기존의 배포 프로세스는 종종 수동적이고 오류가 발생하기 쉬웠다. ..
0. 들어가며 MCP라는 신기술이 얼마전부터 내 유튜브 알고리즘을 장악했다. AI 개발자는 아니지만, 백엔드 개발자로서 AI를 유의주시 하고 있었기 때문에, MCP를 알게되었을 때 이것도 적응하지 못하면 도태되겠구나 라는 생각이 우선이었다. MCP는 Model Context Protocol의 약자로, LLM 애플리케이션과 외부 데이터 소스 및 도구들 간의 원활한 통합을 가능하게 하는 개방형 프로토콜이다. AI 기반 IDE, 채팅 인터페이스, 커스텀 AI 워크플로우 등에서 LLM이 필요한 컨텍스트와 연결하기 위한 표준화된 방법을 제공한다. 즉, 이 프로토콜로 인해서 여러 모델과 기존 DB, 툴들간의 연동으로 AI를 더 편리하게 확장시킬 수 있게 되었다. Copilot을 사용해본적은 없고, 주로 Inteil..