티스토리 뷰
Why SpringBoot?
스프링부트 라이브러리로 가장 강력한 기능이 톰캣(서버)와 MVC 제공이다.
내장 서버를 통해, 기존에 일일이 프로젝트와 서버를 연결(에러..) 하던 귀찮음이 사라졌다!
또한 웹 MVC 기능이 있어 @ 요런 콩들을 붙여서 아래의 어플리케이션 계층구조로 객체지향 서비스를 구현할 수 있다.
또한 스타터에 공통적으로 스프링 코어가 들어있고 로깅이라 하여, 로그를 출력해주는 요소가 있다. 실무에서 주로 사용한다고 한다.
테스트 지원도 좋다. 테스트 프레임워크가 있어서 단축키와 각종 annotation 을 통해 단위테스트 및 통합테스트를 작성할 수 있다.
Spring Boot 기반 MVC 구조 공부
주로 이러한 계층 구조를 따라 데이터가 전달된다.
- 프론트로부터 전달된 데이터를 컨트롤러에서 받으면, 생성해둔 멤버도메인(객체)의 메서드를 통해 set 한다. 데이터는 @ResponseBody 가 처리한다.
- 이후 컨트롤러단에 주입되어있던 서비스 객체에 파라미터로 멤버도메인(객체) 를 넣어 실행한다.
서비스 객체는 join, findMembers, findOne 등 비즈니스 로직을 가지고 있다.
- 컨트롤러에서 넘어온 멤버도메인(객체) 를 검증하고 서비스 객체 생성시 주입된 레포지토리 객체에 파라미터로 멤버도메인(객체) 를 넣어 메서드를 실행한다.
- 최종적으로 레포지토리는 구현체를 통해 DB 를 조작하는 메서드를 실행한다.
- 레포지토리를 인터페이스와 구현체 구조로 설정하면, 스프링 빈에 등록한 후 구현체를 자유롭게 바꿀 수 있다.
Template ⇒ RestAPI 적용 공부
ResPonseBody 사용시 객체를 반환하면 자동으로 JSON 으로 변환된다.
http://localhost:8080/hello-api?name=spring 라는 주소가 반환되었다고 생각해보다.
파라미터는 name 이고, 밸류는 spring 이다.
아래 Controller 빈으로 등록된 HelloController 클래스에서 @RequestParam ”name” 이기 때문에 name 파라미터의 밸류인 spring 을 name 으로 받는다.
그러면 이후 hello 객체에 set 메서드를 통해 spring 이란 이름을 넣을 수 있다.
그리고 return 으로 객체를 반환하는데, 이 때 @ResponseBody 가 동작하여 객체를 JSON 형태로 바꿔준다.
{ name : spring }
@Controller
public class HelloController {
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
static class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} }
}
h2 설치 권한부여 및 실행
- Total
- Today
- Yesterday
- 개발도서추천
- 한글무료폰트추천
- 폰트
- 코딩도서
- 클린코더
- ssafy6기
- 개발언어순위
- 폰트추천
- 맥과윈도우로깃허브
- 브왈라
- 클린코드
- 임대차3법
- intj여자
- 상업용무료폰트
- 깃허브계정2개
- 싸피
- 무료폰트추천
- 개발자커리
- 개발자로드맵
- ssafy후기
- 개발자도서추천
- ssafy결과
- ssafy합격후기
- 싸피6기
- 깃허브계정
- 개발언어추천
- SSAFY
- 디즈니얼굴
- 개발자
- 개발자책추천
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |