본문 바로가기

전체 글

(330)
프로메테우스, 그라파나 : 모니터링 도구 메트릭은 실시간 서버의 대략적인 값과 추세를 확인할 때 사용한다. 문제파악! 프로메테우스 : 메트릭을 수집하고 보관하는 DB역할 그라파나 : 메트릭을 보기 편하게 만들어주는 대시보드 프로테메우스 실행파일 실행 후 http://localhost:9090/ 접속 레이블 일치 연산자 = 제공된 문자열과 정확히 동일한 레이블 선택 != 제공된 문자열과 같지 않은 레이블 선택 =~ 제공된 문자열과 정규식 일치하는 레이블 선택 !~ 제공된 문자열과 정규식 일치하지 않는 레이블 선택 프로메테우스 범위벡터 활용 프로메테우스의 메트릭은 게이지/카운터로 나뉜다. increase() 를 사용하면 카운터 메트릭을 게이지처럼 그래프를 확인할 수 있다.지정한 시간 단위별로 증가를 확인할 수 있다. 마지막에 [시간] 을 사용해서 ..
프로덕션 준비 기능 - Actuator Spring Boot Actuator 라이브러리 활용 엔드포인트 활성화 + 노출 필
@Profile(각 환경별로 등록할 스프링 빈 분리) @Profile 을 사용하면 각 환경 별로 외부 설정 값을 분리하는 것을 넘어서, 등록되는 스프링 빈도 분리할 수 있다 만약에 프로필에 따라 빈 등록이 변경되어야 한다면? 예를 들어서 기능을 붙여야 하는데, 로컬 개발 환경에서는 실제 결제가 발생하면 문제가 되니 가짜 결제 기능이 있는 스프링 빈을 등록하고, 운영 환경에서는 실제 결제 기능을 제공하는 스프링 빈을 등록한다고 가정해보자 config 파일에서 @Profile 사용 @Slf4j @Configuration public class PayConfig { @Bean @Profile("default") public LocalPayClient localPayClient(){ log.info("LocalPayClient 빈 등록"); return new L..
YAML 스프링은 설정 데이터를 사용할 때 application.properties 뿐만 아니라 application.yml 이라는 형식도 지원한다. 실무에서는 YAML을 주로 사용함. *주의 : application.properties가 우선권을 가지므로 yml 사용 시 제거 필수 yml 문서 프로필 구분자 = --- my: datasource: url: local.db.com user: local_user password: local_pw etc: max-connection: 1 timeout: 60s options: LOCAL, CACHE --- spring: config: activate: on-profile: dev my: datasource: url: dev.db.com user: dev_user pa..
내부설정파일 통합 application.properties spring.config.activate.on-profile=dev url=dev.dv.com username=dev_user password=dev_pw #--- spring.config.activate.on-profile=prod url=prod.dv.com username=prod_user password=prod_pw #--- 로 영역을 구분한다. (구분자 주위 위아래 주석 적으면 안됨) spring.config.activate.on-profile=프로필이름 ex) 개발 서버에서는 dev프로필 사용 / 운영 서버에서는 prod 사용 커맨드 라인 옵션 인수 실행 --spring.profiles.active=dev 자바 시스템 속성 실행 -Dspring.pro..
Auto Configuration(자동구성) Auto Configuration 스프링 부트는 자동 구성(Auto Configuration)이라는 기능을 제공하는데, 일반적으로 자주 사용하는 수 많은 빈들을 자동으로 등록해주는 기능이다. JdbcTemplate , DataSource , TransactionManager 등등 모두 스프링 부트가 자동구성을 제공해서 자동으로 스프링 빈으로 등록된다. 자동 구성을 언제 사용하는가? AutoConfiguration 은 라이브러리를 만들어서 제공할 때 사용하고, 그 외에는 사용하는 일이 거의 없다. 왜냐하면 보통 필요한 빈들을 컴포넌트 스캔하거나 직접 등록하기 때문이다. 하지만 라이브러리를 만들어서 제공할 때는 자동 구성이 유용하다. 실제로 다양한 외부 라이브러리들이 자동 구성을 함께 제공한다. @AutoC..
소인수분해 https://school.programmers.co.kr/learn/courses/30/lessons/120852 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/120852) import java.util.*; class Solution { public int[] solution(int n) { List list = new ArrayList(); int i = 2; while(n>1){ if(n%i==0){ list.add(i); n = n/i; ..
중앙값 구하기 import java.util.Scanner; public class Median { // 3개의 정숫값을 입력하고 중앙값을 구하기 static int med3(int a, int b, int c){ if(a >= b){ if(b >= c) return b; else if (a c) return a; else if( b>c) return c; else return b; } public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.println("세 정수의 중앙값을 구합니다"); System.out.println("a의 값 : "); int a = stdIn.nextInt(); System.out.p..