23/04/24(Spring 개념정리)

조영문·2023년 4월 25일
0

Spring

목록 보기
2/7

H2 데이터베이스 (메모리 DB)

  • 자바로 작서된 관계형 데이터베이스 관리 시스템
  • 따로 설치 필요없고, 용량이 매우 가볍다.
  • JAVA로 작성된 오픈소스 RDBMS
  • 스프링부트를 지원하는 In-Memory 관계형 데이터베이스

Mybatis 프레임워크

  • 객체지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와주는 개발 프레임워크
    - 자바는 JDBC API를 제공해주지만, 이런 JDBC를 이용하면 1개 클래스에 반복된 코드가 존재, 한 파일에 Java언어와 SQL언어가 있어서 재사용성 등이 안 좋아지는 단점이 있음
  • 그래서 Mybatis는 JDBC의 이러한 단점들을 개선했으며, 개발자가 작성한 SQL 명령어와 자바 객체를 매핑해주는 기능을 제공하며, 기존에 사용하던 SQL 명령어를 재사용한다.

스프링 부트 외부 설정 파일

  • 애플리케이션에서 사용하는 여러가지 설정 값들을 애플리케이션의 밖이나 안에 정의할 수 있는 기능

application.properties

  • 스프링부트가 애플리케이션을 구동할 때 자동으로 로딩하는 파일이다.
  • key-value 형식으로 값을 정의하면 애플리케이션에서 참조하여 사용할 수 있다.
  • 값을 참조할 때 여러가지 방법이 있다. @Value 어노테이션으로 값을 받아올 수도 있다.

application.yml

  • yml은 계층적 구성 데이터를 지정하기 위한 편리한 형식이다.

@RequestMapping

  • 특정 uri로 요청을 보내면 Controller에서 어떠한 방식으로 처리할지 정의한다. 이때 들어온 요청을 특정 메소드와 매핑하기 위해 사용하는 것이 @RequestMapping이다

@RequestParam

  • @RequestParam 어노테이션은 HttpServletRequest 객체와 같은 역할을 한다.

@PathVariable

@ModelAttribute

  • 메소드의 파라미터로 사용할 경우 프로그램이 어떤 식으로 돌아가는지를 정리하고자 한다.

@RequestBody vs @ResponseBody

  • 클라이언트에서 서버로 통신하는 메시지를 요청(request) 메시지라고 하며, 서버에서 클라이언트로 통신하는 메시지를 응답(response) 메시지라고 한다. 웹에서 화면전환(새로고침) 없이 이루어지는 동작들은 대부분 비동기 통신으로 이루어진다. 비동기통신을 하기위해서는 클라이언트에서 서버로 요청 메세지를 보낼 때, 본문에 데이터를 담아서 보내야 하고, 서버에서 클라이언트로 응답을 보낼때에도 본문에 데이터를 담아서 보내야 한다. 이 본문이 바로 body 이다.
    즉, 요청본문 requestBody, 응답본문 responseBody 을 담아서 보내야 한다.

스프링 부트로

1.TODOLIST 화면 출력하기


webapp/WEB-INF

  • 안에 넣으면 안보인다

2.H2 DB 연결하기

3.Mybatis 프레임워크 연습하기

package com.example.my.common;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import javax.sql.DataSource;

@Configuration
@MapperScan(basePackages = "com.example.my")
public class MybatisConfig {

    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {

        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();

        sqlSessionFactoryBean.setDataSource(dataSource);
        sqlSessionFactoryBean.setMapperLocations(
                new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*_mapper.xml"));
        return sqlSessionFactoryBean.getObject();
    }

    @Bean
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory){
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

Mapper XML 파일

  • 마이바티스의 가장 큰 장점은 매핑구문이다. 이건 간혹 마법을 부리는 것처럼 보일 수 있다. SQL Map XML 파일은 상대적으로 간단하다. 더군다나 동일한 기능의 JDBC 코드와 비교하면 아마도 95% 이상 코드수가 감소하기도 한다. 마이바티스는 SQL을 작성하는데 집중하도록 만들어졌다.

4.REST API통신 만들기


ResponseBody -> JSON 받기

5.API 버전 올려보기


스프링으로 todoList 만들기


git

https://github.com/youngmoon97/Spring

0개의 댓글