본문 바로가기

IT/Server14

[Spring boot] MSA 환경 구성 서비스 레지스트리 / 서비스 디스커버리MSA에서 마이크로서비스 관리와 운영을 위한 패턴 중 서비스 레지스트리와 서비스 디스커버리가 있다.서비스 간 통신 시 서비스 위치 (포트, 호스트) 가 정적이던 전통적인 애플리케이션 / 아키텍처와는 달리 주소가 동적으로 변화하고 (클라우드 환경, 오토 스케일링, 컨테이너 기반의 배포 등) 서비스 역시 무수히 많은 마이크로서비스에서는 서비스 위치에 대한 관리가 많이 복잡해지게 되는데, 이를 해결하기 위해 서비스 레지스트리 패턴과 서비스 디스커버리 패턴이 등장하게 된다.서비스 레지스트리와 서비스 디스커버리 패턴은 다음과 같다.서비스 레지스트리 마이크로서비스 / 관리, 운영을 위한 기반 서비스의 주소와 유동적인 IP를 매핑하여 저장하는 패턴 서비스 디스커버리 클라이언트가 .. 2025. 3. 25.
[Server] MSA 아키텍처 마이크로서비스 아키텍처 ( MSA ) 마이크로서비스 아키텍처는 하나의 애플리케이션을 여러 개의 독립적인 서비스로 분리하여 운영하는 소프트웨어 아키텍처 패턴이다. 각각의 서비스는 특정한 비즈니스 기능을 담당하며, 독립적으로 개발, 배포, 확장할 수 있는 것이 특징이다. 이러한 구조는 전통적인 모놀리식 아키텍처와 대비되며, 최근 클라우드 환경과 DevOps 문화가 확산됨에 따라 많은 기업들이 도입하고 있다.먼저 모놀리식 아키텍처를 살펴보면 다음과 같다.  모놀리식 아키텍처란모놀리식 아키텍처는 하나의 통합된 코드베이스에서 여러 비즈니스 기능을 수행하는 전통적인 소프트웨어 아키텍처 스타일이다. 애플리케이션의 모든 서비스가 하나의 애플리케이션 안에 포함되어 있으며, 단일 데이터베이스와 연결되어 동작한다. 즉, 여.. 2025. 3. 18.
[Server] gRPC를 이용한 요청 분석 시스템 gRPC지난 포스트에서 REST API와 비교하여 gRPC의 특징 및 장점을 살펴보았다.gRPC는 외부 사용자가 액세스 할 수 없는 내부 시스템 또는 구조를 만들 때 주로 사용하며,짧은 대시 시간과 빠른 대역폭 통신 등 메시지 전달의 효율성이 중요한 경우에 유용하게 사용할 수 있다.따라서 외부 클라이언트에게 데이터를 반환하기보다는 내부 시스템에서클라이언트 요청에 대한 분석이나 추적 시스템을 구현할 때 유용한 프로토콜이 될 수 있다.해당 포스트에서는 gRPC를 이용한 간단한 요청 분석 시스템을 보여준다.REST API와 gRPC에 대한 비교는 아래 포스트를 통해 자세히 살펴볼 수 있다. [Server] REST API & gRPCREST API / gRPCREST API와 gRPC는 서버와 클라이언트 간의.. 2025. 3. 16.
[Server] REST API & gRPC REST API / gRPCREST API와 gRPC는 서버와 클라이언트 간의 통신을 위해 사용되는 두 가지 대표적인 프로토콜이다.REST API를 사용하는 경우 gRPC와 비교 시 좀 더 광범위하게 사용되고 선호되는 것을 볼 수 있다.반대로 gRPC는 외부 사용자가 액세스 할 수 없는 내부 시스템 또는 구조를 만들 때 주로 사용된다. REST APIREST란 자원을 이름(자원의 표현)으로 구분해 해당 자원의 상태(정보)를 주고받는 모든 것을 의미한다.기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용한 아키텍처 스타일을 따르게 된다.REST API는 CRUD ( Create, Read, Update, Delete ) 연산을 수행하기 위해 URI로 GET, POST 방식의Http Method를 .. 2024. 12. 26.
[Server] Spring vs Node.js Spring / Node.js Framework대중적으로 사용하는 백엔드 프레임 워크는 Spring, Node.js 가 있다. 백앤드 개발자 공고를 찾아봐도 Spring 혹은 Node.js 서버 개발 경험을 중요시 여긴다.따라서 두 가지 Framework의 차이점을 이해하고 상황에 맞는 프레임워크를 선택할 필요가 있다. Node.js 먼저 Node.js의 정의를 살펴보면 다음과 같다.Google Chrome의 V8 Javascript 엔진으로 빌드된 Javascript 런타임 쉽게 말하자면 JavaScript를 이용하여 서버를 만들어 줄 수 있는 툴이다.이 전의 Javascript는 스크립트 언어이기 때문에, 특정 웹 브라우저(익스플로어, 크롬, 사파리) 안에서만 동작하였다.  즉, Javascript는.. 2024. 10. 2.
[Server] Nginx vs Apache Web ServerWeb Server란 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공하는 서버이다. 정적 컨텐츠란 단순 HTML 문서, CSS, 이미지, 파일 등 즉시 응답 가능한 컨텐츠이다. 이때 웹 서버가 정적 컨텐츠가 아닌 동적 컨텐츠를 요청받으면 WAS에게 해당 요청을 넘겨주고, WAS에서 처리한 결과를 클라이언트에게 전달하는 역할도 해준다. 대표적으로 Apache, Nginx 가 있다.웹 서버와 WAS 서버에 대한 개념과 자세한 차이점은 아래 포스팅을 참고하면 된다. [Server] Web Server / WAS 개념 및 차이점Web ServerWeb Server는 정적인 웹 리소스(HTML, CSS, 이미지 파일 등)를 서비스하.. 2024. 9. 30.

loading