티스토리 뷰

스프링 프레임워크(Spring Framework) - 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크

  장점 - 경량 컨테이너, IoC(Invertion of Control 제어역행)

             DI(Dependency Injection 의존성 주입), AOP(Aspect-Oriented Programming 관점 지향 프로그래밍)

 

스프링 부트(Spring Boot) - 스프링 프레임워크 기반의 애플리케이션 ( 경량화, 더 잘 사용할 수 있는 스프링 )

  장점 - Dependency의 관리가 쉽다.

            Embedded server - Tomcat이 내장되어 서버 구동 시간이 짧다. 내장 서블릿 컨테이너로 Jar 파일로 간단 배포가 가능

 

라이브러리

  Gradle은 의존 관계가 있는 라이브러리들을 함께 다운로드해준다.

  IntelliJ기준 Gradle - 프로젝트명 - Dependencies 에서 확인 가능

Gradle이 다운로드 한 라이브러리들

기본 동작 - 스프링 부트에서는 welcome page 기능을 제공 ( static/index.htm을 제공 )

 

템플릿 엔진 - 지정된 템플릿 양식과 데이터가 합쳐져서 HTML 문서를 출력하는 소프트웨어  

  서버 사이드 템플릿 엔진 - HTML 코드에서 고정적인 부분을 템플릿으로 만들고, 동적으로 생성되는 부분을 코드에 포함시킨다.

                                         JSP, Thymeleaf, Freemarker..  등

  클라이언트 사이드 템플릿 엔진 - HTML 코드 형태, 데이터를 받아 동적으로 DOM 객체를 생성한다.

                                                    Mustache .. 등

 

스프링 부트의 기본 동작 

스프링 부트의 기본 동작 과정

클라이언트에서 /hello 요청 -> helloController의 @GetMapping("hello")를 통해 생성자 호출 후 return

-> 리턴 값으로 문자를 반환하면 ViewResolver가 화면을 찾아서 매핑한다. (resources : templates/ + 리턴된 문자 + .html)

 

 

스프링 웹 개발 기초

  정적 컨텐츠 - 작성한 웹 페이지를 그대로 내보내준다.

                       내장 톰캣 서버에서 관련 컨트롤러가 없다면 resources:static/이름.html을 반환해준다.

 

  MVC와 템플릿 엔진 

    MVC - Model, View, Controller

      Model - 객체가 포함해야 할 데이터가 무엇인지 정의(비즈니스 로직 처리)

      View - 사용자에게 보여질 페이지를 정의

      Controller - 사용자의 요구사항을 파악하여 Model에 접근하고, 반영한 데이터를 View를 통해 사용자에게 전달

    사용하는 이유 - 비즈니스 로직과 UI로직을 분리하여 유지보수를 독립적으로 수행한다.

 

 

API(Application Programming Interface)

  객체나 문자를 JSON 형태로 화면에 전달한다. 

  템플릿 엔진과의 차이는 HTML 태그의 사용 여부 (API는 값만 반환을 한다.)

@ResponseBody 사용 원리

  @GetMapping의 결과가 @ResponseBody로 연결될 경우 HttpMessageConverter가 형태에 따라 분류한다.

    반환 타입이 객체일 경우 - JsonConverter를 통해 JSON 형태로 값을 반환

    반환 타입이 문자일 경우 - StringConverter를 통해 문자열 형태로 값을 반환

 

 

            

 

 

          

 

 

 

 

 

본 포스팅은 인프런 강의 중 김영한님의

[ 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] 을 수강하며 작성한 내용입니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
«   2024/11   »
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