1. 스프링 부트를 사용하여 국어 영어 수학의 점수를 입력 받아 평균을 출력하라.
단, 커맨드 객체로 받아 낼 것
2. 스프링 부트를 사용하여 원의 반지름을 입력 받아 넓이를 출력하라.
단, 커맨드 객체로 받아 낼 것
------------------------ git hub
3. 아래의 정의를 설명하라.
- @Controller
사용자의 요청이 진입하는 지점. 요청에 따라 어떤 처리를 할 지 결정해준다. 사용자에게 View를 응답으로 보내준다.
대규모 서비스로 갈수록 처리해야 할 서비스들이 많아지는데, 이를 하나의 클래스에서 몰아 처리할 게 아니라 controller라는 중간 제어자 역할을 하는 것을 만들어서 A 요청에 대한 것은 A-controller가 맡아 필요한 로직 처리를 위한 서비스를 호출하게 된다.
controller는 MVC 패턴에 포함되는 것인데, MVC의 역활에 따라 설계하고 코딩하면 주먹구구식으로 개발할 때 보다 개발비용이나 유지보수비용이 대폭 줄어든다. " 역할분담 "이 핵심이다.
- @GetMapping
- @RequestMapping
- @PostMapping("/grade")
- @GetMapping("/gradeNG")
Spring 컨트롤러의 URI 메소드를 정의하는데 쓰입니다. 요청받는 형식을 GET, POST, PATCH, PUT, DELETE로 정의 할 수 있으며, 정의하지 않을 경우 디폴트로 Get 정의로 됩니다. 각각의 형식별로 사용할 수 있습니다.
- @RequestParam("id")
요청 매개변수에 들어있는 기본 타입 데이터를 메소드 인자로 받아올 수 있다. 여기서 요청 매개변수란, URL 요청의 쿼리 매개변수와 HTML 태그의 Form데이터가 해당한다.
- @ModelAttribute
사용 위치에 따라 기능이 달라진다. 크게 method 위에 사용되는 경우와 parameter 옆에 사용되는 경우로 나뉜다. 기능 중 하나를 먼저 말하자며, Command Object와 같이 Requeset Parameter들을 Object Property에 Binding 시켜준다는 것이다. @ModelAttribute를 생략해도 Command Object를 이용하여 Binding이 되고, @RequestParam 또한 생략해도 사실상 Binding이 가능하다.
그 이유는 Spring 내부적으로 String이나 int 등은 @RequestParam으로 보고, 그 외의 복잡한 객체들은 @ModelAttribute가 생략됐다고 간주하기 때문이다. 하지만 그렇다고 무작정 생략하는 것은 위험한데, Spring이 간단한 숫자나 문자로 전달된 Request Parameter를 제법 복잫반 객체로 변환할 수도 있기 때문이다.
Command Object 옆에 @ModelAttruibute가 사용되는 경우
@PostMapping("/ins")
public String ins(@ModelAttribute User user, Model model) {
String name = user.getUserName();
String phone = user.getPhone();
int age = user.getAge();
// user 객체를 모델에 담는 코드를 작성하지 않아도, 담겨져 있다.
// 내부적으로 model.addAttribute("user", user); 로 담는다.
// 만약 객체명과 변수명이 @ModelAttribute UserVo user 로 되어있는 경우에는 어떻게 담길까?
// 클래스명을 기준으로 카멜케이스를 적용하여 model.addAttribute("userVo", user); 로 담는다.
return REDIRECT_LIST;
}
@ModelAttribute의 역활 중 하나는 Model 객체를 담아 준다는 것이다. Command Object 옆에 @ModelAttribute를 사용했을 때 얻는 또다른 이점은 @ModelAttribute가 붙은 Parameter를 처리할 때는 @RequestParam과 달리 검증 작업을 내부적으로 진행한다.
- Command Object
HttpServletRequest를 통해 들어온 RequestParameter들을 setter method를 이용하여 Object에 정의 되어 있는 속성에 바인딩 되는 Object를 의미한다. Command Object는 보통 VO- DTO를 의미하며, HttpServletRequest로 받아온 RequestParameter의 키 값과 동일한 이름의 속성들을 setter method를 가지고 있어야한다.
바인딩 방식은 Spring이 내부적으로 HttpServletRequest와 Command Object의 setter method를 이용하여 자동으로 바인딩 시켜준다.
-스프링에서의 리다이렉팅 시키는 방법
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@ToString
4. 제이쿼리에 대하여 설명하시오.
5.아래를 자바스크립트로 짜시오.
- 3번 글자수 세기