Main (88) 썸네일형 리스트형 Logback 설정 파일 작성하기 개요로깅 라이브러리인 Logback 을 설정하여 다양하게 사용해보자 Logback 설정Logback 을 설정하기 위해 slf4j 와 logback 라이브러리를 준비한다.스프링 부트는 기본적으로 이를 제공해준다. 스프링 부트를 사용하고 있지 않으시면, 아래 라이브러리를 등록해 줍니다.dependencies { implementation 'ch.qos.logback:logback-classic:1.5.6' implementation 'ch.qos.logback:logback-core:1.5.6' implementation 'org.slf4j:slf4j-api:2.1.0-alpha1'} 다음으로 resources 하위에 loback.xml 파일을 생성합니다. logback 파일을 열어 아.. 로깅 (Logging) 이란? Logging 은 애플리케이션의 동작, 상태, 오류 등을 기록하는 행위 이며, 이는 디버깅, 성능 모니터링, 보안 감사 등을 위해 중요한 역할을 한다. 다시 말해 로깅(Logging)은 로그(Log)를 기록하는 행위 이다. Log 란? 로그는 과거 항해일지를 통나무에 기록했다하여 log(book) 의 개념이 나왔는데, 이 개념이 컴퓨터 영역으로 확장되면서 운영 체제나 소프트웨어 실행 중 발생하는 정보를 기록한 파일로 불려지게 되었다. 로그 레벨 (Log Level) 일반적으로 사용되어지는 로그레벨은 6가지가 있다.명칭설명TRACE가장 세부적인 수준의 로그DEBUG디버깅 목적의 로그, 개발중 코드의 상태나 흐름을 파악하는데 사용INFO시스템 운영 상태를 나타내는 정보성 로그, 특정 로직의 이벤트 결과를 .. [Docker] health check 를 사용하여 컨테이너 상태 확인 MSA 환경에서 각 서비스들을 일괄 실행시키기 위해 docker-compose 를 사용하였다.이때 서비스간 실행 순서를 보장하기 위해 depens_on 옵션을 사용하였다. # docker-compose.yml config-service: container_name: config-service ... user-service: depends_on: - config-service ... 이때 depends_on 을 통해 config-service 가 실행되었을때 user-service 가 실행되도록 설정하였다. 하지만 config-service 에서 가져와야할 properties 들을 가지고 올 수 없었다. 이는 config-service 가 정상적으로 실행되지 않은 상태.. k6 부하 테스트 사용 ( docker ) k6 는 Grafana Labs 가 운영하는 오픈소스 성능 테스트 도구 입니다.부하 테스트 도구로 JMeter 가 있지만 k6 의 뛰어난 성능과 편의성을 발판으로 빠르게 점유율을 높여가고 있습니다. k6의 특징은 다음 과 같습니다. - 간단한 설치 및 테스트 CLI 를 통한 설치 및 docker 기반으로 쉽게 설치하여 사용할 수 있습니다. - 친숙한 스크립트 javascript 로 작성되기 때문에 가독성이 좋아 어떤 시나리오인지 파악하기 쉽습니다. - 빠른 성능 Go 언어로 작성되어 빠른 처리에 유용합니다. 1. 설치 (docker 사용, 공식 사이트에 다양한 설치방법이 있음)https://grafana.com/docs/k6/latest/docker pull .. 코루틴이란? 코루틴(Coroutine) 이란? 코루틴을 처음 접하게 된다면 코루틴에서 "코" 를 코틀린의 "코" 로 떠올리기 쉬워 코틀린언어에 종속된 기술로 생각하시는 분들이 많습니다. 하지만 코루틴에서 Co 는 "함께, 서로" 라는 의미로 routine (규칙적인 일 또는 작업의 집합) 과 합쳐져서 함께 동작하면 규칙있는 일의 순서를 뜻합니다. 아래는 위키피디아에서 코틀린을 다음과 같이 정의하고 있습니다.실행의 지연과 재개를 허용함으로써,비선점적 멀티태스킹을 위한 서브 루틴을 일반화한 컴퓨터 프로그램 구성요소 (출처: 위키피디아) 따라서 코틀린을 이해하기 위해서는 비선점적 멀티태스킹과 서브 루틴에 대해서 알아야 합니다. 비선점형 멀티태스킹과 선점형 멀티태스킹비선점형: 하나의 프로세스가 CPU를 할당받으면 종료되기 .. Bucket4j 개요현대의 웹 서비스와 API는 대규모 트래픽을 처리해야 하며, 이러한 상황에서 안정성과 성능을 유지하는 것이 중요합니다. 특히, API를 사용할 때 과도한 요청이 서버에 들어오면 시스템 성능 저하 및 다운타임이 발생할 수 있습니다. 이를 방지하기 위해 API 속도 제한(rate limiting) 기법이 자주 사용됩니다. 이 글에서는 자바 기반의 API 속도 제한을 구현하는 데 유용한 라이브러리인 Bucket4j에 대해 다루고, 이를 사용하는 방법과 기본 설정 방법을 설명합니다. API 속도 제한 하는 이유앞서 설명한것과 더불어 다음과 같은 이유가 있습니다. 서버 보호: 과도한 요청으로 인해 서버 자원이 고갈되거나, 서버가 다운되는 것을 방지할 수 있습니다.공정한 사용 보장: 모든 사용자에게 공정한 AP.. Riot API 를 사용하여 전적 검색 사이트 구현 ( OP.GG, Fow ) 공부했던 기술들을 직접 적용해보기위해 개인프로젝트를 고민하던 중 많은 트래픽과 데이터 그리고 다양한 아키텍처를 구현해 볼 수 있는 전적 검색 사이트를 만들어 보기로 했다. 처음 시작할때는 단순히 데이터를 저장해서 사용자에게 보여주면 그만이겠구나 라고 생각했었는데, API의 제한과 많은 양의 데이터로 인해 OP.GG 나 FOW 와 같은 성능을 내기란 쉽지 않았다. 하지만 조금씩 수정해 나가면서 API 병렬처리, API Rate Limit 관리, Redis (캐시 및 랭킹), Jdbc RestTemplate, Kafka 등을 사용하면서 조금씩 속도 개선을 해나갔다. 아직 추가적으로 작업할 부분이 남아있다. 여기서 부터는 개선할 부분과 개선방법에 대해서 꾸준히 작성하면서 공부해 나갈 계획이다. https://.. [Jenkins] Jenkins docker 실행 시 기본 포트 변경 Docker 를 사용하여 Jenkins 를 띄우게 될때 기본포트인 8080 이 아니라 다른 포트로 바꿔줘야할 경우 가 종종 생긴다. 다음 명령어를 통해 기본포트를 변경할 수 있다. docker run --env JENKINS_OPTS=--httpPort=9000 -p 9000:9000 --name jenkins jenkins/jenkins:lts 참조https://jaeyung1001.tistory.com/entry/Jenkins-Docker-Jenkins-%EA%B8%B0%EB%B3%B8-%ED%8F%AC%ED%8A%B8-%EB%B3%80%EA%B2%BD%EB%B0%A9%EB%B2%95 이전 1 2 3 4 ··· 11 다음 목록 더보기