ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SpringBoot] MVC패턴
    Programming/SpringBoot 2023. 12. 2. 13:54
    728x90

    뷰 템플릿

    View Template은 화면을 담당하는 기술로, 웹 페이지(view)를 하나의 틀(Template)로 만들고 여기에 변수를 삽입해 서로 다른 페이지로 보여 줍니다.

    이 기술로 사용자 마다 웹 페이지를 만드는 것이 아니라 한 페이지에 변수만 바꿔서 사용자마다의 화면을 보여주게 됩니다.

     

    생성 위치

    뷰 템플릿은 src > main > resources > templates 디렉터리에 만듭니다.

     

    MVC패턴

    Model :데이터 관리

    애플리케이션이 포함해야 할 데이터가 무엇인지를 정의합니다.

    데이터의 상태가 변경되면 모델은 이를 뷰에게 알립니다. 컨트롤러에게 알리기도 합니다.

     

    View : 화면

    애플리케이션에서 실제로 보이는 부분을 말합니다.

    웹 브라우저에서 데이터를 보여주는 방식을 정의한 것입니다.

    View에서 데이터에 따라 동적으로 화면을 다르게 보여주는 것을 뷰 템플릿이라고 합니다.

    자바에서 사용하는 대표적인 템플릿 엔진으로 JSP, Thymleaf(타임리프), Mustache(머스테치) 등이 있습니다.

     

    Controller : 클라이언트의 요청에 따라 서버에서 이를 처리하는 역할

    사용자의 액션에 응답하는 컴포넌트입니다.

    모델을 업데이트하고 다른 여러 액션을 수행합니다.

     

     

    이런 형태를 Spring에 적용한 것이 바로 SpringMVC 입니다.

     

    출처 : https://www.w3schools.blog/spring-mvc-tutorial

     

     

    모델을 통해 변수 등록하는 방법

    모델은 컨트롤러의 메서드에서 매개변수로 받아 옵니다. 모델에서 변수를 등록할 때는 addAttribute()메서드를 사용합니다.

    model.addAttribute("변수명", 변숫값); //변숫값을 "변수명"이라는 이름으로 추가

     


    Spring Boot 프레임워크에 대한 내용은 아래 포스팅을 참고해주세요.

     

    2023.12.02 - [Programming/SpringBoot] - [SpringBoot] 스프링 vs 스프링부트

     

    [SpringBoot] 스프링 vs 스프링부트

    스프링(Spring)은 프레임워크이며, 스프링 부트(Spring boot)는 스프링을 기반으로 한 도구입니다. 스프링에서 스프링 프레임워크로 개선한 사항으로는 다음과 같습니다. - 개발 환경 설정을 간소화 :

    code-space.tistory.com

     

    MVC패턴 프로젝트 설계

    MVC패턴을 적용하기 위해 아래의 파일 구조처럼 controller, dto, entity, responsitory, service로 나누어서 진행합니다.

    [java.com.example.firstproject]
    │  
    ├─controller
    │  ├─exampleController.java
    │  │
    ├─dto
    │  ├─exampleDto.java
    │  │
    ├─entity
    │  ├─example.java
    │  │
    ├─responsitory
    │  ├─exampleRepository.java(Interface)
    │  │
    ├─service
    │  ├─exampleService.java
    ├───

     

     

     

    아래에는 각 역할에 필요한 어노테이션을 적었습니다. 어노테이션은 필요한 곳에 사용하면 됩니다.

    [java.com.example.firstproject]
    │  
    ├─controller
    │  ├─exampleController.java
    │  │  ├───@Controller
    │  │  ├───@RestController
    │  │  │  ├───@GetMapping 
    │  │  │  ├───@PostMapping
    │  │  │  ├───@PatchMapping
    │  │  │  ├───@DeleteMapping
    │  │  ├───@Autowired : service객체 주입
    ├─dto
    │  ├─exampleDto.java
    │  │  ├───@Getter
    ├─entity
    │  ├─example.java
    │  │  ├───@Entity
    │  │  ├───@Id
    │  │  ├───@GeneratedValue
    │  │  ├───@Column
    │  │  ├───@Getter
    ├─responsitory
    │  ├─exampleRepository.java(Interface)
    │  │  ├───@Override
    ├─service
    │  ├─exampleService.java
    │  │  ├───@Service
    │  │  ├───@Autowired : repository객체 주입
    │  │  ├───@Transactional
    ├───

     

     

    참고 자료

    코딩 자율학습 스프링부트3 자바 백엔드 개발 입문 (길벗)

     

     

     

    728x90

    'Programming > SpringBoot' 카테고리의 다른 글

    [SpringBoot] Lombok 롬복  (1) 2023.12.07
    [SpringBoot] JPA  (0) 2023.12.07
    [SpringBoot] MVC패턴 + REST API + JPA 프로젝트 설계  (1) 2023.12.07
    [SpringBoot] Spring Container  (0) 2023.12.02
    [SpringBoot] 스프링 vs 스프링부트  (0) 2023.12.02

    댓글

© 2022. code-space ALL RIGHTS RESERVED.