MyBatis

MyBatis는 자바 퍼시스턴스 프레임워크의 하나로 XML이나 Annotation을 사용한다.

그리고 SQL Mapper를 이용하여 자바의 객체를 SQL문과 연결하여 빠르고 편리하게 DB에 접근할 수 있게 해줍니다.

MyBatis는 소스 코드와 SQL문을 분리하여 간결성과 유지보수성이 향상되고 복잡한 쿼리나 다이나믹한 쿼리에 강합니다.

MyBatis 아키텍처

서비스에서 DAO를 호출하고 MyBatis를 사용합니다.

 

MyBatis를 사용하는 데이터 액세스 계층

MyBatis는 Data Access Layer에서 사용하는 프레임워크입니다..

그림과 같이 Controller에서 Service를 호출하고 Service가 DAO 계층에 있는 메소드를 호출하면 DAO에서 MyBatis를 호출합니다.

 

MyBatis의 주요 컴포넌트의 역할

  • MyBatis 설정파일 (SqlMapConfig.xml) : 데이터베이스의 접속 주소 정보나 Mapping 파일의 경로 등의 고정된 환경정보를 설정
  • SqlSession FactoryBuilder : MyBatis 설정 파일을 바탕으로 SqlSessionFactory를 생성한다.
  • SqlSessionFactory : SqlSession을 생성한다.
  • SqlSession : 핵심적인 역할을 하는 클래스로서 SQL실행이나 트랜잭션 관리를 실행한다.
  • mapping 파일 (user.xml) : SQL문과 OR Mapping을 설정한다.

 

'Web > Spring' 카테고리의 다른 글

[Spring] DAO 와 DTO  (0) 2020.12.25
[Spring] Spring MVC 구조  (0) 2020.12.25
[Spring] DI (Dependency Injection, 의존성 주입)  (0) 2020.12.17
[Spring] Maven 과 Gradle  (0) 2020.12.13
[Spring] Spring Framework 와 Spring Boot  (0) 2020.12.13

Maven

  • pom.xml을 이용한 정형화된 빌드 시스템

  • 개발환경이 다르더라도 pom.xml을 공유하면 정상적으로 실행된다.

  • 새로운 기능을 쉽게 설치할 수 있고 업데이트할 수 있다.

  • 개발 가이드 라인을 제공

Gradle

  • Groovy기반으로 만들어진 빌드 도구

  • 멀티 프로젝트의 빌드 지원하기 위해 설계 되었기 때문에 멀티 프로젝트에 사용하기 좋다.

  • pom 파일 없이 연결되는 의존성 관리 지원

Gradle이 Maven보다 좋은 이유

  • Build라는 동적인 요소를 XML로 정의하기에는 어려운 부분이 많다.

  • Gradle는 동적인 빌드를 Groovy 스크립트로 플러그인을 호출하거나 직접 코드를 짜면 된다.

예제

Maven

Gradle

'Web > Spring' 카테고리의 다른 글

[Spring] DAO 와 DTO  (0) 2020.12.25
[Spring] Spring MVC 구조  (0) 2020.12.25
[Spring] DI (Dependency Injection, 의존성 주입)  (0) 2020.12.17
[Spring] MyBatis 란?  (0) 2020.12.15
[Spring] Spring Framework 와 Spring Boot  (0) 2020.12.13

Spring Framework

Spring Framework에 이해하기 위해서는 먼저 프레임워크가 무엇인지, 라이브러리와의 차이가 어떤건지 알고 가는게 중요하다. 라이브러리는 내가 필요할 때 사용하는 기능이고, 프레임워크는 프레임워크에 정해진 규칙을 따라서 개발을 해야한다.

스프링 프레임워크는 여러 라이브러리는 제공하고, 그것을 활용해서 개발한 프로그램을 동작시킨다.

 

스프링 프레임워크(Spring Framework) 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라도 한다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다.
대한민국 
공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다. 

출처 : 위키백과

 

스프링 프레임워크에서 가장 중요한 특징은 의존성 주입(Dependency Injection)이다.

의존성 주입(DI)은 클래스 사이의 의존관계를 빈(Bean) 설정 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것이다.

 

DI가 적용되지 않으면 개발자가 직업 인스턴스를 생성해야한다.

HelloService service = new HelloService();

DI를 적용하면 annotiation인 @Component, @Autowired를 이용해서 선언 해주면 된다.

@Component
public class HelloService {
	
}

@RestController
public class HelloController {
	
    @Autowired
    private HelloService service;
    
}

 

Spring Boot

Spring Boot와 Spring Framework가 전혀 다른 새로운 기술이라고 오해하는 사람들이 있는데 Spring Boot는 Spring Framework를 조금더 편하게 사용할 수 있게 해주는 툴이다.

 

Spring Boot와 Spring Framework는 차이가 있다.

  1. Spring Boot 내부에 Tomcat이 포함되어 있기 때문에 설치를 하거나 매번 버전을 관리해 주어야 할 필요가 없다.

  2. Spring Framework에서는 dependency를 일일이 맞추어야 했지만 Spring Boot에서는 starter를 통한 dependency관리를 자동으로 해준다.

간단히 정리하자면 Spring Boot는 간편한 설정, 편리한 의전성 관리 & 자동 버전 관리, 내장 서버로 인한 간단한 배포 서버 구축, 다른 스프링 프레임워크 요소를 쉽게 사용하는 것이라고 생각한다.

 

'Web > Spring' 카테고리의 다른 글

[Spring] DAO 와 DTO  (0) 2020.12.25
[Spring] Spring MVC 구조  (0) 2020.12.25
[Spring] DI (Dependency Injection, 의존성 주입)  (0) 2020.12.17
[Spring] MyBatis 란?  (0) 2020.12.15
[Spring] Maven 과 Gradle  (0) 2020.12.13

+ Recent posts