DevOps12 sonarQube를 이용한 CI 코드 정적 분석 기능 추가 정적 코드 분석 정적 코드 분석은 소스 코드에서 수행되는 일련의 자동 검사로 구성됩니다. 정적 분석 도구는 코드를 검사하여 메모리 누수 또는 버퍼 오버플로우 등 알려진 오류 및 취약점을 파악합니다. 또한 정적 분석을 활용하면 코딩 표준 적용이 가능합니다. 정적 분석은 소스 코드에서 실행되기 때문에 프로그램을 실행할 필요가 없으므로 CI/CD 파이프라인의 첫 단계에서 수행하거나 변경 사항 커밋 전 IDE에서 직접 수행하는 경우가 많습니다. 하지만 정적 분석은 프로그래밍 된 규칙 위반이 발생한 사례만을 식별하며, 소스를 읽는 것만으로는 모든 결함을 발견할 수는 없습니다. 그렇기 때문에 테스트 코드와 같은 동적 분석이 가능한 방법과 같이 사용하는 것이 좋습니다. SonarQube란? SonarQube는 정적 .. 2022. 7. 30. Github actions에서 jacoco를 통해 테스트 커버리지 확인하기 ♻️ Jacoco란? Jacoco는 Java Code Coverage의 약자로 자바 테스트 코드를 실행한 결과를 바탕으로 커버리지를 측정하는 오픈소스 라이브러리 입니다. Jacoco를 사용하여 테스트 코드 커버리지 결과를 눈으로 보기 좋도록 html이나 xml, csv 같은 리포트로 생성합니다. 그리고 테스트 결과가 내가 설정한 커버리지를 기준을 만족하는지 테스트 하는 기능도 제공합니다. 🐘 Gradle에서 Jacoco를 통하여 테스트 커버리지 확인하기 적용하기 전에 테스트한 환경은 다음과 같습니다. 🚀 Spring boot 2.7.1 Java 17 Gradle 먼저 Jacoco를 사용하기 위해 build.gradle에 jacoco 플러그인을 추가합니다. plugins { ... ... id 'jacoc.. 2022. 7. 29. 가상서버와 컨테이너 비교 가상서버? 가상 서버는 가상화 소프트웨어를 사용하여 하드웨어를 공유하는 형태로 마치 한 대의 전용 서버가 있는 것처럼 이용할 수 있게 해줍니다. 한 대의 가상머신에서도 여러 대의 가상 서버를 가동할 수 있어 하드웨어 구입이나 설치 관리 비용을 줄일 수 있습니다. 이러한 가상화 소프트웨어를 하이퍼바이저(Hypervisor)라고 부르며 대표적으로 VMWare, VirtualBox, Hyper-V 같은 제품들이 있습니다. 컨테이너? 컨테이너란 가상화 기술중 하나로 대표적으로 리눅스 컨테이너가 있으며 기존의 OS를 가상화시키던 것과 달리 OS 레벨의 가상화로 프로세스를 격리시켜 동작하는 방식입니다. 대표적으로 docker, cri-o가 있습니다. 컨테이너와 가상 서버 비교 가상서버 컨테이너의 경우 커널이 공유되.. 2021. 11. 30. 쿠버네티스란? - 1 쿠버네티스 이전의 배포와 컨테이너, 컨테이너 오케스트레이션 쿠버네티스는 컨테이너화 된 애플리케이션을 효율적으로 배포하고 운영하기 위해 설계된 오픈 소스 플랫폼입니다. 그렇다면 컨테이너는 무엇이고 쿠버네티스 라는 것으로 배포를 한다면 쿠버네티스가 있기 이전의 애플리케이션의 배포는 어떻게 이루어졌을까요? 쿠버네티스 이전의 배포 가상화 기술이 등장하기 이전에는 애플리케이션을 물리 서버에서 실행했었습니다. 하나의 물리 서버에서 여러 애플리케이션을 실행시키게 되면서 하나의 애플리케이션이 리소스를 전부 차지하는 상황이 발생하여 다른 애플리케이션의 성능이 떨어지는 등 문제가 발생하게 되었습니다. 이에 대한 해결책으로 서로 다른 여러 물리 서버에서 각 애플리케이션을 실행할 수 도 있겠지만 각 서버의 리소스가 충분히 활용되지 않고, 유지해야 하는 물리 서버의 개수가 늘어나기 때.. 2021. 11. 30. 이전 1 2 다음