Jerry's JellyBeans | blog
Preview Image

프로젝트:샐로그 / 코드 정적 분석 도구 적용 2 (sonarQube - 1)

개요 계속해서 코드 정적 분석 도구를 활용해보는 작업을 진행 중이다. 이전 포스트에서는 SonarLint 를 활용하여 실행 전 작성된 코드를 실시간 분석하고, 이 분석 결과를 바탕으로 몇 가지 코드를 수정해보았다. 이를 통해 코드 품질을 향상 시키고, 팀 별로 협업 중이라면 임의의 스타일을 정해 더 견고한 시스템을 제작할 수 있을 것이다. ...

Preview Image

프로젝트:샐로그 / 코드 정적 분석 도구 적용 1 (sonarLint)

개요 코드 정적 분석 도구에 대한 내용을 알게 되었고 대표적으로 사용되는 도구인 sonarLint와 sonaQube에 대해 살펴보았다. 실제로 사용해보면서 구체적으로 파악되기 시작했는데, 우선 sonarLint의 경우 인텔리제이의 플러그인 설치를 통해 손쉽게 사용 가능하다. 그러나 sonarLint는 서버 전체 코드를 분석해 수치화 해주는 것...

Preview Image

코드 정적 분석 : SonarLint와 SonarQube

개요 코드 정적 분석이라는 것은 코드가 실행되기 전에 소스 코드를 분석하여 품질, 오류, 보안 취약점 등을 평가하는 과정이다. 이 방법은 프로그램의 실행 없이 코드의 구조와 내용을 평가할 수 있기 때문에, 사전에 문제를 발견하고 수정하는 데 유용하다. 지금까지 대규모 트래픽을 모의하여 테스트를 진행해보고 모니터링을 거친 후 타겟 메서드에 ...

Preview Image

프로젝트:샐로그 / 최적화 - 조회 성능 개선 2 (캐싱)

개요 지난 포스트에서는 조회 성능 개선을 위해 비동기 처리를 적용했었다. 하지만 결과를 보니 성능 개선은 없었고, 오히려 메모리 사용량이 늘어 성능이 저하된 모습을 볼 수 있었다. 리소스가 제한된 상황에서 병렬적으로 처리하려다 보니 오히려 추가적인 오버헤드 발생을 제어하지 못해 그런 것으로 보인다. 그래서 이번 포스트에서는 두 번째 솔루...

Preview Image

프로젝트:샐로그 / 최적화 - 조회 성능 개선 1 (비동기 처리)

개요 지난 번 포스트까지 JMeter를 활용하여 대용량 트래픽을 발생시키고 주요 지표를 확인해 모니터링을 진행했다. 해당 과정을 거쳐 조회 성능을 향상 시키기 위해 어떤 방법이 있는지 찾아 보았고, 최소한의 방법으로 최대한의 개선을 할 수 있도록 몇 가지 방법을 적용, 결과를 살펴보았다. 앞서 말했듯이 가장 빈번하게 일어나는 조회 성능을 ...

Preview Image

프로젝트:샐로그 / 모니터링 - 커스텀 매트릭 추가

개요 개선 작업에 대한 포스트를 작성하기 전에, 이 개선 작업을 진행하면서 발생한 이슈와 이 이슈를 핸들링하기 위해 추가한 커스텀 매트릭을 기록하기 위해 이번 포스트를 작성한다. 지금까지 좀 착각하던 것이 있었다. 2.4만번의 요청을 대량으로 발생시키면서 인텔리제이가 화면에서 모든 로그를 출력한 후 매트릭 수집 요청 로그를 보여줄 때 부터...

Preview Image

프로젝트:샐로그 / 모니터링 - 모니터링 결과 2

60초 내로 2.5만번 조회 이어서 2.6만번 가량의 요청이 임계점이라고 보고 그 아래 수준인 2.5만번의 조회 요청을 테스트 해보았다. 17:45 부터 이번에는 프로메테우스와의 연결이 끊겨 매트릭 수집이 멈추거나 애플리케이션이 비정상적으로 정지하는 일은 발생하지 않았다. 다만 요청에 대한 처리 시간이 좀 길다. 위의 모니터링 사진에서...

Preview Image

프로젝트:샐로그 / 모니터링 - 모니터링 결과 1

개요 지난 번 포스트에서 배포 상태와 비슷하게 프로젝트에 mysql 데이터베이스를 적용하고 프로메테우스로 매트릭을 수집, 그라파나로 시각화하는 작업을 진행했다. 그러고서 대충 최적화 해보자, 하고 결론이 나왔는데, 생각할 수록 어떤 지표를 바탕으로 무엇을 기준 삼아 “최적화”를 진행해야하는가? 라는 고민에 빠졌다. 특히 별다른 문제점을 발견하...