📄 Dev Notes

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


  • OAuth2 Proxy 설치 및 API 인증 구성 가이드

    lemon • 2025-08-07 • Authentication, Security, Kubernetes

    OAuth2 Proxy는 Keycloak, Google, GitHub 등 외부 OAuth2 또는 OpenID Connect 제공자를 통해 사용자 인증을 수행하고, 인증된 사용자만 웹 애플리케이션이나 API에 접근할 수 있도록 보호해주는 인증 프록시입니다.

    주로 NGINX, Istio, Envoy, Kong과 같은 리버스 프록시나 Ingress Controller와 함께 사용되며, 애플리케이션이 별도의 인증 로직을 구현하지 않아도 외부에서 손쉽게 인증 기능을 구성할 수 있게 해줍니다.

    Read More 🖉 oauth2-proxy, keycloak, kubernetes, security, API Gateway
  • 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
💬 무료 컨설팅 신청