[스프링 입문] 스프링 웹개발의 기초

김우경·2021년 1월 4일
0

Spring Framework

목록 보기
2/12

김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 보면서 공부한 내용입니다.

스프링 웹개발의 세가지 종류

정적 컨텐츠

: static html 파일과 같이 정적 페이지 웹 브라우저에 그대로 띄우기

→ Spring Boot에서는 자동으로 제공

:/static 폴더 내에서 자동으로 찾음

동작 과정

localhost:8080/hello.html 요청했을때

  1. 스프링 컨트롤러에서 "hello"찾음
  2. /static안에서 hello.html 찾음

→ 컨트롤러의 우선순위가 더 높다

MVC와 템플릿 엔진

: 서버에서 가공 후 html을 동적으로 바꿔서 띄우기

→ 요즘 개발의 추세
→ 이전에 사용했던 방식은 이거였다.

Controller

: 비즈니스 로직 담당

View

: 사용자에게 보여주는 일에만 집중

e.g. html 파일

  • template engine에서는 html 파일을 변환해서 브라우저에 띄워줌
  • viewResolver : 뷰 찾아주고, 템플릿엔진 연결해주는 역할

API

: json 데이터 구조 포맷으로 클라이언트에게 전달 → 뷰, 리액트나 서버끼리 통신할때 많이 사용

@ResposeBody

http 통신시의 body 부분에 return되는 데이터 직접 넣어주는 annotation

문자값의 리턴

: view(html파일)없이 내가 리턴한 값 그대로 띄우기
→ 거의 사용하지 않는 방법

객체의 리턴

→ json 으로 변환해서 반환

동작 방식

요청시에 톰캣 서버->컨트롤러: @ResposeBody가 있으면
HttpMessageConverter
문자값이 리턴되면 StringHttpMessageConverter가 바로 body에
객체가 반환되면 MappingJackson2HttpMessageConverter json으로 데이터 만들어서 반환

자바의 getter setter

자바 빈 표준 방식, 프로퍼티 접근 방식


private이라서 외부에서 바로 꺼내지 못하는 객체에 접근하기 위한 메소드

static class Hello {
        private String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }

출처

김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 보면서 공부한 내용입니다.
자바 빈즈의 관례

profile
Hongik CE

0개의 댓글