Spring 2

4. 스프링과 문제해결 - 스프링 트랜잭션 처리

1. 비지니스(서비스) 계층에서 트랜잭션 처리하기가 생각보다 쉽지 않다 앞서 3장에서(https://hongod.tistory.com/25?category=1063676) 트랜잭션을 시작하고 종료하는 계층을 비지니스 계층이라고 했었다. 이 비지니스 계층의 코드를 작성할 때 가장 중요한 원칙이 하나 있는데 바로 최대한 의존성을 버리고 순수한 자바코드로 작성해야한다는 것이다. 프렌젠테이션 계층은 웹, 서블릿 HTTP 와 같은 기술에 의존하고, 데이터 접근 계층은 JDBC, JPA와 같은 구체적인 DB 접근 기술에 의존하기 때문에 차후 기술 발전에 따른 코드 수정은 불가피하지만, 서비스 계층만은 핵심 비지니스 로직이 바뀌기 전에는 수정하지 않도록 순수한 자바 코드로 격리해놔야 유지보수와 테스트가 용이한 애플리..

1. JDBC 이해

- 일반적으로 애플리케이션 서버와 DB 서버간의 통신은 1. 커넥션 연결 (애플리케이션 -> DB 서버) 2. SQL 전달 (애플리케이션 -> DB 서버) 3. 처리 결과 응답 (DB 서버 -> 애플리케이션 서버) 의 큰 세 가지 축으로 이루어진다. - 애플리케이션 개발자 입자에서 고역인 것은 이런 애플레케이션 DB 간 통신 방식이 DB 벤더에 따라 모두 다르다는 것이다. 즉 서로 다른 언어, 비유하자면 MySql은 한국어, Oracle은 영어, PostgresSQL은 독일어 등등... 서로 다른 언어로 통신하기 때문에 아~주먼 과거의 개발자들은 DB를 바꾸게 되면 애플리케이션 코드에서도 위 세 가지 통신을 위한 코드들을 모두 새로 배워서 바꿔야했다(한국어 쓰다가 독일어 배워서 쓰고...). - 위와 같..