목차

    불편함을 코드로 지웁니다.

    개발 공부 노트, 개발 도구와 문제를 해결한 과정, AI 프롬프트와 Obsidian 활용법을 정리합니다.

      ⏳ Time Log/TIL · 하루

      [TIL] Day 71 — Spring Boot 핵심 개념 복습 (1/28)

      this.Serena 2026. 6. 8. 21:49

      [TIL] Day 71 — Spring Boot 핵심 개념 복습 (1/28)

      날짜: 2026-01-28
      기술 스택: Spring Boot JPA Spring MVC


      한 줄 요약: 지금까지 배운 Spring Boot 전반 내용 복습 — IoC/DI, MVC 흐름, JPA 영속성 컨텍스트 재정리


      Spring Boot 핵심 개념 복습 체크리스트

      IoC / DI (제어의 역전 / 의존성 주입)

      // 나쁜 예 — 강한 결합
      public class OrderService {
          private MemberRepository memberRepository = new MemberRepository(); // 직접 생성
      }
      
      // 좋은 예 — DI (Spring이 주입)
      @Service
      @RequiredArgsConstructor
      public class OrderService {
          private final MemberRepository memberRepository; // Spring이 알아서 주입
      }

      Spring MVC 요청 처리 흐름

      HTTP 요청
      ↓
      DispatcherServlet (프론트 컨트롤러)
      ↓
      HandlerMapping → 어떤 Controller?
      ↓
      Controller → 비즈니스 로직 위임
      ↓
      Service → Repository
      ↓
      Model + ViewName 반환
      ↓
      ViewResolver → Thymeleaf 템플릿
      ↓
      HTTP 응답

      JPA + Spring Data JPA 핵심 복습

      // Repository 인터페이스만 선언하면 구현체 자동 생성
      public interface MemberRepository extends JpaRepository<Member, Long> {
          Optional<Member> findByEmail(String email); // 메서드 이름으로 쿼리 자동 생성
      }
      메서드 설명
      save() INSERT or UPDATE (ID가 null이면 INSERT, 기존 엔티티면 MERGE)
      findById() PK로 단건 조회, Optional 반환
      findAll() 전체 조회
      delete() 삭제

      더 알아볼 것

      • @SpringBootApplication이 포함하는 3가지 어노테이션 역할
      • @Controller vs @RestController 차이
      • Spring Boot Auto Configuration 동작 원리
      • JpaRepository vs CrudRepository vs PagingAndSortingRepository