2026. 6. 23. 15:36ㆍ부트캠프/TIL(Today I Learned)
TIL - Spring MVC, JDBC, SQL 학습
오늘 배운 내용
오늘은 Spring MVC의 데이터 처리 방식과 JDBC, 그리고 데이터베이스의 기본 개념을 학습했다.
Spring에서는 @PathVariable, @RequestParam, @ModelAttribute, @RequestBody를 사용해 URL, 쿼리스트링, Form 데이터, JSON 데이터를 객체로 매핑하는 방법을 배웠다. 또한 Jackson의 ObjectMapper를 이용한 JSON 직렬화/역직렬화 과정도 학습했다.
어노테이션 데이터 처리 목적:
| @PathVariable | URL 경로 | 특정 자원 식별 |
| @RequestParam | 쿼리스트링, Form 데이터 | 단순 값 전달 |
| @ModelAttribute | 쿼리스트링, Form 데이터 | 객체 바인딩 |
| @RequestBody | HTTP Body(JSON) | JSON → 객체 변환 |
추가로 메모장 CRUD 프로젝트를 통해 REST API 설계 방식을 익혔고, JDBC Template을 사용하여 실제 데이터베이스와 연동하는 방법을 실습했다.
어려웠던 점
@RequestParam, @ModelAttribute, @RequestBody의 차이점이 처음에는 헷갈렸다.
특히 어떤 상황에서 객체로 자동 변환이 가능한지, 그리고 JSON 데이터와 Form 데이터가 내부적으로 어떻게 처리되는지 이해하는 데 시간이 걸렸다.
또한 JDBC 코드에서 PreparedStatement, RowMapper, ResultSet이 각각 어떤 역할을 하는지 파악하는 과정이 쉽지 않았다.
문제 해결 과정
먼저 HTTP 요청 방식별로 데이터를 직접 전송해보면서 각각의 어노테이션이 어떤 데이터를 처리하는지 확인했다.
이후 JDBC CRUD 예제를 따라 구현하면서 SQL 실행 과정과 자바 객체가 데이터베이스 테이블과 어떻게 매핑되는지 정리했다.
SQL 실습에서는 외래키(Foreign Key)와 ON DELETE CASCADE를 적용하여 데이터 무결성을 유지하는 방법을 확인했고, 실제로 학생 데이터를 삭제했을 때 연관 데이터가 함께 삭제되는 것을 테스트했다.
새롭게 알게 된 점
- @RestController는 @Controller + @ResponseBody와 동일하다.
- Jackson은 Getter, Setter 또는 생성자를 활용해 JSON과 객체를 변환한다.
- JDBC는 자바와 데이터베이스를 연결하는 표준 API이다.
- PreparedStatement를 사용하면 SQL Injection을 방지할 수 있다.
- 외래키와 ON DELETE CASCADE를 활용하면 연관 데이터의 무결성을 유지할 수 있다.
- 테이블의 한 Row는 자바 객체 하나와 매핑된다는 개념을 이해했다.
내일 학습 목표
- JDBC Template 구조를 더 익숙하게 만들기
- SQL JOIN 문 작성 연습하기
- JPA와 ORM이 JDBC의 어떤 불편함을 해결하는지 학습하기
- 데이터베이스 설계 및 테이블 관계 이해도 높이기
'부트캠프 > TIL(Today I Learned)' 카테고리의 다른 글
| [내일배움캠프 사전캠프_단기심화_8기]_영속성 컨텍스트 및 그 외 TIL (0) | 2026.06.27 |
|---|---|
| [내일배움캠프_단기심화_8기]_Days-5-TIL (0) | 2026.06.26 |
| [내일배움캠프_단기심화_8기] Days 4 TIL (Today I Learned) (0) | 2026.06.25 |
| [내일배움캠프 사전캠프_단기심화_8기]_Day 3 TIL (0) | 2026.06.24 |
| [내일배움캠프 사전캠프_단기심화_8기]_Day 1 오늘의 학습 키워드 (0) | 2026.06.22 |