전체 글7 JPA 소개 JPA JPA는 자바 진영의 표준 ORM 프레임워크입니다. ORM은 Object Relational Mapping으로 관계형 DB와 객체를 매핑한다는 의미입니다. 관계형 DB와 객체의 매핑의 의미는 별거 아닌 것처럼 보이지만 엄청난 의미를 가지는 것 같습니다. DB와 Object 사이에는 엄청난 패러다임의 불일치가 있기 때문인데요. 어떤 문제점들이 있었냐면 객체는 참조와 상속이 가능합니다. 반면 테이블은 상속과 참조의 개념이 없습니다. 또한 연관 관계의 방향에 대한 차이가 있습니다. 객체는 한쪽 방향으로 참조를 하게 되는데 DB 테이블은 키값을 통해 서로 연관관계를 찾을 수 있습니다. 이렇게 DB와 객체는 패러다임의 불일치 문제가 있는데 이를 해결해준 게 JPA입니다. 왜 JPA를 사용해야 할까 JPA는.. 2021. 8. 2. AOP를 직접 구현해보자 - Proxy적용 요즘 점진적인 예제를 통해서 학습하는 과정들이 Spring framework을 이해하는데 큰 도움이 되는 걸 느끼고 있는데요. 블로그를 통해서 이런 과정들을 정리해보려고 합니다. 토비의 스프링을 보면 트랜잭션 처리에 대한 공통적인 로직의 분리를 예제로 들고 있습니다. 저는 service 호출마다 공통적인 시작, 종료 로그를 찍어야 한다고 요구사항을 잡고 예제를 진행하도록 하겠습니다. Decorator + Proxy Pattern 공통적인 로그를 출력하는 로직과 service로직을 분리하기 위해 전략 패턴을 통해서 분리는 가능하지만 부가기능이 핵심기능을 사용하게 되는 구조를 가져가게 됩니다. 이 경우에 핵심기능을 가져간 클래스는 부가기능 클래스의 존재를 알 수 없게 되고 실제로 사용할 때 직접 핵심기능으로.. 2021. 8. 2. Transaction Isolation Level Transaction Transaction은 DB 수행(Read, Write)을 논리적 단위 하나로 묶은 것으로, Transaction의 시작, 쿼리 수행, Commit or Rollback까지의 단위를 의미합니다. Transaction ACID Atomicity : All or Nothing, 트랜잭션 단위에 대해 성공 또는 실패를 보장해야 합니다. Consistency : Transaction이 성공하면 언제나 일관된 DB 상태를 유지해야 합니다. Isolation : Transaction 작업은 서로 격리되어 보호되어야 합니다. Durability: Transaction이 완료된 후 데이터는 영원히 반영되어야 합니다. Transaction Isolation Level 만약 여러 클라이언트가 DB의 .. 2021. 8. 1. 이전 1 2 다음