TIL 2023 10 17

김민준·2023년 10월 17일
0

도메인 주도 설계 DDD Domain-Driven Design 이란?

마이크로 서비스의 설계 방법론

  • 도메인 Domain : 유사한 업무/관심사의 집합
  • 도메인 패턴을 중심에 놓고 설계하는 방식
  • 유비쿼터스 랭귀지 Ubiquitous Language : 프로젝트에 참여하는 인원들이 자신 분야의 전문용어가 아니라 도메인에서의 공통용어를 사용한다. 이것을 데이터 모델과 코드에 반영하여 의사소통을 개선하고 모델의 일관성을 유지한다.
  • 모듈/앱간의 의존성을 최소화하고 응집성을 최대화한다.

예시

써야하는 이유

  • 비즈니스 도메인에 집중 : 비즈니스 로직과 요구사항을 명확하게 모델링하고 이해할 수 있도록 도와준다.
  • 협업 용이 : 협업자들이 도메인을 동일하게 이해하고, 지식을 공유할 수 있다.
  • 개발자가 코드를 해석하기 쉬워진다.
  • 모듈간의 의존성을 줄여서 유지 보수와 확장성을 확장 시킨다.

TCP/IP 와 OSI 7


이미지 출처

둘 다 네트워크 통신을 위한 프로토콜 스택입니다.
낮은 계층인 물리적 계층부터, 높은 계층인 응용계층까지 존재합니다.
하지만 다른 방식으로 계층화되고 사용됩니다.

  1. TCP/IP : 실제로 사용되는 프로토콜 스택 4계층
    네트워크 엑세스 > 인터넷 > 전송 > 응용
    알파넷 때 부터 있던 개념
    연결 지향적 : 클라이언트와 서버가 서로 연결 됨
  2. OSI : 데이터 통신 과정을 7계층으로 나눈 것
    물리 > 데이터 링크 > 네트워크 > 전송 > 세션 > 표현 > 응용 계층
    * ISO에서 개발한 것

이러한 계층화의 장점은

  • 모듈화 : 각 계층의 역할을 이해하면 관리가 더 쉽다.
    * 유지 보수 및 확장성 : 각 계층은 서로 독립적이기 때문에, 각따로 유지 보수, 확장이 가능하다.
    • 서비스 장애가 있을 시 오류의 종류에 따라서 어느 계층의 문제인지 알아낼 수 있다.
  • 호환성 : 다른 회사의 장비들도 같은 프로토콜을 따르기 때문에 상호 운용성을 보장할 수 있다.
  • 프로토콜 스택 : 계층화 구조로 모여있는 프로토콜들의 집합.
  • 프로토콜 : 네트워크 통신에서 합의된 규칙들의 집합.

TCP/IP 프로토콜에 대해

  • 컴퓨터 통신을 위한 표준 프로토콜
    IP를 발견하면 TCP가 정확한 데이터 전달을 보장해준다.
    둘은 다른 개념이며 서로 필요하다.

1. 네트워크 엑세스 계층 Network Access Layer (물리계층)
TCP/IP의 최하위 계층
물리적인 MAC 주소
Frame 단위로 전송
2. 인터넷 계층 Internet Layer
node 간의 라우팅/ 패킷 전송을 위한 계층
호스트-네트워크간 데이터 그램을 전달
데이터 패킷(압축된 정보,IP다이어그램)을 전달
IP 다이어 그램의 라우팅 담당
3. 전송 계층 Transport Layer
데이터를 패킷으로 나누고, 다른 장치까지 전송
연결제어, 전송의 신뢰성을 보장
4. 응용계층 Application layer
TCP/IP 최상위 계층
* 사용자가 네트워크에 엑세스하는 응용 프로그램 그룹

OSI 7 계층에 대해

1. 물리계층 Physical Layer
주고받는 데이터의 무결성은 검증하지 않음
전기/기계/기능적 특성으로 데이터 전송
2. 데이터 링크 계층 DataLink Layer
데이터의 오류와 흐름을 관리
3. 네트워크 계층 Network Layer
라우팅 : 패킷 최적 경로로 전달하는 기능
IP 주소 부여
IP, ICMP, X.25, BGP, RIP
4. 전송 계층 Transport Layer
양 끝단이 데이터를 주고받을 수 있게 함
TCP/UDP
5. 세션 계층 Session Layer
데이터 끼리 만나는 환경 조성
세션 설정/유지/종료, 전송 복구 등
TLS, SSH, NetBIOS
6. 표현 계층 Presentation Layer
데이터의 압축/암호화
다른 형태로 번역하고, 역순으로 행한다.
SSL, JPEG, MPEG
7. 응용 계층 Application Layer
네트워크를 사용하는 응용 프로그램들
* HTTP, HTTPS, FTP, SMTP, POP3

참조한 페이지

DDD 핵심만 빠르게 이해하기
DDD(Domain Driven Design)

HTTP 와 TCP/IP , OSI 7 계층
TCP/IP와 OSI 7 레이어의 차이점
[요고] OSI 7계층과 TCP/IP 4계층 두가지의 차이점이 뭐야
[이해하기] osi 7계층 그리고 tcp/ip 4계층
[네트워크] 프로토콜 스택(protocol stack)이란?

profile
node 개발자

0개의 댓글

관련 채용 정보