[Spring] Request Mapping / Controller Annotation(어노테이션)

@Controller
@Request Mapping

=> 어노테이션

Controller 어노테이션(Annotation) :

어노테이션이 있는 클래스 /
스프링프레임워크(디자인패턴 + 라이브러리집합)가 웹 브라우저(크롬)의 요청(request)을 받아들이는 컨트롤러라고 인지해서 자바 빈(java bean)을 등록해서 관리

Model : 컨트롤러가 반환할 데이터(VO객체, List, List<VO>, Map, List<Map>, JSON)를 담당
반환?
1) forward(데이터 담기O)
2) redirect(데이터 담기X)
View : 화면 담당

RequestMapping 어노테이션 :

웹 브라우저의 요청에 실행되는 자바 메소드를 지정해줌

method :

속성. http 요청 메소드를 의미함
1) GET : 데이터를 변경하지 않는 경우 사용
2) POST : 데이터가 변경될 경우 사용
웹 브라우저에 화면을 보여줄 뿐 데이터의 변경이 일어나지 않으므로 GET 메소드를 사용한 것임.

BookController.java

package kr.or.ddit;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

//컨트롤러 어노테이션(Annotation)
//어노테이션이 있는 클래스
//스프링프레임워크(디자인패턴 + 라이브러리집합)가
//웹 브라우저(크롬)의 요청(request)을 받아들이는 컨트롤러라고
//인지해서 자바 빈(java bean)을 등록해서 관리
@Controller
public class BookController {
	//Model : 컨트롤러가 반환할 데이터(VO객체, List, List<VO>, Map, List<Map>, JSON)를 담당
	//		    반환? 1) forward(데이터 담기O)	2) redirect(데이터 담기X)	
	//View : 화면 담당
	//localhost:8090/create
	@RequestMapping(value="/create", method=RequestMethod.GET) //요청이 Mapping됨
	public ModelAndView create() {
		ModelAndView mav = new ModelAndView();
		//localhost:8090/WEB-INF/views/book/create.jsp
		//servlet-context.xml에서..
		//prefix : /WEB-INF/views/
		mav.setViewName("book/create");
		//suffix : .jsp
		return mav;
	}
	
	@RequestMapping(value="/make", method=RequestMethod.GET)
	public ModelAndView make() {
		ModelAndView mav = new ModelAndView();
		mav.setViewName("book/make");
		return mav;
	}
	//RequestMapping어노테이션 : 웹 브라우저의 요청에 실행되는 자바 메소드를 지정해줌
	//method : 속성. http 요청 메소드를 의미함
	//		  1) GET : 데이터를 변경하지 않는 경우 사용
	//		  2) POST : 데이터가 변경될 경우 사용
	//웹 브라우저에 화면을 보여줄 뿐 데이터의 변경이 일어나지 않으므로 GET 메소드를 사용한 것임.
	//jjajang() 메소드는 웹 브라우저에서 /jjajang 주소가 GET 방식으로 입력되었을 때
	//book/jjajang 경로의 뷰를 보여줌
	@RequestMapping(value="/jjajang", method=RequestMethod.GET)
	public ModelAndView jjajang(ModelAndView mav) {
		//book/jjajang : 뷰의 경로
		mav.setViewName("book/jjajang");
		return mav;
	}
}

[숙제]

1. spring boot란?

스프링 프레임워크 기반 프로젝트를 복잡한 설정없이 쉽고 빠르게 만들어주는 라이브러리입니다.
사용자가 일일이 모든 설정을 하지 않아도 자주 사용되는 기본설정을 알아서 해줍니다.

2. JPA/Mybatis/하이버네이트의 차이?

JPA
JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준

JPA가 제공하는 API를 사용하면 객체를 DB에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하지 않아도 된다.
JPA가 개발자 대신 적절한 SQL을 생성해서 DB에 전달하고, 객체를 자동으로 Mapping 해준다.
JPA는 내부적으로 JDBC API를 활용하는데, 개발자가 직접 JDBC API를 활용하면 패러다임 불일치, SQL 의존성 등으로 인해 효율성이 떨어진다.
이 때, JPA를 활용한다면 모든 SQL에 대해 개발자 대신 JPA가 자동으로 해결해 준다는 점에서 생산성을 크게 높인다.

ORM
ORM(Object-Relational Mapping)은 객체와 관계형 DB를 매핑한다는 뜻

ORM 프레임워크를 사용하면 객체를 마치 자바 컬렉션에 저장하듯 저장할 수 있고, 이에 대해 ORM 프레임워크가 적절한 SQL을 생성해서 DB에 객체를 저장해준다.

Hibernate
자바 진영의 다양한 ORM 프레임워크 중 가장 많이 사용되는 성숙한 프레임워크

이러한 Hibernate 기반으로 만들어진 ORM 기술 표준이 바로 JPA다.
즉, JPA라는 ORM 기술 표준을 구현한 것이 Hibernate이므로, JPA를 사용하려면 Hibernate를 사용하면 된다.

Mybatis
Mybatis는 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping)프레임워크이다.

SQL을 별도의 파일로 분리해서 관리하게 해준다.
Hibernate나 JAP(Java Persistence Api)처럼 새로운 DB프로그래밍 패러다임을 익혀야하는 부담 없이 SQL을 그대로 이용하면서 JDBC코드 작성의 불편함도 제거해주고 도메인 객체나 VO객체를 중심으로 개발이 가능하다는 장점이 있다.

3. VUE란?

Vue.js는 UI 화면 개발 방법 중 하나인 MVVM 패턴의 뷰 모델에 해당하는 화면단 라이브러리

좋은 웹페이지 즐겨찾기