본문 바로가기

강의 내용 정리/Spring DB 1

4-1. 문제점들(서비스 계층에 트랜잭션 코드가 너무 많다.)

비지니스로직은 특정 기술에 의존하지 않고, 순수 자바 코드로 작성 하는 것이 좋다.

 

왜 이렇게 3계층으로 나눴나?

-> 서비스 계층을 최대한 순수하게 유지하기 위해 

 

 

 

순수한 서비스계층

 

 

정말 중요한 내용.

 

 

MemberServiceV1의 아쉬운 점

1. SQLException 은 java.sql 로써 jdbc에 종속적인 예외이다. 이때 JPA로 바꾼다면 다른 예외가 나온다.

-> jdbc 의존적이다.

 

2. MemberServiceV1은 MemberRepositoryV1에 직접적으로 의존하고 있다.

-> MemberRepository 인터페이스를 도입하면 Best.

 

 

하지만 문제는 MemberServiceV2 이다. 트랜잭션을 사용하는 코드이다. 

 

 

 

 

 

MemberSerivceV2

 

 

 

대놓고 jdbc 의존적이다.. 아쉽다. 

 

문제점 투성이다.

 

트랜잭션을 비지니스 로직(서비스 계층) 에서 시작하는게 좋다.

-> 하나의 비지니스 로직을 하나의 묶음으로 취급

 

 

 

 

 

문제 정리

 

1. 트랜잭션 문제

2. 예외누수 문제

3. JDBC 반복 문제

 

 

 

 

1. 트랜잭션 문제

트랜잭션 적용 코드를 보면 반복이 많다.

 

 

2. 예외누수 문제

JPA는 PersistanceException 등으로 올라옴. 

 

 

 

3. JDBC 반복 문제

 

 

 

 

 

결론

 

순수한 비니지스 로직만 있어야 할 Service 계층에 특정 기술(JDBC)에 종속적이 코드가 있는 것은 좋지 않다.

-> 스프링은 서비스 계층을 순수하게 유지해주면서 이 문제들을 해결해준다.

 

 

 

 

꾸준히 다시보자.

 

1. 221014

2. 221101

'강의 내용 정리 > Spring DB 1' 카테고리의 다른 글

4-3. 트랜잭션 동기화  (0) 2022.09.28
4-2. 트랜잭션 추상화  (0) 2022.09.28
3-11. 트랜잭션 - 적용2  (0) 2022.09.25
3-10. 트랜잭션 - 적용1  (1) 2022.09.25
3-8. DB 락 - 조회  (1) 2022.09.23
Recent Posts
Popular Posts
Recent Comments