개발하는 무민

[코드프레소] 웹개발 트랙 체험단 - Spring Boot 웹 개발 초급 본문

Project/[코드프레소] JAVA웹개발트랙

[코드프레소] 웹개발 트랙 체험단 - Spring Boot 웹 개발 초급

무민_ 2022. 3. 1. 18:11

01강. Spring Boot와 MyBatis의 연동

Data Access Layer의 개념

 

데이터 액세스 레이어 : 데이터베이스에 접근하는 역할.

Database에 접근하여 데이터 저장, 조회 등을 수행

Service와 Database 사이의 추상화 된 계층

Database 기술이 변경 되면 데이터 액세스 레이어의 코드는 변경될 수 있지만, 서비스 계층의 코드는 변경되지 않는다.

 

데이터를 접근하기 위한 기술

JDBC : 데이터베이스에 접근하기 위한 자바의 표준 API

JDBC 템플릿 : 효율적으로 사용하기 위한 스프링 API

SQL Mapper : SQL과 java 객체를 매핑하는 기술, SQL의 input 또는 output을 자바 객체와 매핑

ORM : RDBMS의 테이블과 자바 객체를 매핑하는 기술, ORM 프레임워크가 객체와 테이블을 매핑하는 역할을 수행하고, SQL을 자동 생성해준다. → SQL을 직접 코딩하지 않아도 프레임워크 기술이 자동으로 생성해준다.

 

SQL Mapper

JAva에서 SQL MApper 적용을 위해 MyBatis가 일반적으로 사용된다.

국내 많은 대규모 프젝에서 활용되고 있음

 

ORM

자바, 스프링에서 ORM 적용을 위해 Hibernate와 Spring Data JPA가 주로 사용된다.

전 세계적으로는 SQL 매퍼보다 사용률이 높으며 국내에서도 사용률이 높아져가고 있다.

 

SQL Mapper를 배우는 이유

웹 개발 입문 시기에 백엔드 동작을 명확하게 이해할 수 있음

웹 개발 입문 시기에 SQL에 대한 연습을 할 수 있음

아직까지도 국내 대규모 프젝에 많이 사용되고 있음

 

MyBatis 활용 준비 1 - Maven 의존성 설정

Spring Boot 에서 MyBatis 설정

Maven 의존성 설정 : MyBatis (및 H2 Database) application.properties 설정

 

Maven

Java 프로젝트에서 사용되는 빌드 자동화도구

소스코드를 실행 가능한 SW 산출물로 만드는 과정

 

Maven의 2 가지의 주요 기능

프로젝트 구성 및 빌드관리

라이브러리 의존성관리

 

Maven의 라이브러리 의존성관리

사용할 외부 라이브러리 정보를 명시하면 자동 다운로드 후 사용됨

  • 개발자가 필요한 라이브러리를 일일이 다운로드 받아 설정 할 필요 없음
  • pom.xml 파일의 dependencies 영역에 사용할 라이브러리 정보 설정

사용할 라이브러리가 Maven Repository에 등록 되어 있어야 함

  • Maven Central Repository: Maven 에서 관리하는 중앙 Repository

 

Maven pom.xml

porn - Project Object Model

Maven 이 프로젝트를 빌드하기 위해서 필요한 정보를 기술하는 XML 파일 프로젝트의 정보 프로젝트가 필요로 하는 라이브러리 의존성 정보 빌드 단계에서 사용 되는 정보

 

최소한의 pom.xml

project 태 그로 시 작

groupld: 다양한 프로젝트 간의 식 별 가능한 고유한 이름

artifactId: 프로젝트 하위의 애플리케이션 이름,

version: 현재 개발중인 application 의 버전 빌드 후 생성되는 산출물 파일명

 

dependencies 태그 하위에 다수의 dependency로 라이브러리 명시

dependency 태그에 groupld, artifactld, version 등을 명시

 

Maven 의존성 검색

https://mvnrepository.com/

 

 

H2 Database

RDBMS 중 하나로 메모리에 데이터를 저장 가능 함

개발 단계에서 테스트용으로 가볍게 활용 가능

별도의 설지 없이 Maven 의존성만으로 Spring Boot에서 활용 가능

 

 

MyBatis 활용 준비 1 - Maven 의존성 설정 실습

그룹아이디 - 만든 부서 등

아티팩트아이디 - 만드는 것

버전 - 버전정보

 

 

스프링이니셜라이저를 활용하면 코드들을 일일히 치지 않고도 템플릿을 다운받아 사용할 수 있다.

즉, 우리가 사용해야하는 라이브러리 의존성들을 간편하게 설정할 수 있다.

 

 

 

MyBatis 활용 준비 2 - 스프링 설정과 H2 DB 활용

 

DB Table 및 데이터의 초기화

DB 테이블(스키마)의 초기화

Spring 프로젝트의 resources 디렉토리 하위에 파일 생성 후 SQL 작성

파일명 : schema.sqI

→ 스프링 어플리케이션이 시작되는 시점에 SQL을 읽어들여서 실행한다.

 

Spring 애플리케이션 재시작 후 H2 DB 콘솔 확인

shema.sqI 의 SQL 문이 자동으로 실행 되어 TODO 테이불 생성

 

 

MyBatis 활용 준비 2 - 스프링 설정과 H2 DB 활용 실습

todo list 프로젝트로 실습 진행

 

# h2 콘솔 사용을 위해 아래의 내용을 작성한다.
#spring.datasource.driver-class-name=org.h2.Driver
#spring.datasource.url=jdbc:h2:mem:todo
#spring.datasource.username=codepresso
#spring.datasource.password=asdf1234
#spring.h2.console.enabled=true
#spring.h2.console.path=/h2-console

 

DROP TABLE IF EXISTS todo;

CREATE TABLE todo
(
    id INTEGER PRIMARY KEY AUTO_INCREMENT,
    content VARCHAR(255) NOT NULL,
    isCompleted CHARACTER NOT NULL
);

data.sql 파일을 새로 생성해서 아래와 같이 입력해보자.

INSERT INTO TODO (CONTENT, ISCOMPLETED) values ('Study Spring', 'N');
INSERT INTO TODO (CONTENT, ISCOMPLETED) values ('Study MyBatis', 'N');

id 값은 auto 인크리먼트이므로 별도로 설정해주지 않아도 늘어난다.

 

 


https://www.codepresso.kr/

 

노션 정리본 : https://rapid-run-744.notion.site/Java-6dca205b818c4dc5ae28160dbd7b6d65

 

코드프레소 : Java 웹 개발 트랙 체험단

참여기간 : 2022.01.04 ~ 2022.03.31

rapid-run-744.notion.site