본문 바로가기
반응형

Delvelopment60

RPC(Remote Procedure Call) 이란? RPC(Remote Procedure Call)는 클라이언트-서버 구조에서 원격지의 서버에서 프로시저(함수)를 호출하는 프로세스입니다. RPC는 분산 시스템에서 클라이언트와 서버 간의 통신을 단순화하고, 프로그래머가 개발에 더 집중할 수 있도록 도와줍니다. 특징 투명성 RPC 시스템은 클라이언트 애플리케이션과 서버 간의 통신을 추상화하여 사용자가 투명하게 통신할 수 있도록 합니다. 추상화 RPC 시스템은 사용자가 RPC 인터페이스를 통해 서버의 함수나 메소드를 호출할 수 있도록 추상화된 인터페이스를 제공합니다. 서비스 지향 아키텍처 RPC는 서비스 지향 아키텍처(SOA)를 구현할 수 있는 기술로, 다른 서비스와의 통신을 위해 인터페이스를 사용합니다. 다양한 프로토콜 RPC 시스템은 다양한 프로토콜을 지원.. 2023. 3. 19.
[Spring] WebFlux EventLoop (Non Blocking) Spring Webflux에서 사용되는 EventLoop를 보기 위해 Spring mvc 에서 사용되는 thread per request에 대해서 비교해 보려고 한다. 두 모델의 차이는 Blocking처리 방식과 Non-Blocking 처리 방식으로 Thead의 idle 시간을 줄여 동시에 더 많은 요청을 처리 할 수 있게된다. Spring mvc에서는 DispathServlet형태의 Servlet으로 처리되어 톰캣에 의존적입니다. 또한, thead per request방식으로 Servlet Container에서 요청을 Thread에 할당하여 Blocking 방식으로 호출되며 Idle 상태가 됩니다. Blocking 방식으로 idle 상태가 유지되면 많은 요청이 있는 서비스에서는 적절한 처리를 하지 못하.. 2022. 12. 4.
프로모션을 대비한 대기열 시스템 구성하기 (Redis, WebSocket, Spring) 회사내 기술블로그에 작성했던 글인데.. 기술블로그 오픈에 대한 내용이 홀딩되면서 1년이 지난 시점에 재작성 해봣다. BackEnd 위주 구성에 대한 내용들이니 참고하길 바랍니다~! ✔개요 대기열 시스템의 탄생 배경 이번에 회사에서 새로운 상품을 오픈하기 위해 대대적인 마케팅?을 진행한다는 것을 전달받아 대기열 시스템을 설계, 개발을 진행했습니다. 왜? 우리는 대기열 시스템이 필요했을까? 현재 대고객 서비스를 위한 개발 및 운영하고 있으며, 상품에 대한 주요정보 등을 코어영역와의 통신을 통해 처리하고 있다. (우리는 고객을 상대하는 채널이다.) 우리가 도입하려는 대기열 시스템은 고객의 동접을 대응하지 못할때 FIFO(선입선출) 방식으로 순차적으로 트래픽을 처리하기 위한 방안입니다. 레거시 시스템의 경우에는.. 2022. 8. 10.
[Design Pattern] 복합체 패턴, 컴포지트 패턴 (Composite Pattern) 컴포지트 패턴(Composite Pattern) 으로 객체를 트리구조로 구성해서 부분-전체 계층구조를 구현합니다. 컴포지트 패턴을 사용하면 클라이언트에서 개별 객체와 복합 객체를 똑같은 방법으로 다룰 수 있습니다. 이 패턴을 사용하면 중첩되어 있는 그룹과 항목을 똑같은 구조 내에서 처리 할 수 있습니다. 그룹과 항목을 같은 구조에 넣어서 부분 - 전체 계층 구조(part-whole hierarchy)를 생성할 수 있습니다. 여기서 부분 - 전체 계층 구조란, 부분들이 계층을 이루고 있지만 모든 부분을 묶어서 전체로 다룰 수 있는 구조를 말합니다. 컴포지트 패턴을 사용하면 객체의 구성과 개별 객체를 노드로 가지는 트리 형태의 객체 구조를 만들 수 있습니다. 이런 복합 구조(composite structur.. 2022. 7. 9.
[Design Pattern] 반복자 패턴 (Iterator Pattern) 반복자 패턴(Iterator Pattern)은 컬렉션의 구현 방법을 노출하지 않으면서 집합체 내의 모든 항목에 접근하는 방법을 제공한다. 이 패턴을 사용하면 집합체 내에서 어떤 식으로 일이 처리되는지 전혀 모르는 상태에서 그안에 들어있는 모든 항목을 대상으로 반복 작업을 수행할 수 있습니다. 디자인에 반복자를 적용했을 때 얻는 효과도 중요합니다. 컬렉션 객체 안에 들어있는 모든 항목에 접근하는 방식이 통일되어 있으면 종류에 관계없이 모든 집합체에 사용할 수 있는 다형적인 코드를 만들 수 있기 때문이다. 반복자 패턴을 사용하면 모든 항목에 일일이 접근하는 작업을 컬렉션 객체가 아닌 반복자 객체가 맡게 된다는 사실도 중요하다. 이러면 집합체의 인터페이스와 구현이 간단해지고 집합체는 반복 작업에서 손을 떼고 .. 2022. 7. 9.
[Design Pattern] 팩토리 메소드 패턴 (Factory Method Pattern) 팩토리 메소드 패턴(Factory Method Pattern)에서는 객체를 생성할 때 필요한 인터페이스를 만듭니다. 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정합니다. 팩토리 메소드 패턴을 사용하면 클래스 인스턴스 만드는 일을 서브클래스에게 맡기게 됩니다. (해드퍼스트) 객체를 생성하기 위한 인터페이스를 정의하고, 어떤 클래스의 인스턴스를 생성할지에 대한 처리는 서브클래스가 결정하는 디자인 패턴 (GoF) 다른 팩토리를 쓸 떄와 마찬가지로 팩토리 메소드 패턴으로 구상 형식 인스턴스를 만드는 작업을 캡슐화할 수 있다. 팩토리 메소드 패턴에서는 어떤 클래스의 인스턴스를 만들지를 서브클래스에서 결정한다. 사용하는 서브클래스에 따라 생산되는 객체 인스턴스가 결정된다. 제품을 생산하는 부분과 사용하는 부.. 2022. 7. 3.
반응형