전체 글 66

[Spring] 소나큐브(SonarQube) CI 파이프라인 구축 (with Gitea)

OverviewSpring Boot (3 버전)에서 소나큐브(SonarQube) CI 파이프라인 구축 (with Gitea) Prerequisite* Spring Boot 3.2.7* Java 17* Gradle 8.1* Sonarqube 5.0.0.4638* Jacoco 0.8.11* Gitea 설치 - [Git] Docker를 통한 Gitea 구축하기(GitLab과 차이)* 소나큐브(SonarQube) 설치 및 Spring Boot 3 설정 - [Spring Boot 3] 소나큐브(SonarQube), JaCoCo 연동하여 정적 분석* 설치 확인Demo 애플리케이션(Spring Boot 3)에는 Sonarqube, JaCoCo가 연동되어 있어야하고, Gitea에 코드가 Push된 상태여야 합니다. 이..

Git 2024.07.05

[Spring Boot 2] 소나큐브(SonarQube), JaCoCo 연동하여 정적 분석

OverviewSpring Boot (2 버전)에서 소나큐브(SonarQube), JaCoCo 연동하여 정적 분석[Spring Boot 3] 소나큐브(SonarQube), JaCoCo 연동하여 정적 분석[Spring] JaCoCo를 통한 Code Coverage 측정 Prerequisite* Spring Boot 2.7.16* Java 11* Gradle 7.1.1* Sonarqube 3.5.0.2730* Jacoco 0.8.11* Docker 테스트 애플리케이션// 테스트할 간단한 Spring Boot 2버전 코드$ git clone https://github.com/hyunkwanko/spring-boot-2.x-demo.git 소나큐브(SonarQube) 설치$ sudo su -$ mkdir son..

Spring 2024.07.05

[Spring Boot 3] 소나큐브(SonarQube), JaCoCo 연동하여 정적 분석

OverviewSpring Boot (3 버전)에서 소나큐브(SonarQube), JaCoCo 연동하여 정적 분석[Spring Boot 2] 소나큐브(SonarQube), JaCoCo 연동하여 정적 분석[Spring] JaCoCo를 통한 Code Coverage 측정 Prerequisite* Spring Boot 3.2.7* Java 17* Gradle 8.1* Sonarqube 5.0.0.4638* Jacoco 0.8.11* Docker 테스트 애플리케이션// 테스트할 간단한 Spring Boot 3버전 코드$ git clone https://github.com/hyunkwanko/spring-boot-3.x-demo.git 소나큐브(SonarQube) 설치$ sudo su -$ mkdir sonarq..

Spring 2024.07.05

[Spring] JaCoCo를 통한 Code Coverage 측정

OverviewSpring Boot에서 JaCoCo를 통한 Code Coverage 측정 Prerequisite* Spring Boot 3.2.7 (Spring Boot 2 버전도 동일하게 적용 가능합니다.)* Java 17* Gradle 8.1* Jacoco 0.8.11 JaCoCo 개념JaCoCo(Java Code Coverage)는 Java 언어로 작성된 프로그램의 코드 커버리지를 측정하는 도구입니다. 코드 커버리지는 소프트웨어 테스트의 품질을 측정하는 데 사용되며, 특히 자동화된 테스트 스위트에서 테스트가 코드베이스의 얼마나 많은 부분을 실행했는지를 보여줍니다.JaCoCo는 다음과 같은 주요 기능을 제공합니다.1. 라인 커버리지(Line Coverage): 소스 코드의 각 라인이 실행된 횟수를 기..

Spring 2024.07.03

[Ubuntu] USB 연결 및 파일 복사(백업)

OverviewOn-premise Ubuntu 서버에서 파일 복사(백업)하기 USB 연결 및 백업// 1. 관리자 권한$ sudo su -// 2. USB 경로 확인 > /dev/sdb$ fdisk -l// 3. USB를 Mount할 디렉토리 생성$ mkdir /tmp/mounted// 4. USB의 포맷 타입에 맞게 Mount// mount -t {USB 포맷} {USB 경로} {Mount할 디렉토리 경로$ mount -t vfat /dev/sdb /tmp/mounted // FAT32$ mount -t ntfs /dev/sdb /tmp/mounted // NTFS// 5. Mount 확인$ df -h// 6. 백업// cp -r -v {백업 원하는 디렉토리 또는 파일} {USB Mount된 경로}//..

Server 2024.06.26

[SQLD] 자격증 합격 후기 (경력자)

Overview지인이 SQLD 자격증 시험본다고 해서 덜컥 같이 등록해서 시험을 보게됐습니다. 경력자 합격 후기는 잘 안보여서 간단하게 후기를 작성하려고 합니다. 경력4년차 백엔드(Devops) 개발자 준비 기간4~5시간 공부 방법일명 '노랭이 책'을 구매해서 문제를 풀었습니다. 이 책은 SQLD, SQLP 둘 다 커버를 하는 문제집이라서 SQLD 범위를 잘 확인해서 문제를 풀면 됩니다. 약 170 문제 정도 됩니다.처음에는 공부 기간을 일주일로 잡았는데, 개인 사정(게으름)으로 미루다가 하루 전에 시간을 내서 공부를 했습니다. 실무에서 SQL을 계속 사용해와서 공부하는데 큰 어려움은 없었지만, SQLD는 Oracle 기반으로 출시되서 생소한 기능들이 있었습니다. 필요한 부분은 외우고 너무 복잡한 문제는..

DB 2024.06.20

[IaC] Ansible을 통한 Application 구축 자동화

OverviewAnsible은 IT 인프라 자동화 및 구성 관리 도구로, 서버나 네트워크 장비, 클라우드 서비스 등을 효율적으로 관리할 수 있게 해주는 오픈 소스 도구입니다. Ansible 기본 개념1. 선언적 언어: Ansible은 YAML 기반의 플레이북(Playbook)을 사용하여 인프라 상태를 정의합니다. 이는 원하는 상태(Desired State)를 선언하는 방식으로 작업을 수행할 수 있게 해줍니다.2. Agentless: Ansible은 Agentless 도구로, 관리 대상 서버에 별도의 에이전트 소프트웨어를 설치할 필요가 없습니다. 대신 SSH를 통해 원격으로 명령을 실행하고 설정을 관리합니다.3. Module 기반: Ansible은 다양한 Module을 제공하여 서버 구성, 파일 관리, 패..

IaC 2024.06.20

[Gitea] Gitea를 통한 CI 파이프라인 구축 (with Nexus)

OverviewGitea를 통한 CI 파이프라인 구축 (with Nexus)[Gitea] Gitea를 통한 CI 파이프라인 구축 (with Docker Hub) PrerequisiteGitea 구축 (링크)HTTPS 적용 (링크)Nexus 구축 (링크) Action Runner 생성// Create Actions Runner Config// act_runner 버전은 현재 기준으로 0.2.10이 최신입니다.$ docker run --entrypoint="" --rm -it gitea/act_runner:0.2.10 act_runner generate-config > config.yaml// Create Actions Runner// ${INSTANCE_URL} = http://xx.xx.xx.xx:300..

Git 2024.06.14

[Kubernetes] Kubernetes Cluster 종료 및 시작

OverviewKubernetes를 운영하다보면 Cluster 전체를 재시작하는 경우가 있습니다. 순서를 안지키고 재시작을 하려는 순간 에러를 맞이할 수 있으니 순서를 잘 확인해서 종료 및 시작을 하시길 바랍니다. Prerequisite운영중인 Kubernetes Cluster (rke2) Kubernetes Cluster 종료 순서Worker Node 중지 > Master Node 중지 > Master Node 서버 재시작 > Worker Node 서버 재시작$ sudo su -// Worker Node 종료$ systemctl stop rke2-agent.service// Worker Node 종료 확인$ systemctl status rke2-agent.service// 서버 재시작 > 재시작하면 ..

Kubernetes 2024.06.14

[Nexus] Nexus를 통한 Private Image Registry 구축

OverviewDocker Image 저장소로 Docker Hub, Harbor, AWS ECR 등을 많이 사용합니다. 이 글에서는 Nexus를 통한 Private Image Registry 구축을 진행하도록 하겠습니다. HTTP에서는 사용이 다소 제한적이라서 무료 도메인과 Let's Encrypt를 통해서 HTTPS를 적용한 후에 진행하도록 하겠습니다. HTTP에서 진행하고자 한다면 insecure registries 설정을 확인해보시길 바랍니다. PrerequisiteAWS EC2 (최소 t2.medium) Docker 설치[Docker] Ubuntu에 Docker 설치하기 Docker Compose 설치[Docker] Ubuntu에 Docker Compose 설치하기 Nginx 설치 (Reverse..

Server 2024.06.14