서버리스, 도메인 주도 설계

Purple·2022년 4월 7일
0

DevOps

목록 보기
2/5

1. 서버리스

  • 서버가 없는 것이 아니라 서버를 관리할 필요가 없어 서버에 대한 고민을 안하는 것을 말한다.
  • 서버리스의 예시로는 AWS Lambda가 있다.
  • 서버리스의 장점으로는
    • 서버관리 불필요
    • 유연한 확장성
    • 고가용성
    • 유휴 용량 없음

2. 도메인 주도 설계 (Domain Driven Design)

  • 하나의 도메인 모델에 대한 이해관계가 각자 다름을 인정
  • 각 팀에 적합한 하위 도메인을 설정
  • 해당 하위 도메인에 대한 맥락을 알고 있는 사람이 따라야 할 비즈니스 규칙에 대한 경계를 설정하는 설계 방식
  • 도메인 내부에서 문제 해결이 가능한 형태로 도메인을 모델링하는 기법 → 마이크로 서비스와 잘 맞는다!

3. 도메인 주도 설계 용어

3-1. 도메인

  • 도메인은 지식, 영향력 또는 활동 영역을 말한다.
  • 개발분야에서는 소프트웨어로 해결하려는 문제의 영역을 의미한다.

3-2. 보편 언어(ubiquitous language)

  • 도메인의 특정 업무와 관련된 사람들 사이에서 통용되는 개념이다.
  • 도메인 어휘를 이해 관계자들이 공통적으로 이해할 수 있도록 정의하는 것, 공통의 언어

3-3. 단일 책임 원칙(SRP, Single Responsibility Principle)

  • 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화 해야 함을 일컫는다.

3-4. 도메인 이벤트

  • 발생한 사건으로, 시간 흐름에 따른 시스템의 동작을 의미한다.
  • 비지니스 흐름에서 발생한 이벤트에 초첨을 맞춰서 결정한다.

3-5. Command

  • 도메인 이벤트를 trigger 하는 명령

3-6. Hotspot

  • 의문사항, 결정하기 힘든 사항

3-7. Aggregate

  • 연관 객체의 묶음
  • 묶음 안에 포함되어 있는 특정 Entity를 Aggregate Root라고 한다.
  • 여러 Entity를 묶어서 가져오는 경우가 많을 땐 개발에서 Aggregate Root에 해당되는 Entity에 대해서만 Repository를 만드는 경우가 많다.

4. 마이크로서비스 아키텍처

  • DDD를 실천하기에 딱 맞는 마이크로 서비스 아키텍처이다.
  • 마이크로 서비스 아키텍처는 DDD를 실천하기 위한 방법 중 하나이다.
  • DDD =/= 마이크로서비스
profile
다시 보면, 더 많은 것들이 보인다.

0개의 댓글