[작성일: 2023. 04. 17]
MyBatis
- DB를 다루는 라이브러리
- SQL을 다루는 방식에는 annotation 방식과 XML 방식이 있음.
- SQL이 복잡하거나 길어지는 경우 annotation보다 XML 을 이용하는 방식 선호
Front-Controller
- 사용자의 request는 Front-controller인 DispatcherServlet을 통해 처리
- HandlerMapping은 Request의 처리를 담당하는 Controller를 찾기 위한 존재
- 여러 객체 중 @RequestMapping Annotation이 적용된 것을 기준으로 판단
- 적절한 컨트롤러를 찾아내면 HandlerAdaptor를 통해 해당 컨트롤러 동작
- Controller는 Request를 처리하는 비지니스 로직을 작성
- View(html)에 전달해야 하는 데이터는 주로 Model 객체에 담아서 전달
- 이 처리는 ViewResolver를 이용
- ViewResolver는 Controller가 리턴한 결과를 어떤 View에서 처리하는 것이 좋을지 해석
- View는 실제 응답을 보내야 하는 데이터를 HTML 등을 이용해 생성함.
- 만들어진 응답은 DispatcherServlet을 통해 전송함.
특징
- HttpServletRequest, HttpServletResponse를 거의 사용할 필요 없이 구현
- 다양한 타입의 파라미터, 다양한 타입의 리턴 타입 사용 가능
- GET 방식, POST 방식등 전송 방식에 대한 처리를 annotation으로 처리 가능
@GetMapping, @PostMapping
- 각각 GET, POST 방식의 주소를 담당
데이터 주고받기
- Get 방식의 경우 주소창에 있는 데이터를 자동으로 VO와 변수에 매핑함.
- 주소창의 데이터와 변수 이름이 다른 경우 @RequestParam을 사용하여 매핑
- 메서드 호출 시 Model을 선언할 수 있으며 이 모델에 여러 가지 속성을 넣고 HTML로 전송하는 방식이 일반적임.
- thymeleaf 방식의 HTML에서는 $와 *를 사용하여 데이터를 읽어옴.
Error 처리
- Exception : Error 발생 시 기본 경로(/error)로 요청이 들어오며, 컨트롤러에서 /error 요청에 대한 처리를 통해 페이지 출력이 가능함.
🐣 해당 게시글은 입문 개발자가 요약/정리한 글이므로 틀린 내용이나 오타가 있을 수 있습니다.