2020-11-05 TIL
less than 1 minute read
인터페이스가 필요한 이유
- BoardAddCommand 를 데이터베이스에 따라 DAO를 만든다.
- 이때 BoardAddCommand에 직접 사용할 클래스를 명시하면 클래스를 바꿀 때마다 코드를 변경해야 한다.
- 해결책 : 클래스 대신 인터페이스를 지정한다.
- 예) 대리 운전 기사를 부를 때 홍길동 대리 기사님을 불러달라고 하는게 아니라 대리 기사님을 불러달라고 하는 것.
- 인터페이스를 지정하면 다양한 구현체가 올 수 있다.
- 인터페이스를 따르는 클래스들의 이름은 보통 세가지로 나누어진다.
- 패키지를 달리하여 같은 이름으로 짓기
- 인터페이스 이름 뒤에 Impl 붙이기
- 이름 앞에 접속사(데이터베이스 이름) 붙이기
트랜잭션이 필요한 이유
- 트랜잭션?
- 여러개의 작업을 한 단위로 묶어둔 것
- 모두 다 성공했을 때만 그 작업을 성공으로 간주한다.
- 주문 - 결제 - 배송 이라는 흐름이 있을 때 이것들이 하나로 묶어서 결제까지 이루어졌을 때 주문 정보가 유효해야 한다.
- 그런데 묶어놓지 않으면 결제에서 실패했는데 주문 정보가 유효해서 배송이 되어버리는 경우가 생긴다.