전체 글

전체 글

    [GCP] GKE 환경에서 마이크로서비스 어플리케이션 배포하기

    이 포스팅에서는 배포할 SpringBoot 프로젝트가 있다고 가정하고 진행한다. 본인의 프로젝트 버전은 아래와 같다. SpringBoot 2.4.4 Maven 3.3.9 Docker image 빌드 및 Google Container Registry 등록 여기서는 jib 라는 오픈소스 라이브러리를 사용한다. jib는 2019년 구글에서 정식 출시한 자바 애플리케이션을 컨테이너화하는 오픈소스 기반 도구로서, jib 라이브러리를 사용하면 명령어 한 줄로 도커 데몬을 별도로 설치할 필요도 없고 도커 파일이 없어도 도커 이미지를 생성할 수 있다. Dependency만 추가해주면 손쉽게 사용할 수 있다. 여기서는 다루지 않겠다. jib로 자바 컨테이너 빌드 방법: https://cloud.google.com/jav..

    [GCP] Failed to execute goal com.google.cloud.tools:jib-maven-plugin:2.8.0:build (default-cli) on project

    도커 이미지 빌드 시 오류 SpringBoot 프로젝트로 도커 이미지를 빌드하는 도중 다음과 같은 오류를 만났다. [ERROR] Failed to execute goal com.google.cloud.tools:jib-maven-plugin:2.8.0:build (default-cli) on project book: Build image failed, perhaps you should make sure your credentials for 'gcr.io/paeng2-brs/book' are set up correctly. See https://github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#what-should-i-do-when-the-regis..

    [GCP] 마이크로서비스 어플리케이션을 배포할 GKE 환경 설정

    GCP 설정 컨테이너 레지스트리 사용 설정 Google Container Registry API 활성화가 필요하다. 빌드를 통해 생성된 도커 컨테이너를 보관할 컨테이너 저장소를 사용하기 위함이다. GCP console 에서 [좌측메뉴] - [CI/CD] - [Container Registry] 에서 설정이 가능하다. config 설정 및 환경변수 등록 터미널 환경에서 아래 명령어들을 활용하여 사용할 config 를 설정한다. $ gcloud config set project [PROJECT_ID] // 프로젝트 정보의 프로젝트를 ID로 설정 $ gcloud config set compute/znoe asia-northeast3-a $ gcloud config list // 설정 확인 project 아이디..

    [GCP] Local 환경에서 GCP 계정 연동하기(초기 설정)

    [ 목 표 ] Windows 환경의 터미널과 vscode의 로컬 환경에서 Google Cloud Platform 에 remote 접속하여 제어하는 것. GCP 계정과 Remote 접속 환경은 구성되어 있다고 가정한다. GCP console cloudshell 을 사용하지 않는 이유 GCP console cloudshell 에서도 동일한 작업을 할 수 있지만 불편하다. 이유는 다음과 같다. 타이핑에 딜레이가 존재함 별 것 아닐 수 있지만 매우 거슬린다. 그리고 어느정도 길게 명령을 쓰면 줄이 바뀌어 지는데 기존에 있던 글자를 덮어버린다. configuration이 초기화됨 google cloud sdk 를 사용하여 remote 접속하는 것이 마음 편한 이유이다. cloudshell에 재접속을 하면 기존 세..

    [Java] 백준 정규표현식(Regular Expression) 문제 모음 및 풀이

    Problem 15881: Pen Pineapple Apple Pen (Bronze 2) code: https://github.com/PaengE/AlgorithmPractice/blob/master/BaekJoon_java/src/BOJ15881.java Problem 10173: 니모를 찾아서 (Bronze 2) 10173번: 니모를 찾아서 여러 문장이 각 줄로 입력되며, 입력의 마지막에는 "EOI" 입력된다. 한 줄은 최대 80개의 글자로 이루어져 있다. www.acmicpc.net code: https://github.com/PaengE/AlgorithmPractice/blob/master/BaekJoon_java/src/BOJ10173.java Problem 1264: 모음의 개수 (Bronze..

    [Java] 백준 18809 (Gaaaaaaaaaarden) Gold 2

    Problem : https://www.acmicpc.net/problem/18809 Approach 조합을 이용한 BruteForce 와 BFS + 구현 이 필요한 문제이다. 천천히 생각하고 필요한 부분을 캡슐화하여 메소드를 작성하면 된다. 코드에 사용된 변수 설명은 다음과 같다. availableLands: 배양액을 뿌릴 수 있는 Land를 저장한 리스트 selectedAvailableLands: availableLands에서 g + r개의 Land 를 뽑는 조합에 이용할 boolean 배열 selectedLands: 배양액을 뿌릴 곳으로 선택된 g + r 크기의 배열 selectedGreen: selectedLands 중 초록색 배양액을 뿌릴 곳으로 선택한 boolean 배열 time: 해당 영역에..

    [GCP] WSL2 + Google Cloud SDK + VScode 개발환경 구성

    [ 목 표 ] Windows 환경의 터미널과 vscode에서 Google Cloud Platform 에 remote 접속하여 제어하는 환경을 구성하는 것이다. GCP 와 연동은 다른 포스트에 작성할 계획이다. Windows Terminal 설치하기 시작 - Microsoft Store 에서 Windows Terminal을 검색하여 설치할 수 있다. WSL2 설치하기 이번 단락의 모든 명령어는 Windows PowerShell을 관리자 권한모드로 실행시킨 환경에서 실행한다. 읽어보기: WSL1 WSL2 차이 WSL 1과 WSL 2 비교 Linux용 Windows 하위 시스템의 버전 1과 버전 2를 비교합니다. WSL 2의 새로운 내용에 대해 알아봅니다. docs.microsoft.com Linux 용 Wi..

    [Java] 백준 3197 (백조의 호수) Gold 1

    Problem : https://www.acmicpc.net/problem/3197 3197번: 백조의 호수 입력의 첫째 줄에는 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1500. 다음 R개의 줄에는 각각 길이 C의 문자열이 하나씩 주어진다. '.'은 물 공간, 'X'는 빙판 공간, 'L'은 백조가 있는 공간으로 나타낸다. www.acmicpc.net Approach BinarySearch 를 이용한 BFS + 구현 문제였다. 먼저, 얼음이 며칠 뒤에 녹는지에 대한 전처리가 필요하다. (코드에서는 iceberg라고 표현했다.) 얼음에 대한 전처리는 다음 과정으로 처리하였다. findIcebergNearWater(): 물과 인접한 얼음들을 구하였다. icebergsNearWater 큐 : 이 변수는 ..

    [Java] 백준 17071 (숨바꼭질 5) Gold 1

    Problem : https://www.acmicpc.net/problem/17071 17071번: 숨바꼭질 5 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 500,000)에 있고, 동생은 점 K(0 ≤ K ≤ 500,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net Approach 숨바꼭질 시리즈에서 동생이 움직인 버전 이다. 일반적인 BFS로는 시간초과(TLE)가 발생한다. 규칙을 찾아 시간을 단축시켜야 한다. 처음엔 일반적인 BFS를 하여 시간초과를 받았다. 시간초과 코드 또한 아래에 기록했다. 규칙은 다음과 같다. 수빈이가 A초에 X지점을 도착했다고 한다면, A+2초에도 X지점을 도착할 수 있다. ..

    [Java] 백준 16920 (확장 게임) Gold 2

    Problem : https://www.acmicpc.net/problem/16920 16920번: 확장 게임 구사과와 친구들이 확장 게임을 하려고 한다. 이 게임은 크기가 N×M인 격자판 위에서 진행되며, 각 칸은 비어있거나 막혀있다. 각 플레이어는 하나 이상의 성을 가지고 있고, 이 성도 격자판 위 www.acmicpc.net Approach BFS + 구현이 필요한 문제이다. 먼저 사용된 변수 설명을 하겠다. starts[i] : 플레이어 i 의 BFS 시작점들. s[i] : 플레이어 i 가 한번에 이동할 수 있는 거리. visited[i][j] : (i, j) 위치를 방문했는지를 표시. cnt[i] : 플레이어 i 의 땅 개수. 위 변수들을 사용한 문제 풀이 주요 로직은 다음과 같다. 플레이어의 ..