📄 Dev Notes

CNAP를 개발하면서 경험한 오픈소스 기술을 공유하는 블로그입니다.


  • Kubernetes 환경에서 Flyway 사용하기

    lemon • 2025-08-06 • DB

    Flyway는 데이터베이스 마이그레이션을 자동화하고 관리하기 위한 도구로, SQL 기반 마이그레이션 스크립트를 버전 관리할 수 있으며 애플리케이션 배포 파이프라인과 자연스럽게 통합됩니다. 애플리케이션에 Flyway를 포함하여 Kubernetes에 배포할 경우, 여러 Pod가 동시에 실행되면 DB 테이블 락(table lock) 문제로 인해 마이그레이션 충돌이 발생할 수 있습니다. 이를 방지하기 위해 분산 락(distributed lock)을 사용하여 먼저 시작된 Pod가 다른 Pod의 마이그레이션 완료를 기다리도록 구현할 수 있습니다.

    또 다른 접근 방법으로, Flyway 마이그레이션을 애플리케이션에서 완전히 분리하고, Kubernetes 환경에서 Job 리소스로 관리하는 방법이 있습니다. 이 방식은 마이그레이션을 배포와 별도로 한 번만 실행되도록 보장하여, 여러 개의 애플케이션 Pod가 동시에 기동될 때 발생하는 충돌 문제를 근본적으로 해결합니다. 이렇게 Job으로 분리하여 DB 마이그레이션을 실행하면 네트문제로 잠시 실패를 해도 재시도가 가능하며, 애플리케이션과 완전히 분리함으로써 문제 발생 시 대처가 더 용이해집니다.

    Read More 🖉 Flyway, kustomize
  • Kong Gateway 설치 및 API 인증 설정 가이드

    lemon • 2025-08-04 • API Gateway, Security

    Kong Gateway는 마이크로서비스 아키텍처에서 API 트래픽을 관리하고 보호하기 위한 오픈소스 API Gateway입니다.
    로드 밸런싱, 인증, 라우팅, 속도 제한, 로깅, 플러그인 기반 확장성 등을 제공하며, 클라우드 네이티브 환경에 적합한 유연하고 확장 가능한 구조를 갖추고 있습니다.

    이번 글에서는 Kubernetes 환경에서 GitOps 방식으로 Kong Gateway를 배포하고, 서비스 등록과 라우팅 구성, 그리고 OIDC 플러그인을 활용한 API 접근 제어까지 단계별로 살펴보겠습니다.

    Read More 🖉 Kong, API Gateway, Authentication, Security, API
  • Spring Security와 Keycloak 연동 가이드

    lemon • 2025-08-01 • Backend, Security, Authentication

    Spring 애플리케이션에 인증 및 권한 관리를 도입할 때 가장 흔히 고려되는 방식 중 하나가 OAuth2 기반 보안 체계입니다. 특히 마이크로서비스 환경에서는 개별 API에 대해 세분화된 접근 제어가 필요하기 때문에, 외부 인증 서버와의 안정적인 연동이 필수적입니다. Keycloak은 OAuth2와 OpenID Connect를 지원하는 오픈소스 인증 서버로, SSO(Single Sign-On), 사용자 관리, 역할 기반 접근 제어(RBAC) 등 보안 기능을 통합적으로 제공합니다. Spring Security와 연동하면 Keycloak의 인증 기능을 활용하면서도, 각 API에 대해 유연한 권한 제어 정책을 구현할 수 있습니다.

    Read More 🖉 Spring Boot, Keycloak, OAuth2, Microservices, Security
  • Keycloak 설치 및 인증 설정 가이드

    lemon • 2025-07-23 • Security, Authentication

    Keycloak은 인증 및 권한 부여 플랫폼으로, SSO(Single Sign-On), LDAP, OAuth2, OpenID Connect 등을 지원하는 오픈소스 소프트웨어입니다. Kubernetes, Spring Boot와 같은 다양한 서비스와 애플리케이션에서 사용자 로그인, 토큰 발급, 권한 관리 등을 위해 광범위하게 사용되고 있습니다.

    이 글은 Keycloak을 Kubernetes 환경에 설치하고, 사용자 인증과 권한 관리를 포함한 기본 인증 시스템을 구성하는 과정을 다룹니다. 특히 Keycloak 배포, 클라이언트 구성, 사용자와 그룹 매핑, 그리고 토큰 발급까지 이어지는 전체 인증 흐름을 단계적으로 경험하는 것이 핵심 목적입니다.

    Read More 🖉 Keycloak, OIDC, OAuth2, Identity Management
  • Helm과 Kustomize를 활용한 GitOps 배포 전략

    lemon • 2025-07-22 • GitOps, Kubernetes

    Kubernetes 환경에서 배포 자동화를 고민해본 엔지니어라면 GitOps라는 용어에 익숙할 것입니다. Git을 중심으로 한 선언적 구성과 자동화를 핵심으로 하는 이 방식은, 일관된 인프라 운영을 가능하게 합니다. 하지만 실제로 GitOps를 적용하려고 하면, 적절한 도구를 선택하거나 배포 구조를 설계하는 데 어려움을 겪는 경우가 많습니다.

    GitOps 환경의 기본적인 개념과 원리에 대한 이해가 있다는 전제를 바탕으로, 선언적 리소스 구성과 배포·테스트를 위해 Helm과 Kustomize를 사용하는 방법을 다음과 같은 순서로 자세히 살펴보겠습니다.

    Read More 🖉 Helm, Kustomize, GitOps, CI/CD, Kubernetes
💬 무료 컨설팅 신청