Data Access Layer의 개념
DB에 접근하여 데이터 저장, 조회 등을 수행하는 역할
Service와 DB 사이의 추상화된 계층 → DB 기술이 변경되어도 Service 계층의 코드는 변경 X
데이터 접근 기술
- JDBC
- DB에 접근하기 위한 Java의 표준 API
- JDBC Template
- JDBC를 효율적으로 사용하기 위한 Spring API
- SQL Mapper
- SQL과 Java 객체를 매핑하는 기술
- SQL의 input 또는 output을 Java 객체와 매핑
- MyBatis를 일반적으로 사용
- ORM(Object Relational Mapping)
- RDBMS의 테이블과 Java 객체를 매핑하는 기술
- ORM Framework이 객체와 테이블을 매핑하는 역할을 수행
- ORM Framework이 SQL을 자동으로 생성
- Hibernate, Spring Data JPA가 주로 사용됨
국내에서는 SQL Mapper, 세계적으로는 ORM을 주로 사용
MyBatis 활용 준비 1 - Maven 의존성 설정
application.properties를 통해 설정
Maven
Java 프로젝트에서 사용되는 빌드 자동화 도구(소스코드를 실행 가능한 SW 산출물로 만드는 과정을 단순화함)
주요 기능 (1) 프로젝트 구성 및 빌드 관리 (2) 라이브러리 의존성 관리
사용할 라이브러리가 Maven Repository에 등록되어 있어야 함
Maven pop.xml
- Project Object Model, 프로젝트를 빌드하기 위해 필요한 정보를 기술하는 XML 파일
- — 프로젝트 정보, 라이브러리 의존성 정보, 빌드 단계에서 사용되는 정보
- 최소— groupId: 다양한 프로젝트 간 식별가능한 고유한 이름(회사, 조직 도메인)— version: 현재 개발중인 application의 버전MyBatis 활용 준비 2 - 스프링 설정과 H2 DB 활용DB Table, 데이터 초기화
spring.datasource.driver-class-name=org.h2.Driver - DB 연결을 위해 org.h2.Driver 사용 spring.datasource.url=jdbc:hw:mem:todo - DB 접속 url 등 spring.datasource.username=username spring.datasource.password=password
- spring project/resources/scheman.sql 생성 → djvmf wotlwkr → h2 db 콘솔 확인
- H2 DB 설정
- — dependencies: 다수의 dependency, 사용하고자하는 외부 라이브러리에 대한 정보
- — artifactId: 프로젝트 하위의 애플리케이션 이름, 빌드 후 생성되는 산출물 파일 명(프로젝트 이름)
- — project 태그로 시작
강의를 참고해 개발한 블로그는 아래 코드를 통해 확인 가능
https://github.com/sunnyineverywhere/codepresso-spring-blog
코드프레소 Java 웹 개발 체험단 활동 중(https://www.codepresso.kr/)
'Codepresso' 카테고리의 다른 글
처음 시작하는 SQL 프로그래밍 강의노트(2) (0) | 2022.03.03 |
---|---|
SW 유지보수성 향상을 위한 Clean Code 강의노트 (0) | 2022.02.09 |
MySQL 입문 강의노트 (0) | 2022.02.08 |
Spring Boot 웹 개발 입문 강의노트 (0) | 2022.02.08 |
[Java 프로그래밍 초급] 강의노트 (0) | 2022.01.25 |