본문 바로가기

분류 전체보기62

함수형 프로그래밍이란? 함수형 프로그래밍이란? 선언적 프로그래밍 스타일 중 하나며, 순수 함수 구성에 중점을 둔 프로그래밍 방식 언제 함수형 프로그래밍이 나왔을까? 첫 번째 함수형 프로그래밍 언어가 나온 시기는 첫 번째 객체지향 프로그래밍 언어라고 할 수 있는 Simula(1962), Smalltalk(1972)보다도 더 먼저인 1958년에 LISP가 등장했습니다. 왜 이전에는 함수형 프로그래밍이 주목받지 못했을까? 기존에 함수형 프로그래밍이 주목받지 못했던 이유는 배우는데 시간이 좀 걸리고 어렵다고 느껴졌기 때문이었습니다. 이러한 이유로 사람의 사고방식과 가까운 절차 지향, 객체지향 프로그래밍이 많이 사용되었습니다. 하지만 요즘 AI, IoT, 빅데이터, 블록체인 등이 떠오르면서 많은 데이터를 빠르게 병렬적으로 안정적으로 처.. 2022. 4. 28.
이벤트 기반 아키텍처(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.