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