1. 오브젝트와 의존관계

1.1 초난감 DAO

DAO : 데이터를 조회하거나 조작하는 기능을 전담하는 오브젝트

하나의 add 메소드 안에는 세 가지 관심사항이 같이 들어있다.

  1. DB Connection을 가져오는 부분
  2. 실제 SQL Statement를 만들고 실행하는 부분
  3. 작업을 마친 뒤 Statement와 Connection 오브게트를 닫는 부분

→ 왜 초난감 DAO인걸까? 문제점이 뭔가?

모든 관심사가 하나의 DAO 클래스에서 이루어지고 있는 것이 문제임.

좋은 개발은, 변경이 일어날 때 필요한 작업을 최소화하고 그 변경이 다른 곳에 문제를 일으키지 않도록 하는 것이다. 변화는 대체로 집중된 한 가지 관심에 대해 일어나지만, 그에 따른 작업은 한 곳에 집중되지 않는 경우가 많다. 단지 DB 접속용 암호를 변경하려고 DAO 클래스 수백 개를 모두 수정해야 한다면 정말 끔찍함.

관심사의 분리가 필요하다

그러므로 우리가 할 일은 한 가지 관심이 한 군데에 집중되게 하는 것. 관심이 같은 것끼리 모으고, 관심이 다른 건 서로 영향을 주지 않도록 떨어져 있게 하는 것이 필요하다.