[6/19 TIL] SPRING(SPRING BOOT, 핵심 개념, DDD)

yumyeonghan·2023년 6월 22일
0

🍃프로그래머스 백엔드 데브코스 4기 교육과정을 듣고 정리한 글입니다.🍃

Spring Boot

  • SpringApplication을 통한 손쉬운 실행
  • Auto Configuration
  • Properties, YAML, Command line 설정 등으로 쉬운 외부 환경 설정
  • 프로파일을 통한 실행환경 관리
  • Packaging Executable Jar
  • Developer Tools

Spring 핵심 개념

공식문서 참고

  • Spring IoC 컨테이너와 Beans
  • 리소스 핸들링 (Resource와 ResourceLoader)
  • 벨리데이션과 데이터 바인딩과 타입 변환
  • 스프링 expression 언어
  • AOP
  • Null-safety
  • 데이터 버퍼와 코덱
  • 로깅

Domain Driven Design

예시

  • Customer(고객) 엔티티: 각 고객은 고유한 식별자(ID)와 개인 정보를 가지며, 여러 개의 Account(계좌)와 연결됨
  • Account(계좌) 엔티티: 각 계좌는 고유한 계좌 번호(Account Number)와 잔액(Balance)을 가지며, 특정 고객과 연관되고, 입금(Deposit)과 출금(Withdraw) 메서드를 통해 잔액을 변경 가능
  • Deposit(입금) 값 객체: 입금에 대한 정보를 표현하는 값 객체로, 입금할 계좌와 입금액을 포함
  • Withdraw(출금) 값 객체: 출금에 대한 정보를 표현하는 값 객체로, 출금할 계좌와 출금액을 포함

Entity

  • 식별자를 가지며, 개체의 생명주기를 따름
  • 식별자에 의해 구분되며, 두 엔티티는 동일한 속성을 가지더라도 서로 다른 개체로 취급
  • 상태 변경이 가능하며, 비즈니스 로직과 행위를 가짐
  • 주로 시스템에서 중요한 개념이고, 데이터베이스에서 테이블로 표현
  • 예시: 고객은 식별자를 가지며, 개인 정보와 관련된 상태를 포함하고 여러 행위를 수행함

Value Object

  • 식별자가 없고 불변(Immutable)
  • 주로 엔티티의 속성을 표현하거나, 엔티티 간의 관계를 나타내는 데 사용
  • 데이터베이스에서 별도의 테이블로 표현되지 않음
  • 예시: 주소는 도시, 우편번호 등 속성들로 구성되며 개별적으로 식별되지 않고, 속성들의 조합으로만 의미를 갖음

그림 출처 바로가기

profile
웹 개발에 관심 있습니다.

0개의 댓글