1. ORM(Object Relational Mapping)
1) ORM이란
- ORM(Object Relational Mapping), 객체 관계 맵핑
- 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 준다.
- 객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터베이스는 테이블을 사용하므로 모델간 불일치가 존재한다. ORM을 통해 객체간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결함.
2) 장점
- 코드에 가독성을 높이고 직관적으로 비즈니스 로직에 집중하게 한다.
- 객체지향적인 접근이 가능하다
- 재사용 및 유지보수의 편리성이 증가된다.
- DBMS에 대한 종속성이 줄어든다.
- 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 RDBMS의 데이터 구조와 jAVA의 객체지향 모델 사이의 간격을 좁힐 수 있다.
2. JPA(Java Persisitence API)
1) JPA이란
- ORM의 표준 인터페이스
JPA는 Application과 JDBC 사이에서 동작하며 개발자가 JPA에 접근하면 JPA 내부에서 JDBC API를 사용하여 SQL을 호추하여 DB와 통신한다.
장점
- 매우 간편한 CRUD(Persist, Merge, Find, Remove)
- SQL 쿼리가 JPA가 처리하여 매우 간편하다
3. @Transational
Transaction : DB에서 상태변화의 한 주기를 의미.
@Transational 어노테이션은 해당 어노테이션이 적용되는 메소드를 하나의 트랜잭션으로 묶어주는 역할
예제에서 buyer.send()가 실행된 후 seller.receive()가 실행되는데 receive메소드에서 에러가 발생시 send메소드만 실행되어 db에 접근하여 send의 메소드만 db 데이터변경이 일어난다.
이경우에 @Transaction 어노테이션을 걸어서 send() 또한 Rollback되게하여 원상복구 시켜주어야 한다.
코멘토 링크 : https://comento.kr/
'코멘토 - JAVA & SPRING 클린아키텍처' 카테고리의 다른 글
코멘토 실무PT 후기 챌린지 4주차 - UnitTest (0) | 2023.05.28 |
---|---|
코멘토 실무PT 후기 챌린지 1주차 - 스프링 프레임워크 (2) | 2023.05.27 |
코멘토 실무PT 후기 챌린지 1주차 - 스프링 프레임워크(AOP) (0) | 2023.05.27 |
코멘토 실무PT 후기 챌린지 1주차 - 스프링 프레임워크(DI와 IoC) (1) | 2023.05.27 |