[spring JPA 기본]_환경설정, 구조 살펴보기

youuu·2022년 11월 15일

Study

목록 보기
8/11

프로젝트 설정 변경.
Gradle -> Intellij 로 변경하면 열때 좀더 빠르다.


라이브러리 살펴보기

로그

spring-boot-starter-logging

  • logback, slf4j 을 요즘엔 많이 사용한다.

테스트 라이브러리

  • spring-boot-starter-test
    • junit: 테스트 프레임워크
    • mockito: 목 라이브러리
    • assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
    • spring-test: 스프링 통합 테스트 지원

return "hello";로 하면 viewResolver가 화면을 찾아서 맵핑 해준다.


spring-boot-devtools
라이브러리를 추가하면, html 파일을 컴파일만 해주면 서버 재시작 없이 View 파일 변경이 가능하다.

 > 인텔리J 컴파일 방법: 메뉴 build ➡️ Recompile

devtools 관련내용 참고


jar로 배포하기

study/hello-spring 파일.

./gradlew build 을 하면 그래들 빌드

  1. ./gradlew build
  2. cd build/libs
  3. java -jar hello-spring-0.0.1-SNAPSHOT.jar
  4. 실행확인

실행이 잘 안되면
./gradlew clean을 하면 된다. ➡️ 빌드 폴더 자체가 사라진다. 지우고 새로 빌드.


스프링 웹 개발 기초

  • 정적 컨텐츠 ➡️ 파일을 그냥 웹브라우저에 내려주는것.
  • MVC와 템플릿 엔진
    • 서버에서 프로그래밍 해서 동적으로 내리는 것.
      (model / view / controller)html을 변형해서 내려주는 것
  • API
    • json 데이터 포맷. 리액트. 서버끼리 통신할때

MVC와 템플릿 엔진

MVC: Model, View, Controller


타임리프의 장점.

파일 자체를 복사 -> 앱솔루트 패서 -> 하면 웹에서 바로 열어서 볼 수 있다.
html을 서버 없이 바로 볼 수 있다.

key 는 name / key 는 spring 으로 넘겨준다

정적 콘텐츠

MVC와 템플릿 엔진
API
으로 보낼 수 있다

@ResponseBody body부에 이내용을 직접 넣어주겠다.
hello String으로

    @GetMapping("hello-string")
    @ResponseBody
    public String helloString(@RequestParam("name") String name) {
        return "hello" + name;
    }

intelliJ 단축키

getter setter
-> command + n

json 구조.
최근엔 거의 json 방식이다.
getter, setter 생성자 방식.
또는 프로퍼티 방식이라고도 한다

   @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;
    }
}

ResponseBody 사용원리

  • HTTP의 BODY에 문자 내용을 직접 반환
  • viewResolver 대신에 HttpMessageConverter 가 동작
  • 기본 문자처리: StringHttpMessageConverter
  • 기본 객체처리: MappingJackson2HttpMessageConverter
  • byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음

참고: 클라이언트의 HTTP Accept 해더와 서버의 컨트롤러 반환 타입 정보 둘을 조합해서 HttpMessageConverter 가 선택된다. 더 자세한 내용은 스프링 MVC 강의에서 설명하겠다.

profile
공부중인 주니어 개발자

0개의 댓글