2020-11-05 TIL

less than 1 minute read

인터페이스가 필요한 이유

  • BoardAddCommand 를 데이터베이스에 따라 DAO를 만든다.
    • 이때 BoardAddCommand에 직접 사용할 클래스를 명시하면 클래스를 바꿀 때마다 코드를 변경해야 한다.
      • 해결책 : 클래스 대신 인터페이스를 지정한다.
        • 구현체를 교체하기 쉽다.
  • 예) 대리 운전 기사를 부를 때 홍길동 대리 기사님을 불러달라고 하는게 아니라 대리 기사님을 불러달라고 하는 것.
  • 인터페이스를 지정하면 다양한 구현체가 올 수 있다.
  • 인터페이스를 따르는 클래스들의 이름은 보통 세가지로 나누어진다.
    • 패키지를 달리하여 같은 이름으로 짓기
    • 인터페이스 이름 뒤에 Impl 붙이기
    • 이름 앞에 접속사(데이터베이스 이름) 붙이기

트랜잭션이 필요한 이유

  • 트랜잭션?
    • 여러개의 작업을 한 단위로 묶어둔 것
    • 모두 다 성공했을 때만 그 작업을 성공으로 간주한다.
  • 주문 - 결제 - 배송 이라는 흐름이 있을 때 이것들이 하나로 묶어서 결제까지 이루어졌을 때 주문 정보가 유효해야 한다.
    • 그런데 묶어놓지 않으면 결제에서 실패했는데 주문 정보가 유효해서 배송이 되어버리는 경우가 생긴다.

Categories:

Updated: