Spring Boot(1)

김형석·2025년 6월 21일
0

LG CNS AM Inspire Camp

목록 보기
15/18

1. Spring Boot 개요

1-1. 정의

  • Spring 기반 애플리케이션을 빠르고 쉽게 개발하기 위한 프레임워크
  • 내장 서버가 존재하므로 서버 등록 과정을 생략 가능

1-2. 특징

  • Tomcat 내장 서버가 자동으로 구동됨
  • 8080 포트가 기본 페이지
  • Web Document Root 디렉터리에서 기본 페이지를 검색

2. 데이터 처리

2-1. 프로젝트 작성 방법

  • Controller를 추가해서 요청 처리/결과 반환을 할 수 있도록 함
    • 데이터 편집 및 반환 기능
    • @RestController 어노테이편으로 표기
    • @RequestMapping으로 경로 연결
      • @GetMapping 등 메서드 별 어노테이션으로 대체 가능
  • 일반적으로 MVC(Model, View, Controller) 구조를 가짐

2-2. 처리 흐름

  • Spring Boot의 요청은 Dispatcher Servlet이 처리
  • 요청 처리 시 데이터 흐름: Controller <-> Service <-> Data
  • DAL(Data Access Layer)등이 추가될 수 있음
    • 애플리케이션-저장소 간 상호작요을 위한 계층
    • 비즈니스 로직과 데이터 접근 코드를 분리해서 유지보수성, 확장성을 향상
    • DAO - JDBC Template - JDBC Driver - Database 과 같은 계층을 가짐

2-3.DAO(Data Access Object)

  • 데이터베이스와 상호작용하는 객체
  • 개발자가 SQL문으로 CRUD를구현
  • 애플리케이션과 DB 사이의 불일치가 발생하는 것을 해결
  • SQL문 등 데이터베이스를 다루는 구문만 전문적으로 처리해서 서비스 계층은 로직만 다룰 수 있도록 함

2-4. JDBC(Java Database Connectivity)

  • DB에 접근할 수 있도록 JAVA가 제공하는 API
  • API 명세이며, 추상 계층임 -> 구현 필요
  • 데이터베이스에 CRUD하는 방법 제공
  • Plain JDBC의 단점
    • 쿼리 실행 전후에 많은 코드가 요구됨
    • 예외 및 트랜잭션 처리 필요
    • 매 쿼리 실행 시마다 수행해야 함

2-5. JDBC Template

  • Plain JDBC의 단점 해결을 위한 접근 방법 중 하나
  • Spring에서 제공(Spring JDBC)
  • 개발자의 역할 일부를 담당
  • 개발자는 SQL 작성, 결과 출력을 수행

2-6. JDBC Driver

  • JDBC Interface의 구현체
  • Java Client의 요청을 DBMS가 처리할 수 있는 프로토콜로 변환하는 클라이언트 측 어댑터
  • DB마다 존재하며, 사용하는 DB에 맞는 Driver를 사용해야 함
  • DataSource를 JDBC Template에 주입하고, JDBC Template는 JDBC Driver로 DB에 접근

2-7. DB 연결

  • @Configuration 어노테이션으로 설정 정보를 가져옴
  • @PropertySource 등으로 Configuration 클래스에 등록
  • 연결에 필요한 정보를 설정 파일에 추가 -> application.properties 등
  • Hikari 등의 툴을 사용함

2-8. MyBatis

  • Java 애플리케이션과 RDBMS의 상호작용을 위한 퍼시스턴스 프레임워크
  • 객체와 SQL 구문을 자동매핑 -> 개발 생산성 향상
  • SqlSessionFactory로 SqlSession 객체를 만들어서 설정
  • 기능
    • DB 연결
    • 트랜잭션 관리
    • Mapper 파일 위치 관리
  • Mapper 파일 사용하기
    • ApplicationContext 객체를 주입
  • SqlSessionTemplate?
    • Spring 프레임워크와 MyBatis를 통합하기 위해 사용
    • mapper의 경로를 지정

참고

  • ModelAndView: 결과를 지정된 템플릿에 넣어서 반환하는 것으로, 생성자에 템플릿 경로를 지정해야 함
  • @Service: 비즈니스 로직과 관련된 클래스에 사용
  • @Mapper: mapper 인터페이스에 붙여서 MyBatis에서 사용할 수 있도록 하는 어노테이션
  • Mybatis에서의 SQL문
    • SQL문을 XML 형식으로 저장
    • 태그 안에 , 등의 태그를 사용 태그 안에는 id 옵션을 사용해서 연결할 메서드, resultType을 사용해서 결과 타입이 있는 클래스를 정의 View 파일 resource 경로에 저장 thymeleaf 등을 사용하면 받아오는 객체와 컨트롤러에서 보내주는 정보는 동일 -> 컨트롤러가 제공하는 정보를 활용

0개의 댓글