inflearn logo
강의

Course

Instructor

Spring Boot - Core Principles and Applications

What are production-ready features?

어디까지 모니터링으로 커버하고, 어디까지 테스트로 커버해야할까요?

327

ehddbs74589520

4 asked

0

모니터링이란, 테스트로 잡지 못한 버그들이 발생했을 때 그 버그의 원인들을 빠르게 알게 해주는데 목적이 있다고 생각합니다. (비즈니스 지표 모니터링은 여기에선 고려하지 않겠습니다.) 그런데, 어디까지 테스트로 해결해야하고 어디서부터는 모니터링으로 해결해야 할까요?

버그를 꼼꼼히 잡겠다고 가능한 모든 루트를 테스트 하려는 것도 생산성 측면에서 옳은 방법은 아니라고 생각합니다. 또한, 서비스의 규모가 작을 때와 서비스의 규모가 클 경우 어떻게 테스트하고 모니터링 할 지 또한 바뀐다고 생각합니다.

제가 생각하는 방법은

  1. 중요하거나 복잡한 도메인 로직은 유닛테스트로 꼼꼼히 테스트한다

  2. 프레임워크 및 외부 장치들과 잘 통신하는지는 통합테스트로 happy path 정도만 테스트한다.

  3. 그 외에 못잡는 버그들은 모니터링을 통해 해결한다.

이렇게인데요, 제가 맞는 방향으로 생각하고 있는건지 궁금합니다.

또한 서비스의 규모의 차이에 따라 어떻게 테스트하고 모니터링 하는 방법이 달라지는지가 궁금합니다.

spring spring-boot prometheus grafana

Answer 1

2

nahud

안녕하세요, 지나가는 객입니다 ㅎㅎ

박하탕님 말씀을 보니 모니터링과 테스트를 같은 선상에 두고 계신것 처럼 보입니다.

저는 조금 다른 생각인데요. 말씀처럼 테스트로 잡지 못한 버그도 모니터링으로 나올 수 있지만, 메모리 누수나 슬로우 쿼리 등으로 인한 데이터베이스 커넥션 타임아웃, 과도한 요청이 집중되는 순간순간들은 테스트 코드 작성을 통한 확인이 힘듦으로 보입니다.

따라서 말씀하신 방법 3가지 이외에도 모니터링 영역은 영한님 말씀대로 충분히 감시?하는 것이 좋겠습니다! 🙂

서비스 규모에 따른 테스트, 모니터링 기법은 다른 개발자분이 답해주시리라 믿습니다!

보안이 엄격한 데이터

0

71

1

MyProperties 자체를 클라이언트 코드에서 사용

1

42

1

http://localhost:8080/actuator/prometheus

0

84

3

jar 추가에대한 질문드려도될까요?

0

62

1

build.gradle bom link 변경

0

63

2

@Counted 초기화

0

47

1

@Validated를 적용해도 빈 검증이 안되는 경우에 대한 조치 공유..

0

99

2

springboot에서 actuator없이 micrometer를 사용할수 있나요?

0

67

1

@Configuration 질문드립니다.

0

84

2

[공유] 터미널 말고 IDE 에서 jar 실행하기

0

96

1

localhost:8080/hello-servlet 404오류

0

123

2

내장톰캣2 서블릿 톰켓 실행이 안됩니다

1

152

2

최대 Tomcat 스레드 수를 확인하는 지표

0

159

1

mac m2에서 startup.sh 실행후 아무 반응이 없습니다.

0

94

2

내장 톰캣 실행 오류 관련 질문드립니다.

0

156

1

스프링 발전 과정들도 자세히 알아둬야하나요??

1

126

1

스프링부트 ioc 컨테이너 갯수

0

89

1

404 페이지

0

133

3

actuator 호출시 타임스탬프 질문

0

90

1

순수 라이브러리 사용하기 2 - memory-v1

0

124

1

외부설정 @ConfigurationProperties의 내부 클래스에서 static을 사용하는 이유를 알고 싶습니다.

0

102

1

서블릿 컨테이너 초기화1 강의 관련 질문입니다~

0

90

1

Thread Config Max 패널 설정 변경 질문

0

123

1

스프링 액츄에이터 shutdown 엔드포인트 활성화가 안됩니다.

0

103

1