전체 글 126

신입 취준의 끝. 19년 하반기부터 21년 상반기까지

신입 취준의 끝 졸업 후 약 1년 6개월만에 크래프톤에 최종 합격하게 되어 신입 취준을 끝냈다. 아마 지금 다니는 회사에서 큰 문제가 생겨서 수습기간에 잘리지만 않는다면, 앞으로 신입 지원은 없을 것 같다. 전체 지원 이력 약 2년간의 취준생활을 하며 총 36번의 신입 서류지원(ssafy제외)을 하였고 11번의 서류 합격을 했다. 주로 대기업 SI를 하는 회사 위주로 넣었다. 당시 SI 위주로 넣은 이유는 개인적으로 생각하기에 네카라 같은 서비스 회사를 가기에는 실력이 좀 부족하다고 판단을 한 것 같다. 카카오, 라인, 네이버 등 서류를 쓰지 않고 코딩테스트 응시 기회를 주는 회사에도 지원을 했지만 전부 코테에서 떨어졌으므로 서류지원 카운트에는 넣지 않았다. 19년도 하반기 미흡한 코테 준비 서류는 가장..

일상 2021.07.22

[Terraform] merge를 사용하여 변수 합치기

AWS 태그와 같이 map 타입의 리소스에서 1개의 값만 바꾸고 싶을 경우가 있다. 예를 들어, default_tag를 다음과 같이 정의할 수 있다. # vars.tf variable "default_tags" { type = map(string) default = { Name = "resource_name" Owner = "doldol-dev" Author = "doldol@naver.com" Phase = "dev" } } 생성할 AWS 리소스에 위의 태그를 똑같이 활용해야 하는데, 리소스 별로 Name 값만 다르게 하려면 아래와 같이 할 수 있다. local 변수에 바꾸려는 값만 정의한다. 바꾸려는 값과 기존의 값을 merge 한다. 이때, default 값이 무조건 앞에 들어가야한다. merge ..

DevOps/Terraform 2021.07.20

AWS CLI Configure 설정 (Ubuntu 20.02, WSL2 사용)

AWS에 리소스를 배포하기 위해 콘솔에서 GUI로 작업할 수도 있지만, cli를 활용하여 구성하는 것이 편할 때가 있다. 또한, Terraform을 사용하는 경우에는 AWS CLI가 필수이다. 가장 기본이 되는 AWS 공식 문서는 아래와 같다. https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-configure-files.html 구성 및 자격 증명 파일 설정 - AWS 명령줄 인터페이스 이러한 설정은 전적으로 선택 사항입니다. 이러한 설정을 구성하지 않고도 aws s3 이전 명령을 성공적으로 사용할 수 있어야 합니다. 이러한 설정은 성능을 조정하거나 aws s3 명령을 실행 중인 특 docs.aws.amazon.com 액세스 키 발급 우선 콘솔에서..

DevOps/AWS 2021.07.14

Jenkins Plugins 최신으로 업데이트 하기(ex, Token Macro Plugin)

Jenkins Plugin의 버전이 낮아서 가끔 문제가 생기는 경우가 있다. Microsoft Teams에 Webhook을 보내기 위해서는 Token Macro Plugin이 설치되어 있어야 하고, 버전이 2.13이어야 한다. 지금은 업데이트 되어서 2.15로 보이지만, 원래는 2.13만 나와있고 2.15로 업그레이드 하게 해주는 버튼이 활성화 되지 않았다. 이를 업데이트 하기 위해서는 수동으로 플러그인을 다운받아서 업데이트 해줘야 한다. 아래 사이트는 jenkins 플러그인의 최신버전을 다운 받을 수 있는 주소이다. 여기서 업데이트 하려는 플러그인을 검색한 뒤, .hpi 확장자를 가진 파일을 다운 받는다. https://updates.jenkins.io/experimental/latest/ Permal..

DevOps/CICD 2021.05.24

[BOJ 백준, 삼성 SW 역량 테스트 기출 문제] 20058번 : 마법사 상어와 파이어스톰 Python, 파이썬)

www.acmicpc.net/problem/20058 20058번: 마법사 상어와 파이어스톰 마법사 상어는 파이어볼과 토네이도를 조합해 파이어스톰을 시전할 수 있다. 오늘은 파이어스톰을 크기가 2N × 2N인 격자로 나누어진 얼음판에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c www.acmicpc.net DFS 함수에서 재귀가 터져서 sys.setrecursionlimit을 사용했다. 실제 삼성 코딩테스트에서는 sys 라이브러리를 사용할 수 없으니, DFS를 재귀로 짜지 않고 스택으로 짜거나 BFS로 대체하여 풀어야 할 듯 하다. 회전하는 부분을 제대로 구하지 못해서 다른 블로그 글을 참조했다. 리스트의 회전은 어렵다.. 소스코드 import sys, copy sys.setrecursionl..

[BOJ 백준] 20056번 : 마법사 상어와 파이어볼 (Python, 파이썬)

www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 문제에서 구현하라는 대로 푸는 전형적인 시뮬레이션 문제였다. 하지만, 시간이 3980ms로 가까스로 TLE를 면한듯 하다. 같은 칸에 파이어볼이 여러개 있을 수 있으므로 board 안에 deque를 넣어서 파이어볼이 추가로 들어오면 append 시켜줬다. 소스코드 import sys, copy from collections import deque dy = [-1, -1, ..

[Kubernetes] .kube/config 수정하기(삭제)

현재 설치된 Kubernetes Cluster의 정보, context, user의 정보가 Config map으로 .kube/config에 저장되어 있다. 유저를 추가하거나, 클러스터를 추가하면 해당부분에 자동으로 추가가 된다. 더이상 안쓰는 클러스터, 유저를 삭제하려면 아래와 같은 명령어로 삭제가 가능하다. config파일은 굳이 수동으로 지우는것은 권장되지 않는다. kubectl config unset PROPERTY_NAME [options] # 클러스터 삭제(실제로 삭제는 아니고 여기서 연결을 끊는 것) kubectl config unset clusters.cluster_name # 컨텍스트 삭제 kubectl config unset contexts.context_name # 유저 삭제 kubect..

DevOps/Kubernetes 2021.03.24

[Kubernetes Study - 11] Pod - Qos(Quality of Service) Class

Pod의 남은 리소스가 부족한 경우, Pod는 다운되버린다. 하지만 Pod는 중요도가 각기 다르기 때문에, 중요한 Pod가 죽어버리면 서비스에 큰 문제가 생길 수 있다. 그렇기 때문에 상대적으로 중요도가 낮은 다른 Pod를 down 시키고 그만큼의 리소스를 중요도가 높은 Pod에 할당 할 수 있다. 쿠버네티스가 Pod를 생성할 때 다음의 3가지 QoS 클래스 중 하나를 할당한다. 각각을 명시적으로 설정할 수는 없고 컨테이너에 정의된 resources의 request, limits에 따라 쿠버네티스가 알아서 클래스를 적용해주는 것이다. Guranteed(가장 나중에 삭제) 모든 Container에 Request와 Limit가 설정되야 한다. Request와 Limit에는 Memory와 CPU가 모두 설정되..

DevOps/Kubernetes 2021.02.22

[Kubernetes Study - 10] Pod - readinessProbe, livenessProbe

Pod의 기본적인 라이프 사이클 Pending → Running → Succeeded → Failed Pending : 파드가 쿠버네티스 클러스터에서 승인되었지만 아직 컨테이너가 설정되지 않았음. 네트워크를 통한 컨테이너 이미지 다운로드 시간도 포함 Probe Probe의 상태 : Success, Failure, Unknown startupProbe : 어플리케이션이 시작 되었는지를 판단 startupProbe를 세팅한 경우, startupProbe가 OK신호를 보내줘야 readinessProbe 와 livenessProbe가 돌아간다. readinessProbe : 컨테이너가 요청을 처리할 준비가 되었는지 Pod가 새로 배포되고 Running 상태여도 그 안에 있는 컨테이너에서 배포되는 어플리케이션도 ..

DevOps/Kubernetes 2021.02.22