
Jenkins&Springboot CI/CD 정리(2)
2022. 11. 11. 05:33
DailyStudy/CI CD
Jenkins&Springboot CI/CD 정리(2) 우선 지난 1편에서는 위의 서비스 아키텍쳐의 gradle build와 함께 Jacoco, CheckStyle 설정 및 report 파일 생성 까지 모두 마무리 하였습니다. 이제는 Jacoco와 CheckStyle report를 Sonarqube로 넘겨준 후 Quality Gate를 진행하도록 하겠습니다.=) 현재 SonarQube의 분석결과를 오픈소스인 Sonar-Bot을 통해 간단하게 Gitea의 PR comment로 남겨주는 방식이 추가 되었는데 이부분은 설정할 부분이 생각보다 많아 다음편에서 소개를 해드리도록 하겠습니다. =) 1. SonarQube 설치 및 셋팅 필자의 경우 Sonarqube를 AWS EC2 프리티어에서 실행시키기에는 버거운 ..

Jenkins&Springboot CI/CD 정리(1)
2022. 11. 5. 08:57
DailyStudy/CI CD
Jenkins&Springboot CI/CD 정리(1) 필자가 경험한 Springboot 프로젝트와 Jenkins CI 를 활용한 CI/CD 구축에 대해 정리를 해보고자 합니다. =) 이 시리즈에서는 이미 작성된 내용에 대해선 해당 글로 대체 할 예정이니 참고바랍니다. 필자의 경우 Springboot&Gradle 을 이용하였고, SonarQube의 경우 Ec2 프리티어에서 돌리기 버거워 로컬에서 설치 후 공유기 포트포워딩을 통해 Ec2 인스턴스와 연결하였습니다. Nginx 배포 방식은 Blue&Green 배포 방식을 사용하였습니다. =) 해당 JenkinsPipeline의 jenkinsfile은 필자의 Github에 공유되어 있으니 아래 링크를 참고하여 주세요. =) GitHub - 0AndWild/Je..

Jenkins&Sonaqube&Checkstyle 을 이용한 코드컨벤션 적용기(Naver Code Convention)
2022. 11. 3. 01:50
DailyStudy/CI CD
필자의 경우 Jenkins를 이용한 CI/CD를 진행하며 코드 분석 툴로 Jacoco&Sonarqube를 사용하고 있는 상황이며, 더 나은 코드 품질을 위해 Sonarqube의 Rules 설정을 통한 코드컨벤션을 적용하려 합니다. 코드 컨벤션이란 읽기 쉽고, 구조적으로 파악하기 쉬운 코드를 작성하기 위한 코딩스타일 규약이다. 즉, 다른 개발자가 자신이 작성하지 않은 코드를 보더라도 빠르고 쉽게 이해할 수 있도록 가독성을 높여준다. 이로인해 유지보수의 비용을 줄일 수 있다! 먼저 필자가 겪은 상황에 대해 먼저 설명드리도록 하겠습니다. 필자의 경우 코드 컨벤션으로 Naver 코드컨벤션을 적용시켜 보려 하였고 다음 Github 링크를 통해 코드컨벤션 룰이 담긴 xml 파일들을 다운받아 주었습니다. 그 후 소나..

Jenkins & Slack 연동하기(Slack Notification) 및 파이프라인 작성
2022. 10. 27. 06:28
DailyStudy/CI CD
Jenkins & Slack Notification 연동 Slack에서 Jenkins CI 앱을 추가해주면 다음과 같은 웹 사이트로 이동이 되며 설정 지침에 따라 Jenkins 설정을 진행해 주도록 합시다. =) 먼저 Jenkins Server로 들어와 Slack Notification 플러그인을 설치하시고 Slack 연동을 위한 Credential을 등록해주도록 하겠습니다. Kind : Secret text Secret : Slack 웹 사이트에서 발급된 token ID : Jenkins Pipeline에서 환경변수 값으로 받을 이름을 지정해줌 Description : 해당 credential에 대한 부가적인 설명 Workspace : 3단계에 명시되어 있는 팀 하위도메인 이름 Credential : ..

Nginx 란?
2022. 10. 25. 23:56
DailyStudy/Nginx
Nginx 란 무엇일까? Nginx 란? Nginx는 경량의 고성능 웹 서버(Web Server) 입니다. Nginx는 높은 트래픽 처리를 위해 개발되었다고 합니다. =) 좀 더 살펴보자면 과거에는 Apache 웹서버를 많이 사용하였지만 2000년대에 들어서며 컴퓨터의 보급량이 늘어났고 이용자도 늘어남에 따라 높은 트래픽을 감당 할 수 없었고 C10k 문제가 발생했다고 해요. C10k 문제란? C10k 문제는 동시에 많은 수의 클라이언트를 처리하도록 네트워크 소켓 을 최적화하는 문제라고 합니다. C10k 라는 이름은 10,000개의 연결을 동시에 처리하기 위한 숫자 입니다. 높은 트래픽을 동시에 처리하는 것과 초당 처리하는 속도가 높은 것은 다른 개념입니다. 동시에 처리하는 것은 빠르지 않아도 효율적으로..

도커(Docker) 설치 & 도커(Docker) 명령어 사용방법 총정리
2022. 10. 25. 02:01
DailyStudy/Docker
지난 글에 이어 도커의 명령어와 사용방법을 정리해볼까 합니다 =) 우선 도커를 사용하려면 설치를 해주어야 겠죠? 필자의 경우 AWS EC2 인스턴스로 Ubuntu 환경에서 Docker를 설치하였습니다. (Ubuntu 및 다른 환경에서 설치가 필요하신경우 아래 링크를 참고 해주세요! ) 필자의 경우 연습용으로 ubuntu환경에서 docker 설치를 sudo apt install docker Install Docker Engine on Ubuntu docs.docker.com 만약 Docker 구버전을 삭제 후 신버전을 설치하려 한다면 아래 명령어를 통해 구버전을 삭제해주도록 합니다. =) (Ubuntu 기준) sudo apt-get remove docker docker-engine docker.io con..

도커(Docker) 란? & Docker Container 그리고 가상화 방식의 종류
2022. 10. 24. 16:20
DailyStudy/Docker
도커(Docker)란 무었일까? Docker는 오픈 소스 컨테이너화 플랫폼 입니다. 이 컨테이너화를 통해 하나의 컴퓨터 환경에서 다른 컴퓨터 환경으로 빠르고 안정적이게 애플리케이션이 실행될 수 있도록 코드와 종속성을 패키징하는 소프트웨어의 표준 단위 입니다. 필자는 Docker하면 떠오르는 두 가지가 컨테이너와 이미지 인것 같아요 =) 여기서 이미지는 코드,런타임,시스템 도구, 시스템 라이브러리 및 설정과 같이 어플리케이션을 실행하는 데 필요한 모든 것을 포함하는 가벼운 독립 실행형 소프트웨어 패키지 입니다. 이렇게 말하면 어려울 수 있지만 쉽게 생각해보면 ubuntu 환경을 예시로 우리가 Jenkins를 다운받아 실행을 하려할 때 $ sudo apt-get install jenkins 를 하면 jenk..

Git Jenkins Checkout authentication failed : ERROR: Error fetching remote repo 'origin'
2022. 10. 12. 11:23
TroubleShooting
Gitea & Jenkins CI/CD 에서 Pipeline을 작성하며 테스트 도중 repo Checkout 과정에서 에러를 마주하게 되었다. ERROR: Error fetching remote repo 'origin' build console의 에러로그를 확인해보니 인증 실패가 떴다... 혹여나 필자와 같은 상황이라면 이 글의 끝에 해결법을 찾을 수 있을 것이다 =) 분명 Jenkins에 Gitea 연동 설정에 있어 Credential을 넣어주었는데????????????? 우선 필자는 Credential 설정이 잘못된건가 라는 생각에 Jenkinsfile 과 Jenkins 서버의 프로젝트 Gitea 설정을 확인해보았다. pipeline { agent any stages { stage('gitea clo..