전체 글 썸네일형 리스트형 [Springboot] 액츄에이터와 보안 1. 액츄에이터와 보안 액츄에이터가 제공하는 기능들은 애플리케이션 내부 정보를 너무 많이 노출함 그래서 외부 인터넷 망이 공개된 곳에 액츄에이터의 엔드포인트를 공개하는 것은 보안상 좋은 방법이 아님 액츄에이터의 엔드포인트들은 외부 인터넷에서 접근이 불가능하게 막고, 내부에서만 접근 가능한 내부망을 사용하는 것이 안전함 2. 보안 방법 1) 액츄에이터 포트 설정 외부 인터넷 망을 통해서 8080 포트에만 접근할 수 있고, 다른 포트는 내부망에서만 접근할 수 있다면 그 다른 포트번호에서 액츄에이터 실행되도록 설정하면 됨 // application.properties management.server.port={포트번호} 2) 액츄에이터 URL 경로에 인증 설정 포트를 분리하는 것이 어렵고 어쩔 수 없이 외부 .. 더보기 [Springboot] 액츄에이터 - httpexchanges 엔드포인트 1. 기능 HTTP 요청과 응답의 과거 기록 확인 HttpExchangeRepository 인터페이스의 구현체를 빈으로 등록하면 httpexchanges 엔드포인트를 사용할 수 있음 HttpExchangeRepository 빈을 등록하지 않으면 엔드포인트가 활성화 되지 않는데 스프링 부트는 기본으로 InMemoryHttpExchangeRepository 구현체를 제공함 이 기능은 매우 단순하고 기능에 제한이 많기 때문에 개발 단계에서만 사용하고 실제 운영 서비스에서는 모니터링 툴이나 핀포인트, Zipkin 같은 다른 기술을 사용하는 것이 좋음 2. 실습 빈 등록 @Bean public InMemoryHttpExchangeRepository httpExchangeRepository() { return ne.. 더보기 [Springboot] 액츄에이터 - loggers 엔드포인트 1. 기능 로깅과 관련된 정보를 확인하고, 실시간 변경 가능 2. 실습 package hello.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @Slf4j @RestController public class LogController { @GetMapping("/log") public String log() { log.trace("trace log"); log.debug("debug log"); log.info("info log"); log.warn("wa.. 더보기 [Springboot] 액츄에이터 - info 엔드포인트 1. 기능 1) 애플리케이션의 기본 정보 노출 2) 기본으로 제공하는 기능 java: 자바 런타임 정보(default: 비활성화) os: OS 정보(default: 비활성화) env: Environment에서 info로 시작하는 정보(default: 비활성화) build: 빌드 정보, META-INF/build-info.properties 파일 필요 git: git 정보, git.properties 파일 필요 2. 실습 1) JAVA, OS 정보 application.yml 내용 추가 management: info: java: enabled: true os: enabled: true 2) env management: info: env: enabled: true info: app: name: hello-a.. 더보기 [Springboot] 액츄에이터 - 헬스정보 health 엔드포인트 헬스 정보를 사용하면 애플리케이션에 문제가 발생했을 때 문제를 빠르게 인지할 수 있음 애플리케이션이 요청에 응답할 수 있는지 판단하는 것을 넘어서 애플리케이션이 사용하는 데이터베이스가 응답하는지, 디스크 사용량에는 문제가 없는지 같은 다양한 정보들을 포함해서 만들어짐 헬스 기능을 직접 구현할 수도 있음 액츄에이터는 db, mongo, redis, diskspace, ping 등과 같은 수 많은 헬스 기능을 기본으로 제공함 헬스 정보를 자세히 보려면 아래와 같은 옵션을 지정하면됨 // application.properties management.endpoint.health.show-details=always 헬스 정보 디테일하게 보기 // application.yml management: endpoint:.. 더보기 [springboot] 액츄에이터(actuator) 1. 의존성 추가 // build.gradle implementation 'org.springframework.boot:spring-boot-starter-actuator' //actuator 추가 2. 액츄에이터가 제공하는 수 많은 기능을 확인할 수 있음 액츄에이터가 제공하는 기능 하나하나를 엔드포인트라고하고 health는 헬스 정보를 beans는 스프링 컨테이너에 등록된 빈을 보여줌 { "_links": { "self": { "href": "http://localhost:8080/actuator", "templated": false }, "beans": { "href": "http://localhost:8080/actuator/beans", "templated": false }, "caches-cac.. 더보기 Jmeter 사용해서 성능 테스트하기 1. thread Group 추가 Test Plan 오른쪽마우스 -> Add -> Threads(Users) -> Thread Group 1개의 thread를 user 1명으로 생각하고 thread 수를 변경하면서 테스트 하기(아래 사진에서는 500으로 설정되어 있음) 2. Sampler 추가하기 Sampler는 실제 우리가 요청하는 테스트의 단위 HTTP 요청을 하기 위해 HTTP Request 선택 Thread Group -> Add -> Sampler -> HTTP Request HTTP 요청할 내용 입력하기 아래와 같은 경우로 ip주소, 포트번호, 경로, http메서드를 입력하고, 필요에 따라 파라미터, body, 파일 등을 넣어줌 컨텐츠 타입 설정 HTTP Request 오른쪽 마우스 -> Ad.. 더보기 맥북 m2 JMeter 설치 및 실행 1. 홈브루를 이용해서 JMeter 설치 brew install jmeter 2. 실행하기 open /opt/homebrew/bin/Jmeter 3. 실행 확인 아래와 같이 JMeter가 실행됨 실행하기 jmeter 더보기 이전 1 ··· 14 15 16 17 18 19 20 ··· 81 다음