SSAFY11th-book-study / book-study

SSAFY 11기 6반의 '토비의 스프링 스터디'
0 stars 0 forks source link

[3.4.1] JdbcContext와 서비스 오브젝트 #31

Closed gmelon closed 7 months ago

gmelon commented 7 months ago

p.235 하단에 아래와 같이 적혀있습니다.

JdbcContext는 그 자체로 독립적인 JDBC 컨텍스트를 제공해주는 서비스 오브젝트로서 의미가 있을 뿐이고 구현 방법이 바뀔 가능성은 없다.

먼저 JdbcContext의 구현이 UserDao와 밀접하게 연관되어 있어 UserDao는 그대로 둔채 JdbcContext의 구현만 변경되는 일이 없다(따라서 인터페이스를 통해 DI를 할 필요는 없다)는 것은 뒷부분을 마저 읽고 이해했습니다.

다만 책에서 사용한 JDBC 컨텍스트를 제공해주는 서비스 오브젝트 라는 표현이 잘 와닿지가 않아서 다들 서비스 오브젝트를 어떤 개념으로 이해하셨는지 궁금합니다.

hj-k66 commented 7 months ago

저는 서비스 오브젝트를 그 오브젝트 자체로 기능적 의미가 있는 오브젝트라고 이해했습니다. 일단 서비스라는 것을 어떤 기능을 제공하는 것이라고 생각했습니다.

JdbcContext의 경우 메소드가 workWithStatementStrategy() 하나로 Connection을 연결하고 sql문장을 받아 실행하고 예외처리를 해주는 기능만을 담당합니다.

즉, JdbcContext클래스를 사용한다는 건 JDBC의 공통적인 로직을 수행한다는 것과 일치하기 때문에 JdbcContext를 jdbc 컨텍스트 기능을 제공하는 서비스 오브젝트다 라고 이해했습니다!

gmelon commented 7 months ago

서비스 오브젝트란 다른 코드와 결합도가 높아 변경이 항상 동일하게 발생할 수 밖에 없는 객체. 해당 오브젝트를 사용하는 클라이언트와 역할과 책임이 동일하기에 클라이언트에서 직접 참조했던 것.