책에는 JDBC를 위한 설명만 있어 블로그 참조
https://deveun.tistory.com/entry/SQL-Mapper%EC%99%80-ORM-%EC%B0%A8%EC%9D%B4
SQL Mapper와 ORM 차이
프로그램을 실행하는 동안 그 안에서는 많은 데이터들이 사용되고, 만들어진다. 우리는 이 데이터들이 프로그램이 종료되어도 사라지지 않고 어떤 곳에 저장되는 것이 필요한데, 이 개념이 바
deveun.tistory.com
https://yarisong.tistory.com/26
ORM vs SQL Mapper
1. Persistence(영속성) 프로그램을 실행하면서 데이터가 생성, 삭제, 변경이 발생한다. 이렇게 생성된 데이터가 프로그램이 종료되어도 사라지지 않고 저장되는 특징을 말한다. 2. Persistence Framework J
yarisong.tistory.com
1. Persistence(영속성)
- 프로그램을 실행하면서 데이터가 생성, 삭제, 변경이 발생한다. 이렇게 생성된 데이터가 프로그램이 종료되어도 사라지지 않고 저장되는 특징을 말한다.
데이터가 영속성을 가지기 위해 Spring에서 사용하는 방법은 3가지가 존재한다.
1. JDBC (Java)
2. Spring JDBC
3. Persistence Framework
2. Persistence Framework
- ORM : JPA, Hibernate
- SQL Mapper : Mybatis
3. SQL Mapper
객체와 관계형 데이터베이스의 데이터를 개발자가 작성한 SQL로 매핑시켜주는 프레임워크이다.
개발자가 SQL을 직접 작성해야 하며 SQL문을 실행하고 얻은 데이터를 객체로 매핑시켜준다.
장점
1. SQL을 작성 할 줄 안다면 수월하게 사용이 가능하다.
2. 세부적인 SQL 변경시 편리하다.
3. SQL 쿼리를 그대로 사용해서 복잡한 비즈니스 로직을 구현하는데 용이하다.
4. 동적 쿼리 사용 시 JPA보다 간편하게 구현 가능하다.
단점
1. DBMS에 따라 SQL 문법이 다르기에 DBMS에 종속적이다.
2. 개발시 SQL를 작성해야 한다.
3. DBMS 변경시 SQL문의 재사용이 어렵다.
4. 2개 이상의 DBMS 지원시 유지 보수가 어렵다.
5. 객체지향 프로그래밍 관점에서 패러다임 불일치가 발생한다.
6. 데이터베이스 변경사항 발생 시 객체와 SQL 모두 수정이 필요하다.
- SQL <- 매핑 -> Object 필드
- 객체와 SQL 문을 맵핑하여 데이터를 객체화한다.
- SQL 문으로 직접 데이터를 다룬다.
4. ORM(Object Relational Mapping, 객체 관계 맵핑)
간단하게는 애플리케이션에서 사용하는 O(Object): '객체'와 R(Relationl): '관계형 데이터베이스'의 데이터를 매핑시켜주는 것
설정된 객체 간의 관계를 바탕으로 자동으로 SQL를 생성하여 실행한다.
SQL를 직접 작성할 필요가 없다.
O/R매퍼는 미리 설정된 객체와 관계형 데이터베이스 간의 대응 관계 정보를 가지고 인터페이스의 데이터에 대응하는 테이블에 내보내거나 데이터베이스에서 값을 읽어 들여 인터페이스에 대입하는 작업을 자동으로 실행한다.

장점
1. 객체 지향적인 코드로 직관적인 비지니스 로직을 작성할 수 있다.
2. DBMS 종속성이 줄어들고 종류에 관계 없이 빠르게 적용 가능하다.
3. 쿼리에 집중할 필요 없이 빠르게 개발이 가능하다.
4. 재사용 유지 보수 편리성이 증가 한다. ( 반복작업이 줄어 생산성향상 등 )
단점
1. 초기 적용에 러닝 커브가 어느 정도 있다.
2. 프로젝트의 복잡성이 커질경우 난이도가 올라간다.
3. 잘못 적용할 경우 속도 저하가 발생 할 수 있다.
4. 복잡한 비즈니스 로직이 있는 경우 서비스 구현이 어렵다.
(단, Native SQL, JPQL, Query DSL등을 활용하여 구현 가능)
- 데이터베이스 데이터 <- 매핑-> Object 필드
- 객체와 RDB의 데이터를 자동으로 매핑해주는 기술.
- 객체간의 관계를 통해 SQL문 작성이 아닌 구현된 메소드를 통해 간접적으로 데이터를 다룬다.
책에는 JDBC를 위한 설명만 있어 블로그 참조
https://deveun.tistory.com/entry/SQL-Mapper%EC%99%80-ORM-%EC%B0%A8%EC%9D%B4
SQL Mapper와 ORM 차이
프로그램을 실행하는 동안 그 안에서는 많은 데이터들이 사용되고, 만들어진다. 우리는 이 데이터들이 프로그램이 종료되어도 사라지지 않고 어떤 곳에 저장되는 것이 필요한데, 이 개념이 바
deveun.tistory.com
https://yarisong.tistory.com/26
ORM vs SQL Mapper
1. Persistence(영속성) 프로그램을 실행하면서 데이터가 생성, 삭제, 변경이 발생한다. 이렇게 생성된 데이터가 프로그램이 종료되어도 사라지지 않고 저장되는 특징을 말한다. 2. Persistence Framework J
yarisong.tistory.com
1. Persistence(영속성)
- 프로그램을 실행하면서 데이터가 생성, 삭제, 변경이 발생한다. 이렇게 생성된 데이터가 프로그램이 종료되어도 사라지지 않고 저장되는 특징을 말한다.
데이터가 영속성을 가지기 위해 Spring에서 사용하는 방법은 3가지가 존재한다.
1. JDBC (Java)
2. Spring JDBC
3. Persistence Framework
2. Persistence Framework
- ORM : JPA, Hibernate
- SQL Mapper : Mybatis
3. SQL Mapper
객체와 관계형 데이터베이스의 데이터를 개발자가 작성한 SQL로 매핑시켜주는 프레임워크이다.
개발자가 SQL을 직접 작성해야 하며 SQL문을 실행하고 얻은 데이터를 객체로 매핑시켜준다.
장점
1. SQL을 작성 할 줄 안다면 수월하게 사용이 가능하다.
2. 세부적인 SQL 변경시 편리하다.
3. SQL 쿼리를 그대로 사용해서 복잡한 비즈니스 로직을 구현하는데 용이하다.
4. 동적 쿼리 사용 시 JPA보다 간편하게 구현 가능하다.
단점
1. DBMS에 따라 SQL 문법이 다르기에 DBMS에 종속적이다.
2. 개발시 SQL를 작성해야 한다.
3. DBMS 변경시 SQL문의 재사용이 어렵다.
4. 2개 이상의 DBMS 지원시 유지 보수가 어렵다.
5. 객체지향 프로그래밍 관점에서 패러다임 불일치가 발생한다.
6. 데이터베이스 변경사항 발생 시 객체와 SQL 모두 수정이 필요하다.
- SQL <- 매핑 -> Object 필드
- 객체와 SQL 문을 맵핑하여 데이터를 객체화한다.
- SQL 문으로 직접 데이터를 다룬다.
4. ORM(Object Relational Mapping, 객체 관계 맵핑)
간단하게는 애플리케이션에서 사용하는 O(Object): '객체'와 R(Relationl): '관계형 데이터베이스'의 데이터를 매핑시켜주는 것
설정된 객체 간의 관계를 바탕으로 자동으로 SQL를 생성하여 실행한다.
SQL를 직접 작성할 필요가 없다.
O/R매퍼는 미리 설정된 객체와 관계형 데이터베이스 간의 대응 관계 정보를 가지고 인터페이스의 데이터에 대응하는 테이블에 내보내거나 데이터베이스에서 값을 읽어 들여 인터페이스에 대입하는 작업을 자동으로 실행한다.

장점
1. 객체 지향적인 코드로 직관적인 비지니스 로직을 작성할 수 있다.
2. DBMS 종속성이 줄어들고 종류에 관계 없이 빠르게 적용 가능하다.
3. 쿼리에 집중할 필요 없이 빠르게 개발이 가능하다.
4. 재사용 유지 보수 편리성이 증가 한다. ( 반복작업이 줄어 생산성향상 등 )
단점
1. 초기 적용에 러닝 커브가 어느 정도 있다.
2. 프로젝트의 복잡성이 커질경우 난이도가 올라간다.
3. 잘못 적용할 경우 속도 저하가 발생 할 수 있다.
4. 복잡한 비즈니스 로직이 있는 경우 서비스 구현이 어렵다.
(단, Native SQL, JPQL, Query DSL등을 활용하여 구현 가능)
- 데이터베이스 데이터 <- 매핑-> Object 필드
- 객체와 RDB의 데이터를 자동으로 매핑해주는 기술.
- 객체간의 관계를 통해 SQL문 작성이 아닌 구현된 메소드를 통해 간접적으로 데이터를 다룬다.