2025/11 20

[k8s] ConfigMap - pod에서 파일처럼 취급하기

개요쿠버네티스를 한참 배울 시점 ConfigMap은 주로 환경 변수 등으로 여러 Pod에서 공유하며 사용하기 위한 리소스라고 이해했었다. 하지만 최근 ConfigMap으로 볼륨을 만들어 Pod에 마운트하는 방식을 보게 되어 기록한다. ConfigMapConfigMap은 키-값 쌍으로 기밀이 아닌 데이터를 저장하는 데 사용하는 리소스다. ConfigMap은 크게 아래와 같은 용도로 활용된다.- 컨테이너 명령어의 인수- 컨테이너 환경 변수- 애플리케이션에서 읽기 전용 볼륨으로 추가- 쿠버네티스 API를 사용하여 ConfigMap을 읽는 Pod 내 실행 코드 작성이번 글애서 확인할 부분은 바로 애플리케이션에서 읽기 전용 볼륨으로 추가하는 방법이다. 방법구성 방법을 적어둔다. 1. ConfigMap 생성c..

Kubernetes 10:30:11

[Terraform] 사용 provider/모듈 버전 확인하기

개요테라폼을 많이 써보진 않았지만, provider나 module의 버전에 따라 제공되는 모듈이나 리소스 변경이 제법 있는 것 같다. 때문에 공식 문서를 참고하기 위해서는 현재 테라폼 코드에서 사용하고 있는 provider, 모듈의 버전이 정확히 어느 버전인지 알 필요가 있다.이번 글은 테라폼 코드에서 사용하고 있는 provider나 모듈의 버전을 확인하는 방법을 정리한다. provider 버전terraform version 명령어를 사용하면 설치된 테라폼 버전과 함께 provider 정보를 확인할 수 있다.terraform version또는 .terraform.lock.hcl 파일에서 확인할 수도 있다. modules 버전terraform init을 수행하면 .terraform 디렉터리 내 modu..

Terraform 2025.11.27

[PostgreSQL] 두 날짜 사이의 차이 계산

개요PostgreSQL에서 두 날짜 간 차이를 계산할 일이 조금 있어서 방법을 적어둔다. 빼기 연산가장 직관적인 방법으로 빼기 연산을 사용할 수 있다. 기본적으로 일, 시, 분, 초 기간에 대한 정보를 출력하는 것 같다. AGEAGE 함수를 사용하는 방법도 있다. AGE 함수를 사용하는 경우에는 일보다 큰 단위의 정보도 출력한다.AGE(datetime, datetime) 참고 문서https://ysyblog.tistory.com/136

Database 2025.11.26

[PostgreSQL] RANDOM - 난수 발생

개요데이터베이스 학습 목적으로 더미 데이터를 만들 때, 무작위로 데이터를 생성하거나 선택할 난수를 활용할 때가 많다. 관련하여 PostgreSQL에서 난수를 생성하는 RANDOM 함수의 사용과 활용법을 적어둔다. RANDOMRANDOM 함수는 난수 값을 발생시키는데, 0부터 1 사이의 난수 값을 반환한다.RANDOM()-- 예시SELECT random();사용법 자체는 아주 단순하다. 이제 이 값을 활용한 방법을 몇 가지 적어둔다. 활용법1. 0 ~ N 사이의 임의 정수random 값에 N을 곱한 후 소수점 미만의 값을 버리면, 0부터 N-1까지의 값 사이의 값을 얻을 수 있다.floor(random() * N);-- 예시SELECT floor(random() * 10);위의 예시는 0부터 9 사..

Database 2025.11.25

[PostgreSQL] UNNEST - 배열을 행(row)으로 EXPAND

개요Database 내 데이터를 다루다 보면 필요에 의해 배열 데이터를 다루게 되는데, PostgreSQL은 MySQL과 달리 array라는 데이터 유형을 지원하고 있어 비교적 다루기 편한 것 같다.이번 글에서는 한 행에 저장되어 있는 데이터를 여러 행으로 EXPAND 하는 UNNEST이라는 함수에 대해 기록 차 적어두려고 한다. UNNESTunnest 함수는 배열을 행 집합으로 확장하는 함수로, 배열에 저장된 순서대로 확장된다.unnest ( anyarray ) 사용 예시 )SELECT unnest(ARRAY[1,2])SELECT unnest(ARRAY[['foo','bar'],['baz','quux']])2차원 배열도 단일 열로 펼쳐진다. 참고 문서https://www.postgresql.org/..

Database 2025.11.24

[Python] json.dump - TypeError: Object of type datetime is not JSON serializable

개요데이터를 다루다 보면 딕셔너리 형식의 데이터를 JSON 형식으로 변환해야 하는 경우가 종종 있다. 이때 데이터에 큰 문제가 없어서 JSON 형식으로 잘 변환이 되면 좋지만, 아래처럼 오류가 나는 상황이 발생할 수도 있다.import jsonfrom datetime import datetimedata = { 'create_dt': datetime.now(), 'name': 'june', 'age': 22,}print(json.dumps(data))내 경우에는 주로 날짜 형식 데이터를 변환하다가 발생하곤 하는데, 아주 간편하게 문제를 해결하는 방법을 적어둔다. 원인 TypeError: Object of type datetime is not JSON serializableJSON은 문자..

Python 2025.11.21

[FreeLens] 터미널을 WSL로 변경하기

개요FreeLens도 다른 IDE와 마찬가지로 터미널 기능을 제공하고 있는데, Windows의 경우에는 기본적으로 PowerShell을 사용하고 있다.PowerShell도 좋은 프로그램이지만, 평소 Ubuntu를 사용해 kubectl 명령어를 사용해왔다 보니 아무래도 편안하게 작업하기는 어려웠다. 따라서 이번 글에서는 FreeLens가 사용하는 터미널을 WSL로 변경해보려고 한다. + 참고터미널 세션은 하단의 + (New Tab) 버튼 > Terminal session을 통해 사용할 수 있다. 방법은 다음과 같다. 터미널 변경1. 설정 페이지로 이동왼쪽 상단 메뉴 > File > Preferences를 클릭하거나 Ctrl + , 를 눈러 설정 페이지로 이동한다.2. TERMINAL SHELL PATH..

Kubernetes 2025.11.20

[FreeLens] ResouceMap 확장 프로그램 설치

개요2025.11.13-[Freelens] k8s IDE 설치 및 사용에서 쿠버네티스 IDE인 렌즈에 대해서 알아보았다. 렌즈를 사용하면 명령어를 사용하지 않고도 여러 유형의 리소스 목록을 확인할 수 있다는 장점이 있지만, 리소스 간의 관계를 확인하기는 조금 어렵다.이번 글에서는 리소스 간의 관계를 볼 수 있도록 도와주는 RescoureMap이라는 확장 프로그램을 설치해보려고 한다. ResouceMapFreeLens는 OpenLens에서 사용되던 확장 프로그램들을 변환해 두었는데, 그 목록은 확장 프로그램 위키에서 찾을 수 있다.그 중 ResouceMap은 쿠버네티스 리소스와 그 관계를 실시간 강제 방향 그래프로 나타내는 확장 프로그램이다. 설치설치 방법은 다음과 같다. 1. 확장 프로그램으로 접근..

Kubernetes 2025.11.19

[Freelens] k8s IDE 설치 및 사용

FreelensFreelens는 쿠버네테스 클러스터를 관리하고 모니터링하기 위한 그래픽 인터페이스를 제공하는 쿠버네티스 IDE이다. 이름에서 알 수 있듯 무료고 오픈소스다.기존에는 Lens(OpenLens)를 주로 사용했는데, Lens의 커뮤니티 버전의 지원이 미흡해지면서 Lens에서 갈라져 나온 프로젝트인 것 같다. FreeLens는 Lens를 포크한 프로젝트고 오픈소스 버전을 유지 관리하는 것을 목적으로 하고 있다. 설치설치는 공식 홈페이지를 통해 다운로드하여 설치한다.이 글에서는 윈도우에 설치했다. 클러스터 추가접속할 클러스터를 추가하는 방법은 크게 두 가지가 있다. 방법 1. kubeconfig 추가왼쪽 메뉴에서 File > Add Cluster 클릭하거나 키보드에서 Ctrl + Shift..

Kubernetes 2025.11.18

[Python] traceback - 예외 메세지 추적하기

개요프로그래밍을 하다 보면 프로그램 종료를 방지하기 위해 try ~ except 구문으로 특정 예외가 아니라 예외 전체를 처리하게 되는 경우 가 있다. 모든 예외를 처리하면 어찌어찌 프로그램은 동작하지만 예상하지 못한 예외로 인해 버그가 발생할 때 예외 메시지가 없어 디버깅이 어려운 상황이 있었다.때문에 이번 글에서는 예외 메세지를 다룰 수 있는 traceback이라는 모듈이 조금 살펴보려고 한다. tracebacktraceback은 Python 프로그램의 Stack Trace를 추출하고 포맷팅, 출력하는 표준 인터페이스를 제공한다. Python 인터프리터가 Stack Trace를 출력할 때의 동작을 재현하며, 프로그램 제어 하에서 Stack Trace을 출력하려는 경우에 유용하다. print_tbt..

Python 2025.11.17
1 2