전체 글

창의의 개발블로그입니다.
· 데브옵스
개요 프로젝트를 진행하면서 젠킨스를 통해 배포를 자동화하였다. 하지만 스프링 부트 프로젝트에 HTTPS를 적용시키기 위한 키 파일은 깃허브에 올리지 않았고 젠킨스에서 빌드할 때는 .p12 파일이 없어 오류가 발생했다. 따라서 미리 젠킨스가 빌드 작업을 하는 워크스페이스에 .p12 파일을 넣어두기로 했다. 본론 먼저 테스트를 위한 아이템을 하나 만들겠습니다. 디렉토리의 파일들을 보기 위해서 다음과 같은 파이프라인 스크립트를 작성해주었습니다. pipeline { agent any stages { stage('ls'){ steps{ sh 'ls' } } } } 성공적으로 실행하고 나면 jenkins workspace에 폴더가 생긴 것을 볼 수 있습니다. 📌 젠킨스 워크스페이스 폴더 /var/lib/jenkin..
· 데브옵스
개요 기존에 사용한 파이프라인은 직접 젠킨스에 작성해서 실행시켰다. 하지만 이 파이프라인도 IDE를 이용하여 보다 편리하게 작성하고 싶었고 깃허브를 통해서 버전관리를 해주고 싶어 Jenkinsfile을 통해 파이프라인을 실행하여 보겠다. 본론 📌 기존 방식 기존의 방식은 위와같이 직접 파이프라인 스크립트를 젠킨스에 작성하였다. 📌 Jenkinsfile 사용 Definition을 Pipeline script from SCM 으로 변경해주고 SCM을 Git으로 설정해준다. Repository URL : 자동 배포를 하려는 레포지토리 URL을 입력해준다. Credentials : Github의 Webhook을 통해 빌드하기 위한 크리덴셜을 선택해준다. Branch Specifier : 가져오려는 프로젝트의 브..
· Docker
개요 Mac OS에서 빌드한 이미지를 Ubuntu 20.04에서 실행하려고 했더니 발생한 오류 이미지의 플랫폼이 현재 컨테이너로 실행하려는 호스트의 플랫폼과 호환되지 않는다는 것이다.! 해결 이미지로 빌드할 때 아래의 커맨드를 입력하여 주면된다. docker buildx build --platform linux/amd64,linux/arm64 -t {태그명} --push . 위의 명령어로 플랫폼을 지정해주고 바로 푸시해주게된다. 결과 성공! [Docker] WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v3) and no specific platform..
· 데브옵스
개요 집에 있는 PC에 우분투를 설치하여 서버용으로 사용하기 위해서 윈도우를 제거하고 우분투를 설치하였다. 📌 순서 ubuntu osi 설치 Rafus 툴 설치 바이오스를 통해서 우분투 설치 ❗ USB가 반드시 필요합니다. 본론 📌 ubuntu 설치 Ubuntu 20.04.6 LTS (Focal Fossa) Select an image Ubuntu is distributed on three types of images described below. Desktop image The desktop image allows you to try Ubuntu without changing your computer at all, and at your option to install it permanently late..
· 백준
문제 두 수가 주어졌을 때 최소 공배수를 구하여라. 풀이 이 문제는 최소 공약수로 최대 공배수를 구하는 공식을 사용하여 풀었습니다. 위의 공식으로 해결할 수 있습니다. 최대 공약수, gcd() private static int gcd(int a, int b){ if(a % b == 0) return b; else{ return gcd(b, a%b); } } 유클리드 호제법을 사용하여 재귀 함수로 만들었습니다. a % b = c b % c = d … 를 반복하여 나머지가 0이나왔을 때 b가 최소 공약수가 됩니다. 전체 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import jav..
· 백준
문제 모든 자리가 1로된 두 수의 1의 갯수가 주어졌을 때 최소공약수를 구하여라. 풀이 주어진 두 수의 1의 갯수의 최소 공약수가 바로 모든 자리가 1로된 두 수의 최소 공약수의 1의 갯수였다.! 따라서 유클리드 호제법을 사용하여 문제를 풀어주었다. 최소 공약수, gcd() private static long gcd(long a, long b){ if(a % b == 0L) return b; else{ return gcd(b, a%b); } } 유클리드 호제법을 재귀함수로 구현하여 사용했다. StringBuilder sb = new StringBuilder(); long N = gcd(a, b); for(int i=0; i
· 백준
1747번: 소수&팰린드롬 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, www.acmicpc.net 문제 어떤 수 N이 주어졌을 때 N보다 큰 소수이면서 팰린드롬인 수 중 가장 최소값을 출력하시오. 풀이 에라토스테네스의 체 // 1,000,000이 값으로 들어왔을 때 소수이면서 팰린드롬인 수 중 가장 최소값 1003001 boolean[] A = new boolean[1003002]; for(int i=2; i
· 백준
1456번: 거의 소수 어떤 수가 소수의 N제곱(N ≥ 2) 꼴일 때, 그 수를 거의 소수라고 한다. 두 정수 A와 B가 주어지면, A보다 크거나 같고, B보다 작거나 같은 거의 소수가 몇 개인지 출력한다. www.acmicpc.net 문제 소수의 제곱(N ≥ 2)으로 표현할 수 있는 수를 “거의 소수”라고 한다. 구간 A와 B가 주어졌을 때 A이상 B이하의 거의 소수를 구하여라 1 ≤ A ≤ B ≤ $10^{14}$ 풀이 먼저 에라토스테네스의 체를 활용하여 소수를 모두 구한 후 계산하였다. 에라토스테네스의 체 // 100,000,000,000,000 -> (10,000,000)^2 즉 천만의 제곱까지만 구하면 거의 소수를 구할 수 있다. boolean[] X = new boolean[10000001];..
창e
창의