요약

------------------------------------------
1. GET - 쿼리 파라미터
2. POST - HTML Form

요청 - @RequestParam, @ModelAttribute
------------------------------------------
3. HTTP message body에 데이터 직접 넣어서 전달

요청 - @HttpEntity<T>, @RequestBody
------------------------------------------
------------------------------------------
1. 정적 리소스
2. 뷰 템플릿

3. HTTP 메시지
응답 - @ResponseBody , @HttpEntity<T>
------------------------------------------

** 로깅

* SLF4J
* Logback
**@Slf4j**
@RestController
public class LogTestController {
    //private final Logger log = LoggerFactory.getLogger(getClass());
    //@Slf4j를 넣으면 자동으로 이게 넣어진다.

    @RequestMapping("/log-test")
    public String logTest(){
        String name = "Spring";
        System.out.println("name = " + name);
        //log.info("name = "+ name); //사용할 수 있지만 사용하지 말자! (+연산이 일어나서 쓸모없는 리소스가 사용되는 것임)

        //log의 레벨을 정할 수 있다.
        **log.trace("trace log = {}", name);
        log.debug("debug log = {}", name);
        log.info("info log = {}",name);
        log.warn("warn log = {}",name);
        log.error("error log = {}",name);**
        return "ok";
    }
}
#전체 로그 레벨 설정(기본 info)
logging.level.root=info

#hello.springmvc 패키지와 그 하위 로그 레벨 설정
logging.level.hello.springmvc=debug

1. 요청 매핑

@RequestMapping(value = "/hello-basic", method = RequestMethod.GET) 
// url로 매핑 , 배열도 가능
  public String helloBasic(){
      log.info("helloBasic");
      return "ok";
}
/**
 * method 특정 HTTP 메서드 요청만 허용
 * **GET, HEAD, POST, PUT, PATCH, DELETE**
 */
@RequestMapping(value = "/mapping-get-v1", **method = RequestMethod.GET**)
public String mappingGetV1() {
    log.info("mappingGetV1");
    return "ok";
}
/**
 * 편리한 축약 애노테이션 (코드보기)
 *** @GetMapping
 * @PostMapping
 * @PutMapping
 * @DeleteMapping
 * @PatchMapping**
 */
**@GetMapping**(value = "/mapping-get-v2")
public String mappingGetV2() {
    log.info("mapping-get-v2");
    return "ok";
}