웹 개발 기초: 정적 컨텐츠, MVC와 템플릿 엔진
스프링 부트가 정적 컨텐츠와 MVC 템플릿 엔진, API 응답을 각각 어떻게 처리하는지 예제 코드와 요청 흐름으로 정리합니다.
스프링 부트가 정적 컨텐츠와 MVC 템플릿 엔진, API 응답을 각각 어떻게 처리하는지 예제 코드와 요청 흐름으로 정리합니다.
회원 도메인과 메모리 기반 리포지토리를 인터페이스로 설계하고, JUnit으로 저장·조회 기능을 테스트하며 @AfterEach로 테스트를 서로 독립시키는 과정을 정리합니다.
회원가입 중복 검증 로직을 담은 Service 계층을 구현하고, given-when-then 패턴으로 정상 케이스와 예외 케이스를 테스트하며 @BeforeEach로 저장소를 주입하는 과정을 정리합니다.
@Component 애노테이션이 붙은 클래스를 스프링 빈으로 자동 등록하고, 생성자를 통해 의존관계를 자동으로 주입받는 컴포넌트 스캔 방식을 회원 예제로 정리합니다.
아직 데이터베이스가 정해지지 않은 상황에서 SpringConfig 자바 클래스에 @Configuration과 @Bean을 붙여 스프링 빈을 직접 등록하는 방법을 정리합니다.
Thymeleaf로 홈, 회원 등록 폼, 회원 목록 화면을 구성하고 HomeController에서 등록·조회 요청을 처리하는 과정을 정리합니다.
H2 데이터베이스를 설치해 member 테이블을 만들고, build.gradle과 application.properties를 설정해 스프링 프로젝트와 연동하는 과정을 정리합니다.
순수 JDBC로 MemberRepository를 구현하고, SpringConfig의 빈 설정만 바꿔서 메모리 저장소를 DB로 교체하는 과정을 정리합니다.
@SpringBootTest와 @Transactional로 회원 서비스의 회원가입, 중복 검증, 조회 기능을 통합 테스트하는 과정을 정리합니다.
JPA 라이브러리와 설정을 추가하고 Member 엔티티 매핑과 EntityManager 기반 리포지토리를 구현한 뒤, SpringConfig의 빈 설정만 바꿔 JDBC 구현체를 JPA로 교체하는 과정을 정리합니다.
JpaRepository를 상속한 인터페이스만으로 리포지토리 구현체가 만들어져 스프링 빈으로 등록되는 스프링 데이터 JPA 사용법과, SpringConfig에서 이를 주입받는 방법을 정리합니다.
회원 서비스의 메서드마다 넣은 실행 시간 측정 코드를 예로 들어 핵심 관심사항과 공통 관심사항을 나누는 AOP의 필요성과, @Aspect와 @Around로 시간 측정 AOP를 작성하는 방법을 정리합니다.