본문 바로가기
728x90

전체 글286

Chapter2. Story 1. 소켓을 작성한다. 프로토콜 스택의 내부 구성 OS에 내장된 네트워크 제어용 소프트웨어(프로토콜 스택)와 네트워킁용 하드웨어(LAN 어댑터)가 네트워크 애플리케이션에서 받은 메시지를 서비스하는 동작을 알아보자. 네트워크를 통해 데이터를 송수신하는 컴퓨터는 다음과 같이 계층을 나눌 수 있다. 모든 네트워크를 통한 데이터 송수신은 네트워크 애플리케이션에서 부터 아래로 향한다. 그러면서 데이터 송/수신 등의 일을 하위 계층에 의뢰한다. TCP, UDP는 데이터 송수신을 담당한다. 애플리케이션에서 보낸 의뢰를 받아 송/수신 동작을 실행한다. 일반적인 데이터 송/수신은 TCP를 사용하며 DNS 서버에 대한 조회 같은 짧은 제어용 데이터는 UDP를 사용한다. IP는 패킷 송/수신 동작을 제어한다. 패킷을 통신 상대 까지 운반하는 것이.. 2022. 7. 24.
연관관계 매핑 기초 테이블들은 FK를 통해 관계를 맺고 객체는 참조를 통해 관계를 맺는다. 이 둘은 완전히 다른 특징을 가진다. 그때문에 ORM에서 가장 어려운 부분이 객체 연관 관계와 테이블 연관관계를 매핑하는 일이다. 용어 정리 객체 참조와 테이블 FK를 매핑하기 전에 용어 정리부터하자. 방향(direction): 양방향, 단방향이 존재한다. 단방향: 하나의 관계에서 한 쪽만 참조한다. x -> y 이거나 y -> x 이다. 양방향: 하나의 관계에서 양쪽이 모두 참조하고 있다. x -> y 임과 동시에 y -> x이다. 방향은 객체관계에만 존재하고 테이블 관계는 항상 양방향이다. 다중성(Multiplicity): N:1, 1:N, 1:1, N;M 연관관계의 주인(owner): 객체를 양방향 연관관계로 만들면 연관관계의 .. 2022. 7. 18.
Event Storming 왜 DDD를 사용하나? 1. DDD를 사용하면 실제 비즈니스 도메인을 아키텍처에 투영해 도메인을 정의하고 이 도메인을 바탕으로 커뮤니케이션 할 수 있다. 2. 도메인 전문가와 개발자들이 공통된 언어를 사용할 수 있다. 위와 같은 이점들로 인해 DDD는 현재 널리 사용되고 있는 설계 방식이다. 그리고 DDD를 하기 위한 가장 쉬운 방법 중 하나가 Event Storming이다. Event Storming 사전 준비: 1. 다양한 색의 포스트잇, 마커 2. 포스트잇을 붙일 수 있는 큰 공간(모두가 볼 수 있어야 한다) 3. 각 포스트잇 색이 의미하는 바를 명시해 놓은 공간(모두가 볼 수 있어야 한다) 4. 좌석은 없이, 서서 진행한다 5. 개발자 뿐만아니라 해당 소프트웨어를 제작하는데 필요한 모든 인원들이 .. 2022. 7. 17.
Story 4. 프로토콜 스택에 메시지 송신을 의뢰한다. 데이터 송/수신 동작의 개요 IP 주소를 찾으면 엑세스 대상 웹 서버에 메시지를 송신하기 위해 OS 내부에 있는 프로토콜 스택에 의뢰한다. 이 때, 송수신 하는 데이터는 디지털 데이터이며 웹 뿐만 아니라 네트워크를 사용하는 모든 애플리케이션의 공통 동작이다. DNS를 통해 IP를 찾는 것 또한 모든 네트워크에 연결된 애플리케이션에 공통 동작이다. 데이터를 송/수신하는 과정 역시 소켓 라이브러리를 사용한다. 이 과정은 복수의 함수를 결정된 순번대로 호출해야 하므로 조금 복잡하다. 이 과정을 도식화하면 다음과 같다. 위 그림에 존재하는, 클라이언트의 소켓과 서버 소켓을 연결하는 파이프를 만들기 위해선 양자를 파이프로 연결하는 동작이 필요하다. 이 파이프에 존재하는 두 출구를 소켓이라 한다. 서버의 소켓이 만.. 2022. 7. 13.
728x90