전체 글

DevOps(kubernetes)

[k8s] k8s 디버깅을 위한 kubectl 명령어

1. 파드(컨테이너)에 직접 접속하는 방법kubectl exec -it -n -- /bin/bashkubectl exec -it -n bashORkubectl exec -it -n -- /bin/shkubectl exec -it -n shORkubectl exec -it -n -c -- /bin/bash위의 4개의 명령어 중에 bash나 shell이 있는 컨테이너에 따라 명령어를 입력하면 된다만약 해당 파드에 여러 컨테이너가 존재한다면 컨테이너를 지정하여 명령어를 실행해야 한다 주의파드가 running이 아닌 crashLoopBack이나 Init 등의 상태이면 실행 불가능하다 2. 파드(컨테이너)의 로그(이벤트)를 확인하는 법2.1 logkubectl logs ORkubectl log..

DevOps(kubernetes)

[Jenkins] Gitlab Jenkins webhook

Gitlab Jenkins webhook젠킨슨, gitlab의 admin 계정 혹은 User계정이 생성을 완료 후 진행해야 한다 Jenkins에서 Gitlab 플러그인 다운로드Dashboard > Jenkins 관리 > Plugins > Available Plugins에서 Gitlab을 다운로드한다나는 이미 다운로드했기 때문에 나타나지 않는다Installed 섹션에서 다음과 같이 활성화되어야 한다다운로드 후 꼭 Jenkins를 restart 해주어야 Plugin 이 적용된다 Gitlab personal access tokenJeknins에서 Gitlab과 연동하기 위해서는 계정의 personal access token을 적용해야 한다프로필에서 Edit profile로 들어간다해당 영역에서 기간과 권한을 ..

알고리즘(백준)/구현

[알고리즘/구현] 3085번 : 사탕 게임 - python

링크 : https://www.acmicpc.net/problem/3085   문제소요시간: 50분설계하기(접근방법) 1. 입력받기문자열을 입력받아 리스트로 바꿔준다 2. 구현하기옆에 있는 문자와 같으면 pass옆에 있는 문자와 다르면 서로 위치를 바꾼temp_array를 함수에 넣어준다 함수는 연속된 문자가 가장 많은 값을 반환해준다함수 내부에서 문자가 연속되면 +1불연속이면 1로 초기화시켜준면서 max값과 비교를 한다 가로와 세로를 수행하고 max를 리턴해준다 리턴받은 값들을 max와 비교하면서최대로 긴 문자열을 출력한다 3. 출력하기  코드(출력)n = int(input())arr = []color = ['C','P','Z','Y']for _ in range(n): arr.append(list..

Walga

[Walga] AWS RDS 리전 변경(이전) 미국 동부 -> 서울

문제점가장 긴 티켓 예약 mutation의 경우 15회의 prisma DB 접근이 발생하는데 예약까지 15초나 걸리는 문제가 있었다.사용자 입장에서 꼭 개선되어야할 문제였다 비동기 처리, 로직의 개수, 프리즈마의 성능, 캐싱, Node.js의 이벤트 루프, 싱글 스레드 등 여러 원인을 체크했다. 결론적으로  Walga 개발용 DB가 default인 us-east-1(버지니아 북부)로 설정되어 있어, DB 접근 시 마다 큰 코스트가 발생한다고 생각했다. 여러 블로그를 참고하여 리전을 간편하게 옮길 수 있는 방법을 찾았다 해결 방법1. 기존 DB 리전에서 데이터베이스 스냅샷 생성 (버지니아 리전)  2. 스냅샷 탭에서 스냅샷 복사 (버지니아 리전) 3. 스냅샷 복사 (버지니아 리전 to 서울 리전으로 이전)..

알고리즘(백준)/구현

[알고리즘/구현] 18111번 : 마인크래프트 - python

링크 : https://www.acmicpc.net/problem/18111  문제소요시간: 45분설계하기(접근방법) 1. 입력받기 땅을 입력받는다 땅의 모양은 상관 없기 때문에 편의를 위해 한 배열에 담아도 된다 2. 구현하기문제의 핵심은 브루트 포스로 풀어야 하지만,모든 경우의 수를 테스트할 필요가 없다는 것이다. 가장 낮은 땅의 높이보다 낮은 높이는검사할 필요가 없다. 그렇다면 가장 높은 높이는 어떻게 정하는가? 가능한 가장 높은 높이는(전체 블록의 수 + 주어진 인벤토리의 블록 수) // 전체 땅 넓이이다 이보다 더 블록을 가져올 수는 없다. 가장 낮은 높이와 높은 높이가 정해졌다. 시간은 어떻게 구할까?입력받기에서 말했던 내용에 이어서목표한 땅의 높이를 h라고 할 때,우리는 땅과 h와의 차이만 ..

알고리즘(백준)/구현

[알고리즘/구현] 2108번 : 통계학 - python

링크 : https://www.acmicpc.net/problem/2108  문제소요시간: 33분 22초설계하기(접근방법) 1. 입력받기입력의 수가 많으니 sys를 import 한다 2. 구현하기입력이 50만개이니 충분히 sort가 가능하다따라서 중앙값, 최대와 최소는 sort를 통해 구현해준다 최빈값의 경우, 모든 입력마다 체크하면상당히 비효율적이다 따라서 딕셔너리를 활용해서각 숫자의 입력 횟수를 저장한다. 1. 입력이 1개라면 그 숫자를 출력2. 입력이 여러 개라면,딕셔너리에서 key,value를 temp라는 배열에 추출한다. lambda 함수를 활용하여처 최빈값과 숫자의 크기를 기준으로 sort()한다.0번째 원소의 횟수보가 1번째의 횟수보다 크면 0번째 출력둘이 횟수가 같다면 1번째를 최빈값으로 ..

알고리즘(백준)/구현

[알고리즘/구현] 10773번 : 제로 - python

링크 : https://www.acmicpc.net/problem/10773  문제소요시간 : 3분 10설계하기(접근방법) 1. 입력받기입력의 양이 많으니 sys를 import하여 입력을 구현한다 2. 구현하기배열을 선언하고0이 아닌 숫자가 들어오면 append 0이 들어오면 pop을 해준다 3. 출력하기합을 출력한다 코드(출력)import sysinput = sys.stdin.readlinek = int(input())arr = []for i in range(k): n = int(input()) if n == 0 : arr.pop() else: arr.append(n)print(sum(arr)) 얻어갈 부분

알고리즘(백준)/구현

[알고리즘/구현] 11866번 : 요세푸스 문제 0 - python

링크 : https://www.acmicpc.net/problem/11866      문제소요시간: 30분설계하기(접근방법) 1. 입력받기n, k 를 입력받는다 2. 구현하기이 순열의 구현 핵심은줄어드는 배열을 어떻게 관리하느냐이다. 다른 사람의 풀이를 보니 큐로 쉽게 풀 수 있었다. 구현을 택한 나의 풀이이다  배열이 줄어들지 않도록리스트에서 순서대로 제거한 요세푸스 순열은 0으로 대체하였다 [1,2,3] -> [1,0,3] 요세푸스 숫자를 찾으려면배열을 순회하면서0이 아닌 숫자를 k번 만나면 된다 포인터를 1씩 증가시키면서0이 아니면 check 라는 변수를 + 1 해준다check가 k가 된다면 요세푸스 배열에 넣어준다 이 과정을 모든 원소가 0으로 바뀔 때까지 진행한다. 3. 출력하기 괄호에 주의하여..

되다
코드테일