Spring Boot

[Spring Boot] 스프링 웹 개발 기초

seung_hyeon 2024. 12. 20. 03:19

 

정적 웹페이지 & 동적 웹페이지

정적 웹페이지 : 웹 서버에 저장된 파일을 변경 없이 그대로 웹 브라우저에 전달하는 웹 페이지

ex) 자기소개페이지처럼 페이지 안의 내용이 바뀔 일이 없는 웹페이지를 의미

 

동적 웹페이지 : 서버에서 프로그래밍을 통해 HTML 파일을 동적으로 생성하여 웹 브라우저에 전달하는 웹 페이지

ex) 게시판처럼 항상 같은 내용이 뜨는 것이 아닌 웹페이지를 의미 

 

MVC & 템플릿 엔진 

템플릿 엔진 : 서버에서 프로그래밍해서 html을 동적으로 바꾸는 것

MVC(Model, View, Controller) : 동적인 웹페이지를 만들 때 주로 사용

 

API(Application Programming Interface)

프로그램들이 서로 소통할 수 있게 도와주는 것

 

API

API란 무엇일까?소프트웨어 간의 상호작용을 위한 인터페이스를 제공한다 즉 프로그램들이 서로 소통할 수 있게 도와주는 것이다 API가 가져가야 할 내용(Get 요청) hello.insta.com/post/detail?id=60122 

shyeeon.tistory.com


  • 정적콘텐츠

실행 페이지
정적 컨텐츠 이미지

 

localhost:8080/hello-static.html -> 내장 톰캣서버가 요청받음 -> 스프링한테 넘김

스프링: controller 쪽에서 hello-static이 있는지 먼저 확인 -> 없음 -> rosources안에 있는 hello-static을 찾음 -> 있음 -> 반환


  • MVC

controller - view (분리해서 사용)

view : 화면을 그리는데 집중

controller: 비즈니스 로직, 내부적인걸 처리

model: 화면에서 필요한 것들을 담아서 화면 쪽에 전달

실행 페이지

 

 

템플릿 엔진 사용하여 뷰 템플릿을 렌더링 한 결과를 반환하므로 브라우저에서 완성된 HTML 파일이 보임

 

 

MVC, 템플릿 엔진 이미지

 

 

localhost:8080/hello-mvc -> 톰캣이 스프링한테 넘김 -> helloContoller에 있음

viewResolver(뷰를 찾아주고 템플릿을 연결시켜주는 것)가 return의 스트링 네임과 똑같은 애를 찾아서 thymeleaf 템플릿 엔진에서

처리해 달라고 넘김 -> 템플릿 엔진이 렌더링 해서 변환을 한 HTML을 웹브라우저에 반환


    • API (@ResponseBody 사용한 API)
  • ResponseBody에 문자 전달
@GetMapping("hello-string")
  @ResponseBody //http body부분에 데이터 값을 직접 넣어서 반환
  public String helloString(@RequestParam("name") String name) {
      return "hello " + name;
}

실행 페이지

 

템플릿 엔진 사용하지 않고 @ResponseBody를 통해 데이터를 HTTP body에 직접 전송하므로 브라우저에서 반환된 데이터만 보임

 

 

  • ResponseBody에 객체 전달
@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;
        }
  }

 

실행 페이지

→ JSON 방식 (key, value로 이루어진 구조)

 

 

@ResponseBody가 있으면 HTTP의 응답에 데이터를 넣는 동작함

-> HttpMessageConverter가 동작 

   기본 문자처리`StringHttpMessageConverter`

   기본 객체처리`MappingJackson2HttpMessageConverter`

객체를 받았기 때문에 json방식으로 데이터 만들어서 HTTP 응답에 반환

'Spring Boot' 카테고리의 다른 글

[Spring Boot] 회원정보 테스트 에러  (1) 2024.12.21
[Spring Boot] 회원 관리  (2) 2024.12.20
API  (0) 2024.12.20
Spring Boot  (1) 2024.12.20
[Spring Boot] 환경 설정  (0) 2024.12.17