본문 바로가기

전체 글57

[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.
[Spring boot] 암호화된 PK의 복호화 구현 PK 암호화저번 포스트에서 URI에서 PK가 노출되는 것을 막기 위해PK를 암호화하여 URI를 구성하도록 구현하였다. [Spring boot] PK Id 노출을 막는 Rest APIRest APIRest API 설계에서 자원을 식별하는 데 URI를 사용하는 방식은 매우 일반적이며, 자원이 명확히 식별될 수 있어야 한다는 REST의 개념에 부합한다. 따라서 URI에 리소스 식별자인 ID를 포함하는kyu-nahc.tistory.com따라서 Rest API를 요청할 때 URI 형식은 /test/aAPzwpKf+0mFtlfbU1wCWA== 다음과 같고,이런 식으로 암호화된 값을 통해 URI를 구성하여 API 요청을 하게 된다.그렇다면 API 요청을 받고 이를 복호화하는 로직도 반드시 존재해야 한다. 컨트롤러에서.. 2024. 10. 4.
[Spring boot] PK Id 노출을 막는 Rest API Rest APIRest API 설계에서 자원을 식별하는 데 URI를 사용하는 방식은 매우 일반적이며, 자원이 명확히 식별될 수 있어야 한다는 REST의 개념에 부합한다. 따라서 URI에 리소스 식별자인 ID를 포함하는 것은 흔한 접근 방식이다. 예를 들어, Http PUT 요청을 통해 /api/post/1이라는 엔드포인트는 1번 포스트를 수정하는 API라는 것을 직관적으로 알 수 있다. 리소스 식별자와 PK( Primary Key ) 사용리소스를 식별하기 위해 보통 고유한 값을 필요로 하는데, 중복되지 않는 고유 ID를 생성하는 방식 중 하나로 DB의 PK를 자주 활용한다. PK는 이미 DB에서 유일성을 보장하고 있기 때문에 이를 REST API에서 식별자로 사용하는 것이 자연스럽고 URI를 표현하는데 .. 2024. 10. 3.

loading