데이터베이스 커넥션 획득하기 > 데이터베이스 커넥션을 획득할때는 위와 같은 과정을 거치는데 매우 복잡하다. 이렇게 커넥션을 매번 생성하면 클라이언트에서 요청이올 때 SQL을 실행하는 시간 뿐만 아니라 커넥션을 새로 만드는 시간까지 더해져서 응답 속도에 많은 영향을 미
JdbcTemplate의 주요 기능 🎨 JdbcTemplate > 순서 기반 파라미터 바인딩 지원 🎨 NamedParameterJdbcTemplate > 이름 기반 파라미터 바인딩을 지원하기 때문에 순서상관 없이 이름만 동일하면 된다. 🎨 SimpleJdb
DTO(Data Transfer Object)데이터 전송 객체를 말한다. 다른 기능은 없으며 데이터를 전달하는 용도로만 사용하는 객체를 뜻한다.
MyBatis는 JdbcTemplate이 제공하는 대부분의 기능을 제공한다.SQL을 XML에 편리하게 작성할 수 있고 동적쿼리 사용이 수월하다는 장점이 있다.
Transaction 데이터베이스에서 데이터를 제대로 처리하는 것을 트랜잭션이라고 한다. 만약 A가 B에게 5000원을 계좌이체한다고 한다면 A의 통장 잔고에서 5000원이 감소하고 B의 통장 잔고가 5000원 증가하는 과정이 데이터베이스에서 정확하게 발생해야 하는 것
DB 락 기본 개념개발자A가 트랜잭션을 시작하고 데이터를 수정하고 있다고 가정한다. A가 열심히 데이터를 수정하고 있고 아직 커밋은 하지 않은 상태다. 여기서 개발자 A의 수정사항을 알지 못하는 개발자 B가 동일한 데이터를 수정한다. 이런 상황이 발생하면 서로 엉뚱한
애플리케이션 구조일반적인 웹 애플리케이션은 역할에 따라 위의 세가지 계층으로 나뉜다.
스프링이 제공하는 'PlatformTransactionManager'는 크게 두가지 역할을 한다. 첫번째는 트랜잭션을 추상화하는 것이고 그 다음으로는 리소스를 동기화하는 것이다.리소스 동기화트랜잭션을 유지하려면 트랜잭션이 시작될 때부터 끝까지 같은 데이터베이스의 커넥션
📒 트랜잭션 템플릿 적용 웹 애플리케이션을 만들다보면 트랜잭션을 시작하고 비즈니스 로직을 실행한다. 그리고 제대로 실행된다면 커밋하고 예외가 발생해서 실패하면 롤백하는 동일한 과정을 만들게 되는데 동일하게 반복되는 코드를 매번 작성하는 것은 상당히 비효율적이라고 할
🎉 트랜잭션 템플릿 그 전에는 트랜잭션 템플릿을 사용했다. 트랜잭션 템플릿을 사용해서 반복되는 트랜잭션 관련 코드를 줄일 수 있었고 코드가 보다 간결하고 효율적이게 바뀌는 것을 확인할 수 있었다. 트랜잭션 템플릿 사용 코드 하지만 이 코드에서도 개선해야할 문제점
위의 자바 예외 계층 그림을 보면 가장 최상위에는 Object가 있다. 여기서 중요한 점은 예외도 객체이기 때문에 예외의 최상위 부모도 'Object'다.예외 중에서 가장 최상위 예외는 Throwable이고 그 하위에 'Exception'과 'Error'가 있다. 'E
📝 JPA(Java Persistence API) > 자바 진영의 ORM 기술 표준이다. 그렇다면 ORM이란 무엇일까? Object-relational mapping(객체 관계 매핑)의 줄임말인데 객체는 객체대로 설계하고 관계형 데이터베이스는 따로 설계하는 것을 말한
스프링 데이터 JPA 주요 기능 스프링 데이터 JPA는 JPA를 편리하게 사용할 수 있도록 도와주는 라이브러리다. 'JpaRepository' 인터페이스를 통해서 기본적인 CRUD 기능을 제공하며 공통화가 가능한 기능을 모두 포함하고 있다. 다양한 기능을 제공하지만