230726(수) TIL

조우진·2023년 7월 26일
0

TIL

목록 보기
25/28

금일 배운 내용

JDBC

자바와 DB가 연결되어 데이터를 주고받을 수 있게 해주는 프로그래밍 인터페이스

JDBC Driver Manager

  • Connection(연결)을 생성하여 쿼리를 요청할 수 있는 상태를 만들어줌
  • Statement(상태)를 생성하여 쿼리를 요청하게 해줌
  • ResultSet(결과셋)을 생성해 쿼리 결과를 받아올 수 있게 해줌
    =>사용 후에는 close()를 호출하여 자원해제

JDBC DAO

  • 쿼리를 직접작성하는 것이 아닌, DAO 객체를 만들어 행위를 대신하게 함.

JDBC로 직접 SQL 작성 시 문제

  • SQL 쿼리 요청 시 중복 코드 발생
  • DB별 예외에 대한 구분 없이 SQL Exception 처리
  • Connection, statement 등 자원 관리를 따로해줘야함
  • 안해주면 메모리 부족으로 서버가 죽음

-> 이러한 문제 해결을 위해 Persistence Framework 등장

  • Persistence Framework의 종류
    • SQL Mapper(JDBC Template, MyBatis)
    • ORM (JPA, Hibernate)

SQL Mapper(QueryMapper)

: SQL문과 객체(Object)의 필드를 매핑하여 데이터를 객체화

MyBatis

반복적인 JDBC 프로그래밍을 단순화
SQL 쿼리들을 XML 파일에 작성하여 코드와 SQL을 분리
DB기능에 종속적
테이블마다 비슷한 CRUD 반복

Query Mapper의 DB의존성 및 중복 쿼리 문제해결을 위해 ORM이 탄생

ORM은 DB의 주도권을 뺏어왔다고 해도 과언이 아니다.

Docker란?

환경에 구애받지 않고 코드를 실행, 애플리케이션 배포 & 확장할 수 있도록 도와주는 소프트웨어
동일한 코드여도 내 개발환경에서는 잘 돌아가는데, 다른 개발자의 환경에서는 안돌아가는 상황 방지

profile
공부노트

0개의 댓글