본문 바로가기

CS 지식12

이벤트 기반 아키텍처(Event Driven Architecture)란? 이벤트 기반 아키텍처란? 이벤트에 대한 상태 변화에 반응하는 소프트웨어 아키텍처를 의미합니다. 이벤트란? 상태의 변경. 즉, 데이터의 변경, 생성, 삭제를 통해 발생하는 서비스의 의미 있는 변화를 뜻합니다. 이벤트 기반 아키텍처는 어떻게 작동할까? 이벤트의 감지에서 시작하여 이벤트 구조의 형태로 기술적 표현의 생성으로 진행하고 비로 끝나는 네 가지 논리적 계층으로 나눠져서 데이터를 처리합니다. 이벤트 프로듀서 (Publisher, Producer, Creater) 이벤트를 감지하고 감지한 이벤트를 메시지로 나타내는 역할을 합니다. 예시) 이벤트 프로듀서는 고객이 전자상거래 사이트에서 주문을 하면 "Check Out" 이벤트가 발생하여 이벤트 채널에 전달됩니다. 이벤트 채널 (Bus, broker, Rou.. 2022. 3. 20.
Server-Sent Events(SSE)란? 정의 클라이언트가 서버로부터 실시간으로 데이터를 수신할 수 있도록 하는 W3C 표준 기술 왜 이 기술이 나왔을까? 먼저 실시간 통신을 가능하게 하기 위한 옵션을 살펴보겠습니다. HTTP Polling 여기서 REST 끝점을 사용하여 새 정보가 도착했는지 확인하기 위해 서버에 지속적인 요청이 이루어집니다. 따라서 기본적으로 클라이언트는 설정된 빈도로 요청을 하고 많은 요청을 일으키며 종종 서버는 빈 응답으로 돌아옵니다. 따라서 그다지 유익하지 않습니다. HTTP Long Polling HTTP Polling의 개선 사항은 HTTP Long Polling입니다. 여기에서 요청에 대한 응답은 새 데이터가 나타날 때만 반환되며 연결을 유지함으로써 가능합니다. 클라이언트에 관한 한 기본 폴링과의 유일한 차이점은 .. 2022. 3. 11.
캐시(Cache) 란? 정의 자주 사용하는 데이터를 빠르게 제공하기 위해 임시적으로 저장하는 저장소 캐시를 왜 사용할까? 이를 이해하기 위해선 먼저 캐시의 역사에 대해 알아보겠습니다. 현대의 프로세서는 80년대와 90년대 초반의 원시 조상들보다 광년 앞서 있습니다. 오늘날, 최상위 소비자 칩은 4 GHz를 훨씬 상회하는 반면, 대부분의 DDR4 메모리 모듈은 1800 MHz 미만으로 평가되고 있습니다. 따라서 프로세서가 아무리 빨라도 계산에 필요한 데이터를 얻기 위해서는 상대적으로 느린 메인 메모리에 접근해야 하기 때문에 전체적인 시스템 성능 향상에 한계가 생겼습니다. 그래서 이 문제를 해결하기 위해 CPU와 메인 메모리 사이에 캐시를 두게 되었습니다. 캐시는 둘 사이의 속도 간극을 줄여주는 역할을 하여 반복적으로 사용되는 데.. 2022. 3. 1.
GraphQL 이란? 정의 API를 제공하기 위한 쿼리 언어 쿼리 언어란 뭘까? 사용자에게 필요한 정보를 데이터베이스나 정보 시스템에 보여달라고 요청할 수 있게 하는 컴퓨터 언어입니다. 쿼리 언어 종류는 여러 가지가 있지만 대표적으로 알려진 언어로는 SQL(Structured Query Language)이 있습니다. SQL과 GraphQL은 어떤 차이점이 있을까? 언어적 구조, 사용법 등 여러 가지 차이가 존재하나 가장 큰 차이점은 언어의 목적이 다르다는 점입니다. SQL은 데이터베이스에 저장된 데이터를 효율적으로 가져오는 것이 목적이며, GraphQL은 웹 클라이언트가 데이터를 서버로부터 효율적으로 가져오는 것이 목적입니다. 왜 이 기술이 생겨났을까? 기존에는 API 개발을 할 경우 주로 REST API를 사용했었습니다. .. 2021. 11. 16.