-
[SpringBoot] MVC패턴Programming/SpringBoot 2023. 12. 2. 13:54728x90
뷰 템플릿
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