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

Dev_Sanizzang·2022년 3월 2일
0

코드프레소 체험단

목록 보기
8/10

이 글은 코드프레소 Java 웹 개발 체험단 활동 중 Spring 웹 개발 초급 강좌를 기반으로 작성하였습니다.

코드프레소 URL: https://www.codepresso.kr/

강의 목차


먼저 강의 목차는 아래 그림과 같이 구성되어 있습니다.

과정소개


Spring Boot 웹 개발 초급 코스 소개

  • DB를 활용한 기초적인 웹 애플리케이션 개발을 위한 코스
  • 코드프레소의 아래 코스 사전 수강 필요
    - Java 프로그래밍 초급
    • Spring Boot 웹 개발 입문 코스
  • 초급 코스를 수강한 후에는 블로그 개발이 가능

Spring 웹 개발 초급 코스 주요 커리큘럼
->

  • MyBatis를 활용한 Database 연동
  • Maven 의존성 관리 및 스프링 설정
  • View 개발을 위한 템플릿 엔진 (Mustache 활용)
  • Lombok
  • Pagination
  • Ajax
  • 쿠키와 세션
  • Spring Validation
  • HTTP Status Code

Spring Boot와 MyBatis 연동


Data Access Layer의 개념


Data AccessLayer란 Database에 접근하여 데이터 저장, 조회 등을 수행하는 역할이다. Service와 Database 사이의 추상화 된 계층으로 Database 기술이 변경 되면 Data Access Layer의 코드는 변경 될 수 있지만, Service 계층의 코드는 변경되지 않는다.

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

  • JDBC(Java Database Connectivity)
    - Database에 접근 하기 위한 Java 표준 API
  • JDBC Template
    - JDBC를 효율적으로 사용하기 위한 Spring API
  • SQL Mapper
    - SQL과 Java 객체를 매핑하는 기술
    • SQL의 input 또는 output을 Java 객체와 매핑
  • ORM(Object Relational Mapping)
    - RDBMS의 테이블과 Java 객체를 매핑하는 기술
    • ORM Framework이 객체와 테이블을 매핑하는 역할을 수행
    • ORM Framework이 SQL을 자동 생성

SQL Mapper

  • Java에서 SQL Mapper 적용을 위해 MyBatis가 일반적으로 사용 됨
  • 국내에서 많은 기업의 대규모 프로젝트에서 활용되고 있음

ORM

  • Java, Spring에서 ORM 적용을 위해 Hibernate와 Spring Data JPA가 주로 사용 됨
  • 전 세계적으로는 SQL Mapper보다 사용률이 월등히 높으며, 국내에서도 사용률이 높아져 가고 있음

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

Maven이란 Java 프로젝트에서 사용 되는 빌드 자동화 도구이다.(소스코드를 실행 가능한 SW 산출물로 만드는 과정) Maven은 2가지의 주요 기능이 있는데 첫 번째로 프로젝트 구성 및 빌드 관리가 있고 두 번째로 라이브러리 의존성 관리가 있다.

  • 사용할 외부 라이브러리 정보를 명시하면 자동 다운로드 후 사용
    - 개발자가 필요한 라이브러리를 일일이 다운로드 받아 설정 할 필요 없음

    • pom.xml 파일의 dependencies 영역에 사용할 라이브러리 정보 설정
  • 사용할 라이브러리가 Maven Repository에 등록 되어 있어야 함
    - Maven Central Repository: Maven에서 관리하는 중앙 Repository

Maven pom.xml

  • pom - Project Object Model
  • Maven이 프로젝트를 빌드하기 위해서 필요한 정보를 기술하는 XML 파일
    - 프로젝트의 정보
    • 프로젝트가 필요로 하는 라이브러리 의존성 정보
    • 빌드 단계에서 사용 되는 정보
  • 최소한의 pom.xml
    - project 태그로 시작
    - groupId: 다양한 프로젝트 간의 식별 가능한 고유한 이름(보통 회사 url의 역순)
    - artifactId: 프로젝트 하위의 애플리케이션 이름, 빌드 후 생성되는 산출물 파일 명
    - version: 현재 개발중인 application의 버전

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

  • dependency 태그에 groupId, artifactId, version 등을 명시

  • MyBatis와 H2 Database를 위한 Maven 의존성 추가

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

H2 Database란 경량 RDBMS로 메모리에 데이터 저장이 가능하다. 별도의 설치 없이 Maven 의존성만으로 Spring Boot에서 활용이 가능하고 개발 단계에서 테스트용으로 가볍게 활용이 가능하다.

Spring 애플리케이션 설정

  • Spring 애플리케이션이 어떻게 구성되어야 하는지에 대한 부가적인 정보
    - Spring 애플리케이션이 시작하는 시점에 읽음
  • application.properties 파일에 설정 정보 추가
    - application.yaml 포맷을 사용하기도 함
  • resources 디렉토리 하위에 위치
    - key=value 형태로 설정 정보를 작성
  • 설정 정보는 라이브러리 별 공식 문서를 참고하여 작성

Spring 애플리 케이션 설정 예시

  • port 정보 변경
    - 기본 포트는 8080
    - 8081로 설정 변경

H2 Database 설정

  • spring.datasource.driver-class-name=org.h2.Driver
    - DB 연결을 위해 org.h2.Driver를 사용
    • com.mysql.cj.jdbc.Driver, oracle.jdbc.driver.OracleDriver 등 가능
  • spring.datasource.url=jdbc:h2:mem:todo
    - DB 접속 URL, [protocol]:[host][port, db/schema명 등]
    • jdbc:mysql://localhost:3306/todo
    • jdbc:postgresql://localhost:5432/todo
  • spring.datasource.username=codepresso
    - DB에 접속하기 위한 사용자 이름
  • spring.datasource.password=asdf1234
    - DB에 접속하기 위한 패스워드
  • h2 웹 console 정보 설정
  • spring.h2.console.enabled=true
    - h2 웹 콘솔을 사용함
  • spring.h2.console.path=/h2-console
    - 웹 콘솔의 uri path는 /h2-console로 함
profile
기록을 통해 성장합니다.

0개의 댓글