부제: Hibernate Dynamic Eager and Lazy Load. JPA eager/lazy load. JPA eager load 하기 Hibernate는 JPA의 대표주자라고 할 수 있는 ORM(Object Relational Mapping)이다. MyBatis와 같은 SQL-Mapper와 달리 개발자가 쿼리를 직접 작성하지 않는다는 특징이 있다. 그래서 생산성이 좋고 SQL을 직접 작성하지 않으니 쓸데없이 DAO를 찍어낼 필요도 없고 장점이 많지만, 이 글에서 다루지 않을 것이다. 1. Eager load 와 Lazy load Eager-load와 Lazy-load에 대해 먼저 짚고 넘어가자. 뒤따라올 두개의 모델 예제를 보면 된다. @Entity public class Student { ..
부제: 트랜잭션 격리수준, 트랜잭션 뜻 Transaction. 영한사전에 검색하면 '거래'라는 뜻이다. 전산학(Computer Science)에서 일컫는 트랜잭션(Transaction)은 조금 다르다. 쉽게 풀어쓰자면... 모든 명령어의 성공 또는 실패를 한번에 처리한다는 뜻이다. 조금 더 어렵게 설명하면 데이터베이스의 상태를 바꾸는 기능을 수행하기 위한 작업의 단위 이다. 이 기능이 정상적으로 동작하려면 성공 또는 실패가 한번에 일어나야 한다. 즉, 트랜잭션 처리가 잘 끝나야 한다. 지금부터 트랜잭션 처리가 왜 필요한지 알아보자. 1. 트랜잭션 처리가 필요한 이유. 가장 많이 쓰이는 예제. 계좌 이체를 예로 들어보겠다. 철수가 영희에게 1000원을 송금하는 상황은 아래와 같이 요약할 수 있다. 철수의 ..
★관련 링크Spring과 DB이야기 - 1. DataSource와 JdbcTemplateSpring과 DB이야기 - 3. Transaction 처리 지난 포스팅에서 DataSource의 개념과 Spring에서 DataSource를 활용한 JdbcTemplate으로 간단한 SELECT 쿼리를 작성해봤다. 이번 포스팅에서는 UPDATE와 INSERT에 대해 짚어보겠다. JdbcTemplate을 활용하여 INSERT, UPDATE, DELETE 쿼리를 실행할 때는, update() 메소드를 사용하면 된다. update() 메소드는 아래와 같다. - int update(String sql) - int update(String sql, Object... args) int 형태의 리턴을 하는데, 쿼리 실행 결과로 ..
기술면접에 대비하여 정리한 내용 중, 하나의 포스팅으로 제작하기에는 내용이 짧거나, 상세히 작성이 어려워(나의 능력부족) 포스팅으로 작성하지 못한 질문 모음. 1. DB에서의 Commit와 Rollback 이란? Commit: 하나의 논리적 단위(트랜잭션)에 대한 작업이 성공적으로 끝났을 때, 이 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산 Rollback: 하나의 트랜잭션 처리가 비정상적으로 종료되어 DB의 일관성을 깨뜨렸을 때, 모든 연산을 취소(Undo)시키는 연산. 같이보면 좋은 글: 트랜잭션에 대하여(클릭) 2. DBMS에 대해 설명해보시오. 데이터베이스라는 데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능들을 제공하는 응용프로그램이다. 3. PK, FK, E..