📘 마무리 요약 정리
1. Spring MVC 구조 핵심
🔁 요청과 응답 흐름 (Spring 내부 구조)
| 구성요소 | 역할 |
|---|---|
| DispatcherServlet | 모든 요청을 받아서 흐름 제어 (Front Controller) |
| HandlerAdapter | 실제 핸들러 호출 (어댑터 역할) |
| ViewResolver | View 이름 → View 객체로 변환 (화면 반환 처리) |
2. Client → Server 데이터 전송 방법 (3가지)
| 방법 | 설명 |
|---|---|
| 🔍 GET + Query Parameter | ?key=value 형식 URL 전달 |
| 📝 POST + Form 데이터 | HTML Form의 기본 방식 (x-www-form-urlencoded) |
| 📦 HTTP Request Body | JSON, XML 등 Body를 활용한 구조화된 데이터 |
3. Server → Client 데이터 응답 방법 (3가지)
| 방법 | 설명 |
|---|---|
| 🗂️ 정적 리소스 | HTML, CSS, JS 등 파일 그대로 전달 |
| 🧩 View Template | Thymeleaf, JSP 등 렌더링된 뷰 |
| 🧾 HTTP Response Body | JSON, XML 등의 API 응답 데이터 전달 (REST) |
4. Spring Annotation 요약
| 범주 | 어노테이션 | 설명 |
|---|---|---|
| 📲 요청 매핑 | @Controller, @RestController, @RequestMapping, @GetMapping, @PostMapping 등 | 컨트롤러 정의 및 HTTP 메서드 처리 |
| 📥 요청 처리 | @RequestParam, @PathVariable, @ModelAttribute, @RequestBody | 클라이언트 → 서버 전달값 바인딩 |
| 📤 응답 처리 | @ResponseBody, HttpEntity, ResponseEntity | 서버 → 클라이언트 응답 바디 처리 |
| 🔧 기타 | HttpMessageConverter | 객체 ↔ JSON 자동 변환 처리 도구 |
5. Layered Architecture 핵심 정리
| 계층 | 역할 | 어노테이션 |
|---|---|---|
| 🎛 Controller | 요청 받기, 응답 반환 | @Controller, @RestController |
| ⚙ Service | 비즈니스 로직 수행 | @Service |
| 🛢 Repository | DB와 직접 연동 | @Repository |
| 📦 DTO | 계층 간 데이터 전달 | RequestDto, ResponseDto 등 |
→ 각 계층의 책임을 명확히 분리 → 유지 보수성, 테스트 용이성 향상
6. PreparedStatement 핵심 요약
| 특징 | 설명 |
|---|---|
| 📌 SQL 미리 준비 | 성능 향상 (컴파일 한 번) |
| 🛡️ SQL Injection 방지 | 보안에 안전 |
| ♻️ 재사용 가능 | 같은 쿼리 반복 시 효율적 |
7. Persistence Framework 핵심 요약
| 구분 | 설명 |
|---|---|
| 🎯 목적 | JDBC의 복잡함을 추상화하여 DB 연동 간편화 |
| 📦 기반 기술 | 내부적으로 JDBC API 사용 |
| 🔧 기술 예시 | JDBC Template, MyBatis |
| ⚙ 특징 | PreparedStatement 사용, 자동 자원 관리, SQL/객체 매핑 |