September 08, 2025
1. 개요 회사 내부 서비스에서는 NCP(Naver Cloud Platform) 인증 서버를 사용해 왔지만, 다른 해외 사이트에서는 NCP 인증 서버를 사용할 수 없는 환경에 적용을 해야 해서 인증 로직을 구현하거나, 별도의 솔루션을 도입해야 하는 상황이 생겼었다. 이 과정에서 여러 IAM 솔루션중에 오픈소스 기반으로 널리 사용되고 있는 Keycloak …
May 05, 2025
1. 개요 개발한 애플리케이션을 배포하거나 테스트 환경에서 활용하기 위해 이미지를 직접 관리하고자 할 때, 개인용 를 운영하는 것이 유용하다. 특히, 외부 레지스트리에 의존하지 않고 로컬 네트워크나 개발용으로 자체적인 이미지 저장소를 갖추면 배포 속도와 보안 측면에서도 장점이 있다. 이번 글에서는 맥북 로컬 환경에서 서버를 구축하고, 개발한 앱 이미지…
April 05, 2025
1. 개요 Kind란? (Kubernetes in Docker)는 Docker 컨테이너 내에서 클러스터를 실행할 수 있도록 도와주는 도구이다. 로컬 환경에서 빠르게 클러스터를 실행하고 테스트하는 데 유용하다. Kind의 아키텍처 구조 는 노드를 컨테이너로 실행하는 방식으로 동작한다. 다음은 의 기본 아키텍처 구조이다. 각 노드는 Docker 컨테…
April 05, 2025
1. 개요 Rate limiting은 API 호출이나 서버 요청을 특정 시간 단위 내에서 제한하는 기법이다. 이는 서버 과부하를 방지하고, 과도한 요청으로 인한 장애를 예방하기 위해 사용된다. 예를 들어, 특정 API에서는 "1초당 20건"과 같은 방식으로 호출 횟수를 제한하기도 한다. 이러한 상황에서 Python으로 개발할 때, 효율적으로 rate li…
April 03, 2025
1. 개요 KubeVPN 란? 은 클러스터와 로컬 환경 간의 원활한 네트워크 연결을 제공하는 도구이다. 기존의 port forwarding 방식과는 다음과 같은 차이점이 있다. 방식 설명 Port Forwarding 특정 포트를 로컬로 전달하여 단일 서비스에 접근 가능하지만, 여러 포트나 복잡한 네트워크 설정이 필요할 경우 불편함 KubeVPN 전체 네…
April 03, 2025
1. 개요 Git 서브모듈이란? 서브모듈(Git Submodule)은 하나의 저장소 내에 다른 저장소를 포함할 수 있도록 해주는 기능이다. 이를 통해 별도의 저장소를 독립적으로 관리하면서도, 특정 프로젝트 내에서 재사용할 수 있다. 왜, 언제 사용하나? 코드 재사용: 여러 프로젝트에서 동일한 라이브러리나 공통 코드베이스를 유지해야 할 때 유용하다 독…
April 02, 2025
개요 을 사용하여 코드 버전 관리를 하다 보면, 작업을 위해 새로운 브랜치를 생성하고 작업한 후 한 뒤에도 로컬에 사용되지 않는 브랜치들이 계속 남아 있게 된다. 원격(Remote) 브랜치의 경우, GitHub의 설정에서 옵션을 활성화하면 자동으로 삭제할 수 있다 하지만 로컬(Local) 브랜치는 자동으로 삭제되지 않으며, 매번 수동으로 해야 한다.…
March 29, 2025
1. 개요 Minikube란? 는 로컬 환경에서 가볍게 클러스터를 실행할 수 있는 도구이다. 를 실습하거나 개발 환경에서 테스트할 때 유용하다. Mac, Linux, Windows에서 실행할 수 있으며, 가상화 기술을 이용해 클러스터를 구성한다. Kubernetes 클러스터 실행 방식 비교 클러스터를 실행하는 방법은 여러 가지가 있으며, 각각 장단점…
March 26, 2025
1. 개요 pipx를 사용해야 하는 이유 Python 패키지를 설치할 때 일반적으로 를 사용하지만, 일부 CLI(Application) 패키지는 전역적으로 설치하면서도 격리된 환경에서 실행하는 것이 더 적합할 수 있다. 이를 위해 를 사용하면 다음과 같은 장점이 있다. pip와의 차이점 특징 기본 설치 위치 가상환경 없음, 시스템 전역 또는 프로젝트 …