반응형
# MVC05_05 마무리
## JDBC를 MyBatis로 변경
1. JDBC의 문제점
- 중요한 정보가 소스코드에 노출
- 자바 소스코드와 SQL 문장이 혼합된 형태, 이로인해 유지보수에 문제점 발생 가능성
- 개발속도가 느림(개발자가 모든 코드를 직접 만들어야 한다.)
2. SQL Mapping Framework의 이해
- MyBatis는 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 조금 더 쉽게 할 수 있도록 도와주는 개발 프레임워크.
- MyBatis는 JDBC를 통해서 데이터베이스에 액세스하는 작업을 캡슐화, 일반 SQL 쿼리, 저장 프로시저, 고급 매핑을 지원하고 모든 JDBC 코드 및 매개 변수의 중복 작업을 제거한다.
- SQL쿼리들을 한 구성파일에 구성하여 SQL 쿼리와 프로그램 코드를 분리할 수 있는 장점이 존재.
3. MyBatis 환경설정 파일(3개)
- MyBatis configuration File (XML - config.xml) :MyBatis3의 작업 설정을 설명하는 XML 파일
- Mapper File (XML - mapper.xml) : SQL 쿼리를 작성하는 파일
- Properties File (db.properties) :데이터베이스 연결정보를 기술하는 파일 (url, user, password)
4. SqlSessionFactory, SqlSession 이해
- SqlSessionFactoryBuilder : MyBatis 환경설정 파일을 읽어서 SqlSessionFactory를 구성하는 요소로 Connection Pool을 만든다.
- SqlSessionFactory : SqlSessionFactoryBuilder에 의해 만들어지는 객체로, SqlSession을 구성하는 요소(Connection Pool) 이다.
- SqlSession : 데이터베이스에 액세스할 때 가장 중요한 역할을 한다. JDBC의 Connection + Statement 역할을 복합적으로 지닌 존재.
5. Connection Pool 개념 이해
SqlSessionFactoryBuilder 가 SqlSessionFactory XML을 읽어들여서 최종적으로 메모리에 SqlSessionFactory를 생성, 해당 SqlSessionFactory 안에는 Connection Pool이 구성되어있다.
미리 데이터베이스에 접속할 수 있는 연결 객체를 여러개 만들어 두고 데이터베이스의 성능을 개선하기 위해 Connection Pool 구성해서 사용한다.
반응형
'인프런 강의 학습 > MVC 프레임워크_나프2탄' 카테고리의 다른 글
인프런 나프_2탄 6일차 : MVC06_03~05 세션 (0) | 2021.06.26 |
---|---|
인프런 나프_2탄 5일차 : MVC06_01~02 회원 로그인 페이지 작성, 회원 로그인 기능(세션 바인딩) (0) | 2021.06.25 |
인프런 나프_2탄 3일차 : MVC05_03~04 JDBC를 MyBatis로 변경 (0) | 2021.06.24 |
인프런 나프_2탄 2일차 : MVC05_01~02 JDBC와 MyBatis 설정, Connection Pool (0) | 2021.06.23 |
인프런 나프_2탄 1일차 : 개발환경 구축, 데이터베이스 설정 (0) | 2021.06.22 |