LG CNS

1. 들어가며2월 21일부터 2월 26일까지 진행했던 미니프로젝트인데 뒤늦게 정리 겸 회고글을 작성해본다. 시기 상 JavaScript, React, Java, Spring 에 대한 수업이 끝나고 조 편성이 되어 진행했었다. 주어진 프로젝트 요구 사항 중 주제는 AI를 활용한 뉴스 서비스 개발이었다. LG CNS AM Inspire Camp에 들어오기 전 소개글 중 AI를 다룬 다는 내용을 보고 Spring AI에 대한 관심이 있어 써보고 싶은 마음이 컸는데, 이 프로젝트에서 써보는 것으로 첫 경험을 쌓았었더랬다. 팀원 구성 및 역할 분담은 프론트엔드 2명, 백엔드 2명, 인프라 1명이었다. 나는 여기서 팀장과 백엔드를 맡았고, Spring AI를 활용한 뉴스 서비스, 전역 예외처리, 회원 서비스, 카테..
1. 들어가며최근 백엔드 시스템 아키텍처를 이야기할 때 빠지지 않고 등장하는 키워드가 있다. 바로 MSA(Microservice Architecture)다.하지만 단순히 "서비스를 나눈다"는 말로는 MSA를 정확히 이해하기 어렵다. MSA는 기술적인 설계인 동시에, 조직 구조와 운영 방식까지 영향을 주는 아키텍처 패러다임이다. 오늘날 많은 기업과 개발팀이 모놀리식 아키텍처에서 마이크로서비스 아키텍처로 전환하고 있지만, 단순히 트렌드라는 이유만으로 선택하기엔 그 변화가 가지는 의미와 복잡도가 꽤 크다. (특히 조금 경험해보니 비용이 만만치않다) 앞선 글들에서는 spring cloud를 정리하면서 MSA에 필요한 기술들을 정리해왔었는데, 이 글에서는 기존의 모놀리식 아키텍처와 비교하며, MSA의 개념, 특징..
1. 들어가며어떤 시스템이든 안정적으로 운영되기 위해서는, 현재 CPU 사용률이 어떤지, 메모리는 얼마나 쓰는지, 디스크 공간은 얼마나 남았는지 같은시스템 자원 상태를 실시간으로 확인할 수 있는 모니터링 체계가 필요하다. 이 글에서는 최종 프로젝트의 관제 시스템을 만들기 위해 필수요소인 대표적인 오픈소스 기반의 시스템 모니터링 툴체인 Node Exporter + Prometheus + Grafana를 중심으로 각각의 역할과 구성 방법을 정리해본다. 2. 구성요소 개요2.1 Node ExporterNode Exporter는 리눅스 서버의 시스템 정보를 수집해주는 lightweight exporter다. CPU, Memory, Disk, Network, Load Average, Uptime 등 노드 단위의..
1. 들어가며Spring Boot를 사용하다 보면 “애플리케이션이 잘 떠 있는지, DB는 연결됐는지, 메모리는 얼마나 쓰고 있는지” 같은 내부 상태를 확인하고 싶을 때가 많다. 이럴 때 유용한 도구가 바로 Spring Boot Actuator다. Actuator는 애플리케이션의 다양한 정보를 HTTP 엔드포인트로 노출해주며, 모니터링, 운영, 헬스체크, 메트릭 수집 같은 기능을 손쉽게 구현할 수 있도록 도와준다. 이전 부트캠프 프로젝트에서는 Actuator를 사용하지 않고 Node Exporter를 이용한 Metric 수집만 했었는데 이번 기회에 여러 MSA 프로젝트를 하면서 Actuator를 사용해볼 수 있었다. 2. Spring Boot Actuator란?Spring Boot Actuator는 애플리..
1. 들어가며마이크로서비스 아키텍처를 구축하다 보면 여러 개의 독립된 서비스가 생기고,각 서비스마다 클라이언트가 직접 접근하도록 두는 건 보안, 버전 관리, 로드밸런싱 측면에서 매우 비효율적이다.그래서 모든 외부 요청을 하나의 진입점을 통해 받아서 내부 서비스로 분기시키는 패턴이 등장했는데, 그게 바로 API Gateway다.Spring Cloud에서 공식적으로 지원하는 Gateway 컴포넌트인 Spring Cloud Gateway는 이 역할을 수행하기에 최적화된 도구다. 2. Spring Cloud Gateway란?Spring Cloud Gateway는 스프링 생태계에서 API Gateway 역할을 수행하는 프로젝트로, 기존 Zuul 1의 한계를 개선하여 WebFlux 기반으로 만들어졌다. 이는 비동기..
1. 들어가며마이크로서비스 아키텍처를 도입하면, 애플리케이션은 하나의 덩어리가 아니라 여러 개의 독립된 서비스로 쪼개지게 된다. 이 각각의 서비스는 독립적으로 배포되고, 개별적으로 확장 가능하다는 장점이 있지만, 반대로 각 서비스가 서로를 찾고 통신해야하는 문제가 생긴다. 이 때, 이 문제를 해결해주는 Spring Cloud Eureka와 Service Discovery 개념에 대해서 정리해보려고 한다. 1.1 마이크로서비스에서 주소 관리는 왜 복잡해질까?근데, 왜 마이크로서비스에서 주소 관리는 복잡해진다고 할까? 서비스를 여러 개로 쪼개면 다음과 같은 문제가 생긴다.어떤 서비스가 다른 서비스를 호출할 때 정확한 주소(IP:PORT)를 알아야 한다 그런데 이 주소는 환경마다 다르고, 특히 클라우드 환경에..
chillmyh
'LG CNS' 태그의 글 목록