로직과의 사투/CS

    헥사고날 아키텍처 적용하기

    들어가며우리가 개발하는 어플리케이션은 생애주기 간 필연적으로 수정된다. 기반 기술이 변경(이를테면, DB의 변경, Client 라이브러리의 변경 등)되기도 하며, 요구사항이 바뀌기도 한다. 그렇기에 핵심 코드는 견고하게 관리하고 주변 요소들의 수정엔 크게 영향을 받지 않는 설계가 필요하다. 이를 가능하게 해주는 것이 헥사고날 아키텍처 (Hexagonal Architecture) 또는 포트와 어댑터 아키텍처(Ports and Adapters Architecture)다.대부분 레거시 코드의 경우 레이어드 아키텍처일 확률이 매우 높다. 레이어드 아키텍처는 이해하기 쉽고, 첫 개발의 시작 속도가 빠르단 장점이 있지만, 단점 또한 명확하다. 우선, DB Layer의 토대로 각 계층이 쌓이기 때문에 개발자로 하여금..

    [Network] 자주 찾게 되는 네트워크 상식

    프로토콜 (Protocol) a. 프로토콜은 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터 교환 방식을 정의하는 규칙 체계 b. 기기간 통신은 교환되는 데이터의 형식에 대한 상호 합의를 요구 c. b. 와 같은 규칙의 집합 = 프로토콜 패킷 통신 a. 패킷 교환 (Packet Switching) 방식은 미리 이동 경로를 정하지 않고, 데이터를 패킷이라는 작은 단위로 나누어 다중 노드로 구성된 네트워크를 통해 전송하는 개념 b. 전송될 데이터는 패킷 단위로 쪼개어지고 수신지에 도착했을 때 번호 순서대로 결합되어 원 데이터로 결합. c. 각 패킷은 전송 당시 가장 효율적인 경로를 설정하여 최종 목적지까지 이동. d. 때문에 각 노드들은 가장 효율적인 경로를 패킷에 안내 필요. e. d. 와 같은 기능을 하는..

    미들웨어와 WAS 그리고 Web Server

    미들웨어 미들웨어는 양 쪽을 연결하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어, 네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해 주는 소프트웨어를 말한다. 3계층 클라이언트/서버 구조에서 미들웨어가 존재하며 일반적으로 웹 브라우저에서 데이터베이스로부터 데이터를 저장하거나 읽어올 수 있게 중간에 미들웨어가 존재하게 된다. 대표적으로 TP Monitor(Transaction Processing Monitor), WAS(Web Application Server) 등이 있다. 클라이언트 사이드의 비즈니스 로직을 최소로 줄이고 비즈니스 로직 자체를 클라이언트와 DBMS사이의 미들웨어 서버에서 동작하도록 함으로써 클라이언트는 입..

    빅오 표기법

    1. 빅오란? (O, big-O) 빅오(O, big-O)란 입력값이 무한대로 향할 때 함수의 상한을 설명하는 수학적 표기방법이다. 란다우 표기법이라고도 하며 점근 표기법의 일종으로 빅오는 점근적 실행시간을 표현하기 위해 사용한다. 점근적 실행 시간이란 입력값 n이 커질 때, 즉 입력 값이 무한대를 향할 때 실행 시간의 추이를 의미한다. 빅오(O)는 상한을 의미한다. 이외에도 하한을 표현하는 빅 오메가, 평균을 의미하는 빅세타 등이 있지만 상한으로 표현하는 표현법을 널리 사용한다. 컴퓨터 사이언스에서 빅오는 알고리즘의 성능을 표현하는 데 주로 사용하며 시간과 공간 복잡도를 표현할 수 있다. 알고리즘의 실제 성능을 표현하는 표기법이 아님을 기억해야한다. 2. 빅오의 예시 - O(1) 빅오에서 상수는 입력한 ..