스프링 웹 개발 기초

inho ha·2022년 2월 9일
0

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8#

웹 개발 방법 3가지

1. 정적 컨텐츠

서버에서 파일을 그대로 웹 브라우저로 전달 해주는 방식

2. mvc와 템플릿 엔진

템플릿 엔진 : jsp, php, 서버에서 프로그래밍 하여 html을 동적으로 바꾸어 전달 해주는 방식
mvc : model, view, controller

3. API

json 데이터 포멧으로 클라이언트에 데이터를 전달하는 방식

정적 컨텐츠

스프링은 정적 컨텐츠 기능을 기본적으로 제공함
/resources/static/ 에 파일을 넣고 서버주소/파일이름 으로 파일에 접근 가능

서버주소/파일이름 으로 접근 시

내장 톰켓 서버에서
1. 스프링 컨테이너에서 파일이름 관련 컨트롤러를 서치
2. 못찾으면 resources/static/ 에서 파일 서치
3. 파일을 웹브라우저에게 리턴

MVC와 템플릿 엔진

MVC : Model, View, Controller
예전에는 View만 이용하여 다 처리했음
요즘은 controller와 view를 분리하는 것이 기본
View : 화면을 그리는데 집중
Model, Controller : 비즈니스 로직과 관련이 있거나 내부적인 것을 처리하는데 집중

	@GetMapping("hello-mvc")
    public String helloMvc(@RequestParam("name") String name, Model model) {
        model.addAttribute("name", name);
        return "hello-template";
    }

서버주소/hello-mvc 로 접근시

  1. 스프링 컨테이너에서 매핑되어 있는 controller 서치
  2. 매핑 되어있는 메서드 실행하여 모델과 리턴값 viewResolver로 전달
  3. view 파일을 찾아서 모델의 값에 따라 html 변환하여 웹 브라우저에 전달

API 방식

@ResponseBody 어노테이션으로 데이터를 응답하도록 설정
객체를 리턴하면 기본적으로 json으로 리턴하도록 설정 되어 있음

	@GetMapping("hello-api")
    @ResponseBody
    public Hello helloApi(@RequestParam("name") String name){
        Hello hello = new Hello();
        hello.setName(name);
        return hello;
    }

서버주소/hello-api 로 접근시

  1. 스프링 컨테이너에서 매핑되어 있는 controller 서치
  2. 매핑되어 있는 매서드 실행하여 결과 리턴
  3. requestBody 어노테이션이 있으므로 http body에 문자 내용을 직접 반환
  4. viewResolver 대신 HttpMessageConverter가 동작
  5. 객체는 JsonConverter로 json으로 웹브라우저에 전달

java bean 규약

class의 데이터를 private으로 설정하고
getter, setter를 public 으로 설정하여 데이터에 접근

IntelliJ 단축키

generate : cmd + n
코드 자동 완성 (귀찮은데? 할때 누르면 마무리 해줌) : cmd + shift + enter

profile
iha / ian / inho ha

0개의 댓글