일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- java spring
- Dependency Injection
- 컨테이너
- @JUnit
- @test
- spring aop
- JdbcTemplate
- Ubunt
- @Spring-Test
- unix
- STS
- 리눅스
- SpringJDBC
- pointcut
- Framework
- AOP
- XML
- 프로퍼티
- JDBC TEMPLATE
- java
- POJO
- Spring Boot
- Linux
- spring
- spring framework
- Di
- Spring JDBC
- 마이바티스
- @AspectJ
- myBatis
Archives
- Today
- Total
개키우는개발자 : )
리포지토리를 사용하는 HelloService 본문
토비의 스프링 부트 - 이해와 원리/섹션10 - Spring JDBC 자동 구성 개발
리포지토리를 사용하는 HelloService
DOGvelopers 2025. 1. 4. 00:21반응형
요약 및 핵심 개념
이 문서는 이전에 작성한 Hello Repository를 활용하여 Hello Service를 구현하고, 서비스 기능을 검증하는 테스트를 작성하는 과정을 다룹니다. 또한, 서비스 계층에서 API 레벨까지 확장하여 데이터베이스 액세스 기능과 자동 구성된 스프링 부트의 동작을 확인합니다.
핵심 내용
1. Hello Service 구현
- 기능 추가:
- HelloRepository를 주입받아 인사를 기록하는 기능(increaseCount)을 추가.
- 관리자가 이름별로 몇 번 인사했는지 확인할 수 있도록 설계.
- 의존성 주입:
- HelloRepository를 생성자를 통해 주입.
- 서비스 클래스가 리포지토리에 의존하는 구조를 설계.
2. 테스트 설계 및 개선
- 단위 테스트:
- 단순한 단위 테스트로 HelloService의 기본 동작(sayHello)을 검증.
- 익명 클래스를 활용해 리포지토리를 스텁으로 대체.
- 통합 테스트로 확장:
- HelloService 테스트에 데이터베이스 액세스 로직을 포함.
- HelloBootTest를 활용해 컨테이너를 띄우고 리포지토리와의 협력을 테스트.
3. 카운트 기능 검증
- 테스트 작성:
- sayHello 호출 시 카운트 증가 여부 확인.
- DB를 직접 조회하거나, 리포지토리를 통해 결과 검증.
- 다중 테스트:
- IntStream.rangeClosed(1, 10)을 사용해 다중 호출 시 카운트 검증.
4. DB 초기화 전략
- 테이블 생성:
- @PostConstruct를 사용해 애플리케이션 시작 시 테이블 초기화.
- JDBC 템플릿을 사용해 SQL(CREATE TABLE IF NOT EXISTS) 실행.
- 테스트 환경 적용:
- 테스트마다 초기화 작업을 수행하여 독립적인 테스트 환경 보장.
5. API 레벨 검증
- API 구현:
- @GetMapping을 통해 카운트 조회 기능 추가.
- 이름을 파라미터로 받아 인사 카운트를 반환하는 API 작성.
- 수동 테스트:
- 실제 애플리케이션 실행 후 수동으로 API 호출하여 동작 확인.
- 인사 횟수를 카운트하고 API 응답을 통해 결과 확인.
6. 서비스 및 API 통합 검증
- 기능 테스트:
- API 호출을 통해 DB에 카운트가 정확히 기록되는지 확인.
- sayHello 호출 횟수에 따라 카운트가 증가하는지 검증.
결론
- Hello Service 구현 및 테스트:
- 서비스 계층에서 HelloRepository를 활용해 간단한 인사 관리 기능을 구현.
- 단위 테스트와 통합 테스트로 기능을 검증.
- DB 초기화와 연계:
- @PostConstruct를 통해 테이블 초기화를 자동화.
- 테스트와 애플리케이션 동작 시 DB 상태를 일관되게 유지.
- API 검증:
- 수동 및 자동 테스트를 통해 서비스와 API 통합 동작을 확인.
- 실제 API 호출을 통해 스프링 부트 자동 구성이 문제없이 작동하는지 검증.
- 다음 단계:
- 스프링 부트의 기본 자동 구성과 비교.
- 스프링 부트가 제공하는 자동 구성의 동작 방식을 분석하고, 작성한 코드를 제거하며 이를 검증.
이로써 스프링 부트의 자동 구성 원리를 활용한 기본적인 예제가 완료되었습니다. 다음 단계는 스프링 부트의 내부 동작을 깊이 탐구하는 작업으로 이어집니다.
반응형
'토비의 스프링 부트 - 이해와 원리 > 섹션10 - Spring JDBC 자동 구성 개발' 카테고리의 다른 글
Hello 리포지토리 (3) | 2025.01.03 |
---|---|
JdbcTemplate과 트랜잭션 매니저 구성 (0) | 2025.01.03 |
DataSource 자동 구성 클래스 (0) | 2025.01.03 |
자동 구성 클래스와 빈 설계 (0) | 2025.01.03 |
Comments