목록2026/03/08 (3)
공부일기
1. 왜 JPA를 공부해야 하는가MiniSNS 프로젝트를 진행하면서 가장 큰 변화는 데이터베이스를 직접 SQL로 다루지 않게 되었다는 점이었다.예전에는 데이터를 조회하려면 이런 SQL을 작성했다.SELECT * FROM post WHERE id = 1;하지만 Spring Boot와 JPA를 사용하면 이렇게 작성한다.postRepository.findById(1L);SQL을 직접 작성하지 않아도 데이터 조회가 가능하다.이것이 바로 JPA(Java Persistence API)가 하는 일이다.2. JPA란 무엇인가Jakarta Persistence 공식 문서에서는 JPA를 다음과 같이 정의한다.JPA는 Java 객체와 관계형 데이터베이스 간의 매핑을 관리하는 표준 API이다.(Jakarta Persisten..
1. 왜 이 글을 따로 쓰게 되었는가MiniSNS 프로젝트를 만들면서 기능은 하나씩 붙여나갔지만, 중간중간 계속 비슷한 의문이 생겼다.API는 그냥 URL인가?REST API는 API랑 뭐가 다른가?Spring Boot에서 요청을 받는 주체는 Controller인가, Servlet인가?DispatcherServlet은 정확히 무슨 역할을 하는가?JSON이 왜 자동으로 DTO 객체로 바뀌는가?Jackson은 라이브러리라고 하는데, 정확히 무슨 일을 하는가?프로젝트를 계속 진행하다 보니, 기능 구현보다 이런 기초 개념을 한번 정리하고 넘어가는 것이 훨씬 중요하다고 느꼈다.이번 글은 MiniSNS 기능 구현을 잠시 멈추고, Spring MVC가 실제로 어떻게 요청을 처리하는지 이해하기 위해 정리한 글이다.2...
1. 이전 글에서 다룬 내용이전 글에서는 MiniSNS 프로젝트를 통해 Spring Boot 백엔드의 기본 구조를 살펴보았다.또한 다음 개념들을 정리했다.Controller의 역할Service와 트랜잭션Repository와 JPAEntity와 DB 매핑이번 글에서는 Controller 계층에서 실제로 일어나는 일을 더 자세히 살펴보려고 한다.특히 다음 질문을 해결하는 것이 목표다.HTTP 요청은 어떻게 Java 객체가 되는가?@RequestBody는 어떻게 JSON을 DTO로 변환하는가?@PathVariable은 URL 값을 어떻게 가져오는가?@RequestParam은 언제 사용하는가?2. HTTP 요청과 REST APISpring Boot에서 Controller는 HTTP 요청을 처리하는 역할을 한다...