1.Spring MVC 구조
- 프론트 컨트롤러 : DispatcherServlet
- 어댑터 패턴 : HandlerAdapter
- View 응답 : View Resolver
2.중요! Client to Server 데이터 전송하는 방법 3가지
- GET + Query Parameter(=Query String)
- POST + HTML Form(x-www-form-urlencoded)
- HTTP Request Body
3.중요! Server to Client 데이터 응답하는 방법 3가지
- 정적 리소스
- View Template
- HTTP Response Body
4.Spring Annotation
- Controller
- @Controller(View 응답), @RestController(데이터 응답)
- @RequestMapping(Post, Get, Put, Patch, Delete)
- @PathVariable, @RequestParam, @MoelAttribute, @RequestBody 요청
- @ResponseBody, HttpResponseEntity<> 응답
- 각 어노테이션의 사용법 및 주의사항
- HttpMessageConverter
5.Layered Architecture
Controller의 역할을 분담한다.
- Controller
- 요청, 응답
- Service
- 비지니스 로직
- @Service
- Repository
- 데이터베이스 상호 작용
- @Repository
- DTO
- Layer간 데이터 전달
6.Prepared Statement
- query를 미리 준비한다.
- Statement에 비해 성능면에서 뛰어나다.
- 웹 보안을 유지할 수 있다.
7.Persistence Framework
- JDBC API를 사용한다.
- Prepared Statement를 사용한다.
- JDBC 처럼 복잡함이나 번거로움 없이 간단한 작업만으로 Database와 연동된다.
- 자원 관리(Connection)를 자동으로 해준다.
- SQL Mapper
- JDBC Template
8.실습 요약
- 실습을 기반으로 모든 CRUD API를 만들 수 있다.
- 우리가 실습으로 만들어낸건 메모 CRUD API로 대부분의 구조가 정형화 되어있다.
- 그렇다면 우리가 할일은? 메모 → 다른 무엇인가로 바꾸면된다.
- 아직은 문제점들을 가지고 있다.
- 예외 발생시 공통적으로 처리가 불가능하다.
각각의 모든 예외를 try-catch 하여 처리해야 한다.
- RequestDto, ResponseDto를 공유하여 null값이 들어오기도 한다.
필요없는 필드에 추가적인 null 검사를 해야한다.
- Spring Bean, 생성자 주입 등 Spring의 동작 원리에 대해 이해하지 못했다.
- 왜 Interface로 만들어서 구현하여 사용하는지 모른다.
'개발 > 부트캠프' 카테고리의 다른 글
본캠프 : Spring 기초_특강2_@AllArgsConstructor & @RequiredArgsConstructor (0) | 2025.01.31 |
---|---|
본캠프 : Spring 기초_특강1_3 Layered Architecture (0) | 2025.01.24 |
본캠프 : Spring 기초_2주차 (1) | 2025.01.22 |
본캠프 : Spring 기초_1주차 (0) | 2025.01.20 |
본캠프 : 개인 과제(키오스크 만들기) 트러블 슈팅 (2) | 2025.01.20 |