전체 글 1374

[k8s] kind 설치 및 사용법

kindkind는 Kubernetes in Docker의 줄임말로, 컨테이너 ‘노드’를 사용하는 로컬 쿠버네티스 클러스터를 실행하기 위한 도구이다. 다시 말하면 컨테이너 기반의 쿠버네티스 클러스터이다.다중 노드 클러스터, Linux, macOS, Windows를 지원하며 CNCF 인증을 준수하는 k8s 설치 프로그램이다. 쿠버네티스 자체를 테스트하기 위해 설계되었으나, 로컬 개발이나 CI에도 사용할 수 있다. 평소 쿠버네티스 관련 테스트를 수행하면 Killercoda를 사용했는데, Killercoda의 경우에는 무료 사용자는 세션이 1시간까지만 유지된다는 번거로움이 있다. 반면 kind는 사용자가 직접 구성하는 클러스터이기 때문에 장시간 테스트를 수행하는 경우에는 보다 적절할 수 있을 것 같다. 설치..

Kubernetes 10:15:32

[Python] __call__ 이란

개요최근 Python으로 작성된 코드 분석을 위해 공부를 하다가 __call__이라는 매직 메서드를 보게 되었다. 잘 모르는 부분이라 개념을 정리한다. __call____call__은 Python 클래스의 특수 메서드로, 클래스의 객체를 함수처럼 호출 가능하게 만들어준다.__call__ 메서드를 정의하면 객체 obj(arg1, arg2)를 호출할 때 obj.__call__(arg1, arg2)가 자동으로 트리거 된다. 이를 통해 객체를 함수처럼 동작하게 만들어 유연하고 재사용 가능한 코드를 작성할 수 있다. 문법class Example: def __init__(self): # code # Defining __call__ method def __call__(self): ..

Python 2025.12.10

[Grafana] 대시보드 권한 관리

개요Grafana에 대시보드를 구축했는데, 별도의 요구사항이 없어 접속용 계정을 만들지 않고 있었다. 최근 권한 관리에 대한 요구 사항이 생겨서 기록 목적으로 작성한다.사용자를 생성하는 방법은 예전에 2022.03.21-[Grafana] 일반 사용자 추가 및 권한 설정으로 다뤘어서 굳이 적지 않겠다. 이 글에서는 아래와 같이 사용자 passwd를 생성하고 Viewer 권한을 주었다. 대시보드 권한 설정대시보드는 크게 역할, 사용자, 팀 별로 권한을 부여할 수 있는 것 같다.또한 부여하는 방식은 각 대시보드에 부여하는 방법이 있고, 대시보드가 속한 폴더에 부여하는 방식이 있는 것으로 보인다. 두 방법 중 우선순위는 대시보드에 부여된 권한이다. 방법각각 방법을 적어둔다. 폴더로 관리1. 폴더의 오른쪽 상..

Grafana 2025.12.09

[Python] MetaClass

개요디자인 패턴 관련 공부를 하다가 새로 알게된 메타클래스에 대해서 정리한다. MetaClassPython에서는 클래스도 객체에 해당한다. 때문에 클래스를 만드는 클래스가 존재하는데, 이를 메타클래스라고 한다. 클래스로 객체를 생성하듯, 메타클래스로 클래스를 생성한다. 메타클래스는 드물게 사용되지만, 파이썬을 사용하는 대부분의 개발자는 이미 메타클래스를 알고 있다. 바로 변수의 데이터 형을 알려주는 type()이 메타클래스이기 때문이다.type은 데이터 형을 알려줄 뿐만 아니라 클래스를 만드는 기능도 제공하는데 예시와 함꼐 알아본다. type - 클래스 생성type으로 클래스를 생성할 때는 type 메서드에 클래스 이름, 부모 클래스 튜플, 속성 및 메서드 딕셔너리를 지정한다.아래 코드는 이름이 K..

Python 2025.12.08

[Python] Singleton Pattern 구현 - 1

개요2025.11.27-[디자인 패턴] Singleton pattern 개념과 구현 기법에서 Java 코드를 예시로 Singleton Pattern 구현 기법을 와르르 살펴보았다. 이번 글에서는 Python으로 구현하는 방법에 대해서 적어두려고 한다. 구현 방식아래 내용은 스레드 환경에서 안전하지 않은 간단한 구현 방식이다. 유일한 객체를 생성하도록 하는 Singleton Pattern을 구현하기 위해서는 객체를 생성하는 과정에 참여해야 한다. 또한 객체를 생성한 후 초기화 과정도 두 번 수행하지 않도록 처리해야 한다. - 객체 생성아래 코드는 객체를 _instance 속성에서 관리한다. 객체에 _intance 속성이 없을 때만 객체를 생성해 _instance에 저장하는 방식이다.class Klass..

Python 2025.12.05

[Python] 객체 생성과 초기화

개요Python에서 클래스를 정의하고 사용할 때 __init__이라는 메서드를 많이 사용하는데, 최근 객체를 생성하는 메서드인 __new__가 존재한다는 것을 알게되었다. 비슷한 기능을 수행하는 두 메서드의 역할을 좀더 명확하게 정리해두려고 한다. __new____new__ 메서드는 객체를 생성하는 역할을 한다.객체를 생성할 때는 일반적으로 __init__ 메서드를 사용하는데, 실제로는 object 클래스의 __new__가 자동으로 호출되어 객체를 생성한다. 만약 객체가 생성되는 과정을 제어하고 싶을 때 __new__ 메서드를 오버라이드하면 된다. 문법직접 정의할 때는 클래스 자기 자신 나타내는 cls 변수와 위치 매개변수, 키워드 매개변수를 전달하면 된다. 그리고 반드시 생성되어있는 객체를 반환해야..

Python 2025.12.04

[DataGrip] 테이블 복사

개요데이터베이스 작업을 하다 보면 안전 상 테이블을 백업해 두고 작업하거나 다른 데이터베이스로 넘겨야 할 때가 발생한다. 기존에는 테이블을 CSV 형식 등으로 내려받아 INSERT 하는 등의 방법으로 진행했는데, DataGrip은 테이블 복사 기능을 제공하고 있어서 보다 쉽게 작업을 수행할 수 있다.방법을 적어둔다. 방법1. 복사할 테이블 우클릭 > 가져오기/내보내기 > 다음으로 테이블 복사 선택 2. 대상 스키마 선택이 글에서는 같은 데이터베이스, 같은 스키마 내로 복사하도록 설정했는데 선택할 수 있는 값을 보면 다른 데이터베이스, 다른 스키마로도 복사할 수 있는 것 같다. 3. 테이블 명 지정다른 스키마로 복사하면 테이블명을 유지하는데, 그렇지 않으면 자동으로 {테이블명}_2로 변경되도록 하는 것 ..

Database 2025.12.03

[디자인 패턴] Singleton pattern 개념과 구현 기법

개요최근 Python으로 싱글톤 패턴을 구현한 것을 보게 되었는데, 그간 객체지향과 거리가 있는 개발을 해왔어서 개념을 정리해두려고 한다. Singleton pattern개발자는 클래스로부터 객체를 생성할 수 있다. 보통 클래스와 객체의 관계를 설명할 때 붕어빵 틀과 붕어빵으로 비유하곤 하는데, 하나의 붕어빵 틀로 여러 개의 붕어빵을 찍어낼 수 있듯 객체도 여러 개 생성이 가능하다. 이때 붕어빵이 똑같지 않듯, 객체도 서로 다른 객체이다.여기서 Singleton pattern은 클래스로 객체 생성을 여러 번 시도해도 하나의 객체만을 생성하고 유지하는 디자인 패턴이다. 전역으로 변수를 선언해서 사용하는 개념을 클래스에 적용한 것과 같다.싱글톤 패턴은 메모리 절약을 꾀할 때 사용하기 때문에, 보통 리소스..

기타 2025.12.02

[GitLab] gitlab-runner 내에서 push 하기

개요GitLab을 사용하고 있는데, 레포지터리 내 특정 파일에 변경 사항이 발생하면 pipeline job 내에서 다른 파일을 변경하여 레포지터리에 push 하려는 요구사항이 있다.때문에 이번 글에서는 gitlab 레포지터리에 push를 수행하는 gitlab 파이프라인을 구성해보려고 한다. 테스트 환경은 gitlab.com으로, 별도 러너 구성 없이 gitlab 제공 러너를 사용할 것이다. + 참고로 이번 파이프라인은 구성을 잘못하면 파이프라인이 동작할 때마다 파이프라인을 트리거하는 문제가 발생할 수 있다. 이 부분을 주의하여 구성할 필요가 있다. 인증 구성gitlab 레포지터리에 작업을 수행하기 위해서는 인증이 필요하다.인증 방식에는 여러 선택지가 존재하지만, 이번 글에서는 SSH 인증을 사용하여 ..

Git | GitLab 2025.12.01

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

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

Kubernetes 2025.11.28