JDBC의 이해

JIWOO YUN·2024년 4월 4일
0

SpringDB

목록 보기
1/11
post-custom-banner

JDBC 의 이해

  • 애플리케이션을 개발할 떄 중요한 데이터는 대부분 데이터 베이스에 보관한다.
  • 클라이언트가 애플리케이션 서버를 통해 데이터를 정하거나 조회하면 애플리케이션 서버는 밑과 같은 방법으로 데이터베이슬르 사용한다.!
  1. 커넥션 연결 : 주로 TCP/IP를 사용해서 커넥션 연결
  2. SQL 전달 : 애플리케이션 서버는 DB 가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달.
  3. 결과 응답 : DB에 전달된 SQL 을 수행하고 그결과를 응답 -> 이 결과를 서버에서 활용

이 방법은 각각의 데이터 베이스 마다 사용법이 다르다.

  • 커넥션을 연결하는 방법, SQL 전달하는 방법 , 결과를 응답하는 방법은 DB마다 다르다.
    • 관계형 데이터베이스는 몇개가 아닌 수십개가 존재한다.

그렇기 때문에 2가지의 문제점이 발생하게된다.

  1. 데이터베이스를 다른 종류의 데이터베이스로 변경시 사용법에 따라서 애플리케이션 서버에 개발된 사용코드를 함께 변경해야함.
  2. 개발자가 각각의 데이터베이스마다 사용법을 새로 학습해야함.

이 2가지 문제점을 해결하기 위해서 JDBC라는 자바 표준이 등장하게되었다.

  • JDBC(JAVA DataBase Connectivity)

    • 자바에서 데이터베이스에 접속할 수있도록 해주는 자바 API
    • 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공

표준 인터페이스가 존재하기 때문에 개발자의 경우 표준 인터페이스만 사용해서 개발을 하면된다.

  • 인터페이스에 각각의 DB회사에서 자신의 DB에 맞도록 구현한 JDBC 드라이버를 가져와서 적용시키면 각 DB에 접근할 수 있게 된다.

  • SQL 드라이버를 사용하면 MySQL DB와 앞서 했던 connection , statement,resultSet 과정이 진행되고 ,Oracle의 드라이벌르 사용하면 Oracle DB와 위 3가지가 진행된다.

위와 같은 방법으로 현재 문제로 제시되었던 2가지가 해결된다.

  1. 애플리케이션 로직은 이제 JDBC 표준 인터페이스에 의존하기 때문에 DB를 변경시에 JDBC 드라이버만 변경해주면된다.
  2. 2번째 문제도 마찬가지로 표준 인터페이스 사용법만 학습하면된다. -> 드라이버만 연결해주면됨.

참고점

  • 각각의 데이터베이스마다 SQL, 데이터 타입등의 일부 사용법이 다르다. -> 일반적인 부분만 공통화 했기 때문에 한계가 존재
  • JPA를 사용하면 각각의 데이터베이스마다 다른 SQL을 정의해햐하는 문제도 해결됨.

JDBC 와 최신 데이터 접근 기술

JDBC를 편하게 사용하는 다양한 기술이 존재하는 그중 대표적으로 2가지 기술로 나눌 수있다.

  • SQL Mapper
  • ORM

SQL Mapper

SQL Mapper 동작 방식
애플리케이션 로직	-->			SQLMapper			--->  			JDBC 
				SQL 전달		-JDBCTemplate		SQL 전달
							 -myBatis
  • 장점 : JDBC를 편하게 사용하도록 도와줌
    • SQL 응답결과를 객체로 편리하게 변환해준다.
    • JDBC의 반복코드를 제거해준다.
  • 단점 : 개발자가 직접 SQL을 작성해야함
    • SQL 을 작성할 줄만 안다면 금방 배운다.

대표 기술

  • 스프링 JDBC Template ,My batis
ORM 동작 방식
애플리케이션 로직 	-->	 			JPA
			    객체 전달         	↑
			    				 JPA 구현체 	SQL 전달
			    				-하이버네이트  	--> 		JDBC
			    				-이클립스링크 
  • 관계형 데이터베이스 테이블과 매핑해주는 기술
    • 이 기술로 개발자는 반복적인 SQL을 직접 작성할 필요가 없어짐.
    • ORM 기술이 개발자 대신 SQL 을 동적으로 만들어줌
    • 각각의 데이터베이스마다 다른 SQL을 사용하는 문제도 중간에서 해결해준다.
  • 자바 진영의 ORM 표준 인터페이스

장점

  • 개발 생산성이 매우 높아짐

단점

  • 쉬운 기술이 아니라서 실무에서 사용하려면 깊게 배워야함.

대표 기술

  • JPA ,하이버네이트, 이클립스링크
profile
열심히하자
post-custom-banner

0개의 댓글