반응형

컴퓨터 공학/Web 3

Hexagonal Architecture 소개

개요 Hexagonal Architecture (줄여서 HA)는 Alistair Cockburn이 2005년에 제안한 구조입니다. HA는 기존의 Layered Architecture에서 더 나아가 레이어 간에 직접적인 연결을 맺는 대신, 중간에 인터페이스를 통해 상호작용을 함으로써 결합도 (coupling)를 낮추도록 설계된 아키텍처입니다. 결합도를 낮추게 되면 각 레이어를 자유롭게 교체할 수 있으며, 이를 통해 테스트를 손쉽게 수행할 수 있습니다. 또 다른 이름으로 HA는 Ports and Adapters라고도 불립니다. 아키텍처의 구조를 인터페이스인 포트와 중개 역할을 하는 어댑터를 통해 설명하고 있기 때문입니다. 작업 영역 이번 포스팅에서 소개하는 HA를 적용한 애플리케이션을 “HA 앱”이라고 하겠..

주요 HTTP 상태 코드 (feat. 맥도날드)

1XX : Information Response 상태코드가 1로 시작하는 경우는 서버가 클라이언트로부터 요청을 받았으며, 서버에 연결된 클라이언트는 작업을 계속 진행하라는 의미이다. 해당 코드는 HTTP 1.0 에서 지원되지 않는다. 식당에서 손님이 종업원에게 음식을 주문하는 상황을 생각할 수 있다. 손님이 음식을 주문한 후, 종업원이 1XX로 주문이 완료되었음을 응답해주는 상황을 생각하면 된다. 100 Continue 진행 중임을 의미하는 응답코드이다. 현재까지의 진행상태에 문제가 없으며, 클라이언트가 계속해서 요청을 하거나 이미 요청을 완료한 경우에는 무시해도 되는 것을 알려준다. 손님이 음식을 주문한 후에 오랫동안 음식이 나오지 않자, 종업원에게 "혹시 10번 테이블 음식 주문 들어갔나요?"라고 물..

HOL (Head Of Line) 블로킹 문제

개요 기존의 HTTP의 요청은 큐 처리와 동일하다. 먼저 들어온 요청을 반드시 먼저 응답해주어야 하는 방식으로 동작하는데, 만약, 먼저 들어온 작업 요청에서 지연이 발생하면 이후 들어온 요청들은 먼저 들어온 작업이 끝날 때 까지 함께 대기해야 한다. 이 문제를 HTTP/2에서 어떻게 해결했는지 간단하게 정리한다. HTTP/1.1 HTTP는 TCP 연결을 기반으로 동작하는 프로토콜이다. HTTP는 비연결성 프로토콜이기 때문에 한 번 연결로 한 번의 요청과 응답을 하고 응답이 끝나면 연결을 끊어버린다. 그런데 한 번 연결을 수립할 때 마다 오버헤드가 발생한다. 예를 들어, 전체 작업량을 10이라고 한다면, 연결을 수립하는데만 4의 작업량이 필요하다고 가정하면 한번의 요청과 응답만 하고 연결을 끊기에는 너무 ..

반응형