본문 바로가기

TIL

231101_TIL

오늘한일

  • spring 공부

 

 

Spring MVC란 무엇일까?

 

  • MVC란 Model-View-Controller의 약자로, 소프트웨어 디자인 패턴 중 하나입니다.
  • MVC 패턴은 소프트웨어를 구성하는 요소들을 Model, View, Controller로 구분하여 각각의 역할을 분리합니다.

 

Model

  • 데이터와 비즈니스 로직을 담당합니다.
  • 데이터베이스와 연동하여 데이터를 저장하고 불러오는 등의 작업을 수행합니다.

View

  • 사용자 인터페이스를 담당합니다.
  • 사용자가 보는 화면과 버튼, 폼 등을 디자인하고 구현합니다.

Controller

  • Model과 View 사이의 상호작용을 조정하고 제어합니다.
  • 사용자의 입력을 받아 Model에 전달하고, Model의 결과를 바탕으로 View를 업데이트합니다.

 

 

 

 

 

 

Controller 이해하기

 

@Controller

@Controller
public class HelloController {
    @GetMapping("/api/hello")
    @ResponseBody
    public String hello() {
        return "Hello World!";
    }
}

@Controller는 해당 클래스가 Controller의 역할을 수행할 수 있도록 등록해줄 수 있습니다.

 

 

 

 

@GET, @POST, @PUT, @DELETE

  • 각각의 HTTP Method에 매핑되는 애너테이션입니다.

@GET

@GetMapping("/api/get")
@ResponseBody
public String get() {
    return "GET Method 요청";
}

@POST

@PostMapping("/api/post")
@ResponseBody
public String post() {
    return "POST Method 요청";
}

@PUT

@PutMapping("/api/put")
@ResponseBody
public String put() {
    return "PUT Method 요청";
}

@DELETE

@DeleteMapping("/api/delete")
@ResponseBody
public String delete() {
    return "DELETE Method 요청";
}

 

 

 

@RequestMapping

@RequestMapping은 중복되는 URL를 단축시켜줄 수 있습니다.

@Controller
@RequestMapping("/api")
public class HelloController {
    @GetMapping("/hello")
    @ResponseBody
    public String hello() {
        return "Hello World!";
    }

    @GetMapping("/get")
    @ResponseBody
    public String get() {
        return "GET Method 요청";
    }

    @PostMapping("/post")
    @ResponseBody
    public String post() {
        return "POST Method 요청";
    }

    @PutMapping("/put")
    @ResponseBody
    public String put() {
        return "PUT Method 요청";
    }

    @DeleteMapping("/delete")
    @ResponseBody
    public String delete() {
        return "DELETE Method 요청";
    }
}

 

 

느낀점

  • Spring MVC는 효율적인 API 처리를 위해 Front Controller 패턴을 만들어진것 같다.

'TIL' 카테고리의 다른 글

231106_TIL  (0) 2023.11.06
231102_TIL  (1) 2023.11.02
231031_TIL  (0) 2023.10.31
231030_TIL  (0) 2023.10.30
231026_TIL  (0) 2023.10.27