프레임워크(Framework)/Spring

[Spring] 스프링의 데이터 접근 기술

잇트루 2022. 11. 25. 00:00
반응형

데이터 접근 기술

Spring에서는 데이터베이스에 접근하기 위해 다양한 기술들을 사용할 수 있다.

Spring에서 사용할 수 있는 대표적인 데이터 액세스 기술

  • mybatis
  • Spring JDBC
  • Spring Data JDBC
  • JPA
  • Spring Data JPA

 

또한, 이러한 기술들은 SQL 중심 기술과 객체 중심 기술로 분류할 수 있다.

 

SQL 중심 기술

SQL 중심 기술은 애플리케이션에서 데이터베이스에 접근하기 위해 SQL 쿼리문을 애플리케이션 내부에 직접적으로 작성하는 것이 중심이 되는 기술이다.

Mybatis와 Spring JDBC가 대표적인 SQL 중심 기술에 해당한다.

 

Mybatis의 SQL Mapper 예시

<select id="findMember" resultType="Member">
  SELECT * FROM MEMBER WHERE member_id = #{memberId}
</select>

Mybatis는 SQL Mapper라는 설정 파일을 통해 SQL 쿼리문을 직접적으로 작성한다.

작성된 쿼리문을 기반으로 데이터베이스의 특정 테이블에서 데이터를 조회한 후, Java 객체로 변환해 주는 특징이 있다.

 

SpringJDBC의 JdbcTemplate 사용 예시

Member member = this.jdbcTemplate.queryForObject(
			"select * from member where member_id=?", 1, Member.class);

Spring JDBC는 JdbcTemplate라는 템플릿 클래스를 사용하여 데이터베이스에 접근한다.

Spring JDBC 경우에도 Java 코드에 SQL 쿼리문이 직접적으로 포함되어 있다.

 

SQL 중심 기술은 SQL 쿼리문이 직접적으로 포함되어 있는 방식으로 예전에 많이 사용했다.

현재는 객체 중심 기술을 사용하고 있는 추세이다.

 

객체 중심 기술

객체 중심 기술은 데이터를 SQL 쿼리문 위주로 생각하는 것이 아닌 모든 데이터를 객체 관점으로 바라보는 기술이다.

객체 중심 기술은 데이터베이스에 접근하기 위해 SQL 쿼리문을 직접적으로 작성하지 않는다.

 

데이터베이스에 데이터를 저장하거나 조회가 필요한 경우 Java 객체를 이용하여 애플리케이션 내부에서 SQL 쿼리문으로 자동 변환한 후에 데이터베이스 테이블에 접근한다.

이러한 객체 중심의 데이터 액세스 기술을 ORM(Object-Relational Mapping)이라 한다.

 

Java에서는 대표적인 ORM 기술이 바로 JPA(Java Persistence API)이다.

JPA를 사용하면 SQL 쿼리문을 직접적으로 다루는 일이 거의 없다.

반응형