본문 바로가기
반응형

분류 전체보기61

[CI/CD 프로젝트] SonarQube 사용한 코드품질 향상 SonarQubeSonarQube는 소스 코드의 품질을 분석하고 코드의 버그, 코드 스멜, 보안 취약점을 찾아내는 정적 분석 도구주요 기능: 코드 리뷰 자동화, 품질 게이트 설정, 기술 부채 감소 지원.SonarQube 아키텍처Scanner: 소스 코드를 분석하는 클라이언트.Server: 분석 결과를 저장하고 대시보드로 보여주는 중앙 서버.Database: 분석 결과와 프로젝트 메타데이터를 저장.SonarQube / Sonarlint는 아래와 같은 기준을 가지고 정적 분석을 진행한다.제품품질 메트릭규모 관련(라인, 주석비율, 함수별 라인수)복잡도 관련순환 복잡도 : 제어 흐룸에 따라 1 , case, while, for, if (10이하)인지 복잡도 : 중첩문 빈도테스트 관련룰 기반 분석 관련결함 관련의.. 2024. 11. 19.
[CI/CD 프로젝트] Terraform을 사용하여 bastion 서버 생성하기 테라폼이란?테라폼은 HashiCorp에서 개발한 IaC(Infrastructure as a Code)도구이다.클라우드 및 온프레미스 리소스를 파일로 명시하여 인프라를 선언적으로 관리할 수 있다.이러한 구성 파일은 버전 관리, 재사용 및 공유가 가능하여 관리가 용이하다.일관된 워크플로우를 사용하여 인프라의 전체 수명 주기 동안 프로비저닝 및 관리할 수 있다.컴퓨팅, 스토리지, 네트워킹과 같은 저수준 구성 요소부터 애플리케이션과 같은 고수준 구성 요소까지 관리 가능하다. 테라폼 용어ProviderTerraform이 관리할 수 있는 리소스 유형 및/또는 데이터 소스 세트를 추가 ex. AWSResources리소스란 특정 Provider가 제공해주는 조작 가능한 대상의 최소 단위 ex. aws_instanceH.. 2024. 11. 19.
[CI/CD 프로젝트] Git와 GitOps 아키텍처의 이해 GitOps란?Git을 단일 소스로 사용 모든 서비스, 인프라에 대한 관리를 Git을 통해 선언적으로 진행한다. 버전 관리, 협업, 코드 리뷰 등이 표준화된다. 자동화된 배포 gitops에서는 argocd와 같은 툴을 이용하여 배포를 자동화할 수 있다. argocd는 git에 명시되어있는 desired state와 운영환경의 상태가 일치하도록 한다. 이떄문에 변경 사항이 빠르게 배포되고, 롤백할 경우에도 히스토리 관리가 용이하다 GitOps의 작동 방식GitOps는 크게 두 가지 방식으로 작동한다.Push 기반 (배포 방식, CI) 대표 툴 : GitHub Actions, GitLab CI, Jenkins 새로운 코드나 인프라 변경 사항이 Git에 push되면, CI 파이프라인이 이를 감지하여 빌드를 진.. 2024. 11. 19.
[Leetcode] Take Gifts From the Richest Pile TIL변동이 있는 변수/크기 변동이 있는 오브젝트를 반복문의 조건문으로 사용하지 말기ex) 아래처럼 poll하면서 size가 계속 작아지는데 이게 반복문 횟수의 기준이다..? -> 안됨 for( int i = 0; i ** Array -> Length, ArrayList, Queue -> size()**코드 import java.util.*;class Solution { public long pickGifts(int[] gifts, int k) { long sum = 0; PriorityQueue giftMax = new PriorityQueue((o1, o2) -> o2 - o1 ); for( int i = 0; i 1){ i.. 2024. 11. 18.
[백준] 센티와 마법의 뿅망치 성공 예외 케이스1 50 110거인이 사실은 난쟁이였다는 사실을 고려할 필요하 있다..import java.util.*;import java.io.*;public class Main { public static void TallKiller() throws IOException { String answer = "YES"; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String info = br.readLine(); String[] parse_info = info.split(" "); int tall_num = Integer.parseInt(parse_inf.. 2024. 11. 17.
[java] 최대힙, 최소힙 다이어그램으로 힙 sort에 대해 확인하고자 한다면 아래 링크를 클릭해서 참고하면 좋다.heap sort시간 복잡도작업 시간 복잡도:삽입: 𝑂(log𝑛) — 힙의 말단에 삽입한 후, 정렬 수행.삭제: 𝑂(log𝑛) — 최상단(root) 노드를 제거한 후, 힙을 재정렬.접근(최상단 요소 확인): 𝑂(1)구조힙 자료구조:내부적으로 완전 이진 트리(Complete Binary Tree) 구조를 배열로 표현하여 구현된다.노드 간의 부모-자식 관계는 우선순위에 따라 정렬한다.최소 힙: 부모 노드는 항상 자식 노드보다 작거나 같다.최대 힙: 부모 노드는 항상 자식 노드보다 크거나 같다.최소힙PriorityQueue minHeap = new PriorityQueue();최대힙PriorityQueue maxH.. 2024. 11. 15.
[java] type 변경 함수 정리 1. 문자열 -> 숫자int x = Integer.parseInt("123"); ## x = 123double x = Double.parseDouble("123.45") ## x = 123.45long x = Long.parseLong("1234567890") ## x = 12345678902. 객체 or 다른 type => 문자열Object obj = 123;String str = obj.toSting(); # str= "123"Object obj = 123;String str = obj + ""; # str = "123"3. Type간 변경//문자열로 변경String str = String.valueOf(123) # str = "123"String str = String.valueOf(true) #.. 2024. 11. 15.
[kubernetes] Troubleshooting 오브젝트에 대한 모니터링 (Pending, Crashbackoff..)kubectl describe 용도: 특정 리소스(예: Pod, Service, Deployment 등)의 상태와 세부 정보를 확인출력 정보:리소스의 메타데이터, 이벤트 로그, 상태(Status), 네임스페이스 등 포괄적인 정보.특히 이벤트(Event) 항목을 통해 해당 리소스에 발생한 에러, 경고, 상태 변경 내역 등을 확인사용 시기:오류 디버깅 시 Pod이 왜 Pending 상태에 머물러 있는지, CrashLoopBackOff 같은 상태의 원인을 파악할 때 유용Pod이 제대로 스케줄링되지 않거나, 볼륨 마운트 오류, 네트워크 관련 문제를 확인할 때 사용애플리케이션에 대한 모니터링kubectl logs kubectl logs -c .. 2024. 11. 15.
반응형