분류 전체보기105 Spring Boot 테스트 - MockMvc 알아보기 Spring Boot 애플리케이션에서 Controller를 테스트할 때 가장 널리 사용되는 도구가 MockMvc와 WebTestClient다. Spring Boot 3.X부터는 WebTestClient 사용 빈도가 점점 증가하고 있는 추세라고 하지만 MVC 모델에서는 아직도 MockMvc를 많이 사용하고 있다. 이번 포스팅에서는 MockMvc 사용법에 대해서 정리해 보고자 한다. MockMvcSpring MVC 기반 애플리케이션에서 Controller를 HTTP 요청 없이 테스트하기 위해서 등장했다. Servlet Container(Tomcat/Jetty와 같은)를 실제로 실행하지 않고 DispatchServlet 레벨에서 요청을 처리할 수 있다. 주요 특징은 다음과 같다.Spring MVC 전용 (We.. 스프링부트 2025. 11. 22. Spring Boot 테스트 - JUnit5 어노테이션 소프트웨어 개발을 하다 보면 테스트의 중요성을 실감하게 된다. TDD와 같은 테스트 주도 개발 방법론까지 나온 걸 보면 그만큼 중요하다는 것을 알 수 있다. 소프트웨어 개발에서 테스트 코드는 애플리케이션이 동작하는데 이상이 없는지를 확인하는 신뢰성을 담보하는 작업인 만큼 중요하다.Spring Boot는 이러한 테스트 코드를 손쉽게 작성하는 데 있어서 강력한 도구들을 제공한다. JUnit 5, AssertJ, Mockito, TextContext Framework와 같은 도구들 덕분에 복잡한 설정 없이도 애플리케이션의 모든 계층에 대해서 단위 테스트부터 통합 테스트까지 단계적으로 검증할 수도 있다. 이번 포스팅에서는 Spring Boot에서 기본 테스트 엔진으로 사용되는 JUnit5에서 지원하는 각종 어노.. 스프링부트 2025. 11. 6. 티스토리 블로그에 구글 애널리틱스 연동 실패, 이렇게 해결했습니다 블로그를 시작한 지 벌써 2년이 지났다. 올해는 거의 포스팅을 쉬고 있었지만 다시 활성화를 하고 싶은 마음에 블로그를 살펴보던 중에 구글 애널리틱스가 제대로 연동되지 않는 것을 확인했다. 사실 블로그를 처음 시작할 때부터 구글 애널리틱스 연동이 제대로 되고 있는 건지 반신반의했었다. 뭔가 구글 애널리틱스에 표시되는 데이터가 너무 부실해 보였기 때문이다. 그러던 중 GPT의 도움으로 드디어 구글 애널리틱스 연동이 정상적으로 된 듯하여 정리할 겸 포스팅을 남긴다. G-Code 확인구글 애널리틱스 설정을 완료했다면(구글 애널리틱스 설정 방법은 다른 블로그 포스팅을 참고해 주세요^^) G-XXXXXXXXX 형태의 코드를 발급받을 텐데 해당 코드를 확인하는 방법은 다음과 같다.설정 > 관리 > 데이터 수집 및 수.. ETC 2025. 10. 22. Spring Boot 3의 선언형 HTTP 클라이언트 - HTTP Interface란? 외부 서버의 REST API를 호출할 때 RestTemplate, WebClient나 RestClient(Spring Boot 3.2)를 사용하는 것이 일반적이다. 이러한 클라이언트는 요청 메서드, URI, 헤더, 응답 매핑 등을 직접 작성해야 하므로 반복 코드가 많아졌다. HTTP Interface는 이러한 문제를 해결하기 위해 Spring Framework 6부터 등장한 개념이다. 단순히 Java 인터페이스에 어노테이션(@HttpExchange, @GetExchange, @PostExchange)을 붙이면 Spring이 자동으로 구현체(Proxy)를 생성해 WebClient 혹은 RestTemplate, RestClient 기반으로 HTTP 요청을 수행할 수 있다. DependencyHTTP Inte.. 스프링부트 2025. 10. 22. Postman Mock 서버 구성 API 개발을 하다 보면 프런트엔드와 백엔드 개발 속도가 맞지 않는 경우가 있다. 백엔드 API가 개발 중이거나, 외부 서비스와의 연동이 지연되는 경우 프런트엔드 개발자 혹은 클라이언트 개발자는 테스트할 데이터나 응답 구조가 없어 테스트가 어려운 경우가 있다. 이런 경우 postman의 mock 서버 구성을 통해서 API 요청에 대한 확인을 할 수 있다. 이번 포스팅에서는 postman을 이용하여 mock 서버를 구성하는 방법에 대해서 정리하고자 한다. Postman Mock Server란Mock Server는 실제 서버 없이도 API 요청에 대해 미리 정의한 Example 응답을 반환하는 Postman의 기능이다. 즉, 백엔드가 아직 개발되지 않았을 때도 프런트엔드나 테스트 코드가 "API가 이미 존재.. ETC 2025. 10. 17. Spring Boot RestClient 지금까지 대표적으로 사용했던 HTTP 클라이언트 모듈은 WebClient와 RestTemplate가 대표적으로 사용되었다. 하지만 RestTemplate은 이제 maintenance 모드로 변경되었고 (deprecated는 아니다) WebClient는 강력하지만 단순한 동기 호출에는 좀 과한 면이 있었다.이런 문제를 조금 더 개선해 줄 수 있는 HTTP 클라이언트 모듈이 Spring Framework 6.1부터 소개된 RestClient다. (Spring Boot 3.2부터 사용)RestClient는 RestTemplate의 직관적인 API 디자인과 WebClient와 같이 fluent API를 결합하여 동기 방식의 HTTP 통신을 위한 새로운 표준을 제시한다. 이번 포스팅에서는 RestClient 사용.. 스프링부트 2025. 10. 15. Spring Boot Actuator - 6. actuator + prometheus + grafana 운영 중인 애플리케이션이 잘 동작하고 있는지, 장애 조짐은 없는지 어떻게 알 수 있을까? 단순히 로그만 보는 것으로는 분명한 한계가 있다. 애플리케이션 내부 상태 (JVM 메모리, 스레드, HTTP 요청 처리량등)를 실시간으로 모니터링하고 이를 기반으로 알림 설정하며 직관적인 대시보드로 시각화하는 것이 필요하다.Spring Boot는 이런 요구를 충족시키기 위해서 Actuator라는 강력한 모듈을 제공한다. Actuator는 애플리케이션의 헬스 상태와 다양한 메트릭을 엔트포인트로 노출해 주지만 장기간 데이터 저장이나 시각화 기능은 기본적으로 제공하지 않는다.이러한 데이터 보관과 시각화를 위해서 잘 알려진 것이 Prometheus와 Grafana 조합이다. Prometheus는 Actuator에서 노출하는.. 스프링부트 2025. 10. 13. Spring Boot Actuator - 5. 사용자 정의 Endpoint 만들기 Spring Boot Actuator는 Endpoint 추상화를 중심으로 기능을 플러그인처럼 추가, 노출하는 구조다. 도메인 로직과 운영 로직을 분리하면서도 필요시 손쉽게 사용자 정의 Endpoint를 만들 수 있도록 설계되어 있다. 이번 포스팅에서는 점검 플래그를 활성화하여 수신되는 컨트롤러 트래픽을 차단하고 점검 플래그를 해제하여 컨트롤러 트래픽을 정상화하는 Endpoint를 애플리케이션에 추가하는 예시를 살펴보겠다. Endpoint 구성요소우선 Spring Boot Actuator Endpoint를 구성하는데 필요한 요소들은 다음과 같다. @Endpoint(id = "")Endpoint 리소스를 선언하는 역할을 한다. id가 Endpoint 이름이 된다. (base-path가 /actuator인 경.. 스프링부트 2025. 9. 27. Spring Boot Actuator - 4. Endpoint 커스텀 Spring Boot Actuator는 운영 환경에서 애플리케이션을 모니터링하고 관리하기 위한 핵심 도구다. 제공되는 health, metrics, info 등의 엔드포인트들은 일반적인 모니터링 요구사항을 충족하지만, 실제 운영 환경에서는 비즈니스 로직에 특화된 더 세밀한 모니터링이 필요한 경우가 있다. 이러한 경우 엔드포인트를 커스텀하여 원하는 정보를 제공하도록 할 수 있다.이번 포스팅에서는 health 엔드포인트에 대해서 외부 서비스에 대한 커스터마이징에 대해서 정리하고자 한다. HealthIndicatorSpring Boot Actuator에서 HealthIndicator는 하나의 컴포넌트의 상태를 단순하게 표현하는 인터페이스다. 지원되는 외부 서비스 각각에 대해서 HealthIndicator를 제.. 스프링부트 2025. 9. 24. Spring Boot Actuator - 3. Actuator 보안 Spring Boot Actuator는 애플리케이션의 상태와 메트릭을 쉽게 확인할 수 있는 강력한 도구이지만 잘못 설정하면 내부 정보가 외부에 유출되는 보안 위협이 될 수 있다. 따라서 운영 환경에서는 필요한 엔드포인트만 선택적으로 노출하고 인증 및 인가 체계를 적용하여 접근을 제한하는 것이 필수적이다. 이번 포스팅에서는 Actuator 보안에 도움이 되는 내용들에 대해서 정리하고자 한다. Spring Boot Actuator 포트 분리애플리케이션 API와 같은 포트에서 Actuator 엔드포인트를 바인딩하면 외부 사용자도 /actuator/** 경로에 접근할 수 있다. 별도 포트에 두면 네트워크 차원에서 API와 Actuator 접근을 분리할 수 있는 이점이 있다.설정은 다음과 같다.management.. 스프링부트 2025. 9. 23. Spring Boot Actuator - 2. 주요 Endpoint Spring Boot Actuator는 기본적으로 여러 Endpoint를 제공한다. Actuator의 강점은 단순히 "ON/OFF" 수준의 헬스체크를 넘어 애플리케이션 내부 상태를 입체적으로 보여주는 다양한 Endpoint를 제공한다.이번 포스팅에서는 Spring Boot Actuator를 통해서 실무에서 자주 사용되는 Endpoint에 대해서 살펴보고자 한다. 우선 Spring Boot Actuator에서 제공하는 Endpoint 목록은 공식문서를 통해 확인해 볼 수 있다.https://docs.spring.io/spring-boot/reference/actuator/endpoints.html 이번 포스팅에서는 다음의 Endpoint를 살펴보도록 하겠다./actuator/health/actuator/i.. 스프링부트 2025. 9. 21. Spring Boot Actuator - 1. 시작하기 애플리케이션을 운영하다 보면 단순히 서버가 켜져 있다는 사실만으로는 안심할 수 없다. 사용자는 접속이 되는데 실제로 데이터 베이스 연결이 끊겨 있다거나 외부 API 호출이 실패하는 경우도 있다. 운영자는 이런 상황을 빠르게 감지하고 대응할 수 있어야 한다. 이때 필요한 것이 애플리케이션 상태 모니터링인데 Spring Boot는 이런 요구를 충족하기 위한 모듈을 제공한다.그것이 바로 Spring Boot Actuator이다.이번 포스팅에서는 Actuator의 기본 개념과 시작 방법을 다루며 몇 차례에 걸쳐 Actuator에 대한 포스팅을 작성해 보고자 한다. Spring Boot Actuator란?Spring Boot Actuator는 애플리케이션의 내부 상태를 확인하고 관리할 수 있는 운영/관리 기능 집.. 스프링부트 2025. 9. 17. 이전 1 2 3 4 ··· 9 다음 💲 추천 글