Back-end/JPA
-
JPA(3) - Transation(트랜잭션)Back-end/JPA 2021. 8. 18. 14:00
안녕하세요. 오랜만에 JPA에 관한 글을 써보려고합니다. 이번 포스팅은 JPA를 사용하면서 @Transactional이라는 어노테이션을 사용하게 됩니다. 저는 이것이 무척 궁금하였고 우아한 테크코스 유투브를 보면서 많은 공부를 하게 되었습니다. 지금부터 트랜잭션이 왜 사용되고 어떻게 작동하며 Spring에서는 어떻게 사용하는지 알려드리겠습니다. 위의 그림은 간단한 계층도입니다. 일반 사용자 같은 경우에는 웹 화면에서 데이터를 조회하면 서버로 요청이 가게되고 서버는 다시 DBMS(Database Management System)으로 요청을 보내게 됩니다. 이 요청을 받은 DBMS는 SQL문을 해석하고 LOG로 기록하여 DB에 정보를 CRUD하게 됩니다. 이러한 하나의 과정을 트랜잭션이라고 생각하시면 됩니다..
-
JPA(2) - 영속성 컨테이너란?Back-end/JPA 2021. 8. 1. 20:31
이번 포스팅은 영속성 컨테이너의 개념 및 동작원리에 대해서 포스팅해보겠습니다. JPA를 사용 할 경우 Hibernate라는 라이브러리를 이용하시는데 이것이 영속성 컨테이너를 만들고 동작하게 합니다. Hibernate도 따로 포스팅을 하도록 하겠습니다! 오늘은 JPA 영속성 컨테이너에 대해서 알아보시죠! ❗ JPA의 영속성 컨텍스트 사용목적 영속성 컨텍스트의 사용 목적은 캐싱기능 및 자동 수정기능이라고 할 수 있습니다. 굳이 DB에 접근하지 않아도 컨텍스트에서 많은 정보들을 얻어 올 수 있어 더 효율적입니다. 📽️ 영속성 컨텍스트의 기본 동작 크게는 EntityManagerFactory, EntityManager, 커넥션 풀로 이루어져 있습니다. 이렇게 서버로 요청이 올 때마다 Thread를 한 개씩 생성..
-
JPA(1) - JPA란?Back-end/JPA 2021. 7. 31. 10:47
JPA의 기본적인 개념에 대해서 설명하겠습니다. 📖JPA의 개념 자바 진영의 ORM(Object Relational Mapping)의 대표적인 기술입니다. ORM이란 객체와 관계형 데이터베이스를 맵핑시켜주는 기술입니다. 애플리케이션과 JDBC중간에서 SQL문 없이 DB접근이 가능하도록 만든 기술입니다. JPA를 구현한 라이브러리 구현체로는 Hibernate, DataNucleus, EclipsLink가 있습니다. ORM : 객체를 중심으로 DB와 연동하여 맵핑(JPA) SQL-Mapping : SQL문으로 직접 DB를 조작(JdbcTemplet, Mybatis) ❗JPA의 사용 목적 JPA의 사용목적은 단순한 JDBC의 SQL문을 줄여 SERVICE로직에 집중 할 수 있게 하는 것입니다. 👉🏾JPA동작 ..