728x90

2025/03 42

[Nuxt 3] Vuetify 3 SSR 오류 해결하기

“[Vuetify] Could not find defaults instance”오류 원인: SSR 환경에서 Vuetify 기본 설정이 초기화되지 않음해결책: 별도의 Vuetify 플러그인을 만들어 Nuxt 애플리케이션에 등록등록 방법: plugins/vuetify.ts 파일을 만들고, nuxt.config.ts에 플러그인을 추가 해결 방법1. Vuetify 플러그인 파일 만들기먼저, Nuxt 3에서 Vuetify를 서버와 클라이언트 모두에서 사용할 수 있도록 플러그인을 만듭니다.// plugins/vuetify.tsimport { createVuetify } from 'vuetify'import * as components from 'vuetify/components'import * as directiv..

Javascript/NuxtJS 2025.03.08

[K8S] Traefik을 이용한 경로 기반 라우팅 (Path-Based Routing)

개요Traefik은 Kubernetes에서 동적인 경로 기반 라우팅을 수행하는 경량의 Ingress Controller 및 Reverse Proxy입니다.Ingress Controller 없이도 IngressRoute와 Middleware를 조합하여 강력한 트래픽 관리가 가능합니다.Kubernetes에서 API Gateway 없이도 서비스별 라우팅을 간단하게 설정할 수 있는 점이 큰 장점입니다.1. Traefik 설치Traefik을 Kubernetes 클러스터에 설치하려면 Helm을 사용하는 것이 가장 간편합니다.Helm을 이용한 Traefik 설치helm repo add traefik https://traefik.github.io/chartshelm repo updatehelm install traef..

DevOps/K8S 2025.03.06

폐쇄망에서 브라우저가 SSL 인증서를 신뢰하는 방법

일반적으로 인터넷에서 웹사이트를 방문하면 브라우저는 해당 사이트의 SSL 인증서를 확인하고 신뢰할 수 있는지 판단합니다. 하지만 폐쇄망(Closed Network) 환경에서는 글로벌 인증 기관이 아닌 내부 인증 기관(Private CA)에서 발급한 인증서를 사용해야 합니다. 이때 브라우저가 내부 인증서를 신뢰하도록 설정하는 방법을 알아보겠습니다.1. 브라우저가 SSL 인증서를 신뢰하는 방식브라우저가 SSL 인증서를 신뢰하는 과정은 다음과 같습니다.인증서 체인 검증 (Certificate Chain Validation)SSL 인증서는 다음과 같은 체인 구조를 가집니다.루트 인증서 (Root CA) └── 중간 인증서 (Intermediate CA) └── 서버 인증서 (Server Certi..

CS/네트워크 2025.03.05

[Container]Podman 및 CRI-O의 오래된 컨테이너 자동 삭제 정책

컨테이너 기술의 발전으로 인해, 많은 기업과 개발자들이 Podman과 CRI-O를 사용하여 컨테이너를 관리하고 있습니다. 이 두 도구는 Docker와 유사한 기능을 제공하지만, 각기 다른 방식으로 컨테이너를 처리하고 관리합니다. 하지만 장기간 운영하면서 오래된 컨테이너들이 쌓이면 시스템 리소스가 낭비될 수 있습니다. 이를 방지하기 위해 오래된 컨테이너를 자동으로 삭제하는 정책을 설정하는 것이 중요합니다.1. Podman의 오래된 컨테이너 자동 삭제Podman은 Docker와 유사한 CLI(Command Line Interface)를 제공하며, rootless 방식으로 컨테이너를 실행할 수 있다는 장점이 있습니다. Podman은 컨테이너를 관리하는 데 있어 다양한 방법을 제공하며, 오래된 컨테이너를 자동으..

DevOps/Container 2025.03.05

[Keycloak] Custom API

Keycloak를 도입하여 인증·인가를 간편하게 구성할 수 있지만, “Admin REST API”로는 사용자와 그룹 정보를 한꺼번에 조회하기가 쉽지 않습니다.이를 위해 RealmResourceProvider라는 확장(SPI)을 구현해 N+1 문제를 개선하고, 하나의 엔드포인트에서 사용자와 그들의 그룹 목록을 동시에 가져오는 방법을 소개합니다.문제: 기본 Admin API의 N+1 호출Keycloak에는GET /admin/realms/{realm}/users : 사용자 목록 (그룹 정보 X)GET /admin/realms/{realm}/users/{userId}/groups : 해당 사용자의 그룹 목록 엔드포인트만 제공됩니다.수많은 사용자에 대해 그룹 정보를 확인하려면,사용자 목록 API 호출 → 사용자 ..

Keycloak 2025.03.04

[GraphQL] 기본 문법

GraphQL은 클라이언트가 서버에 요청을 보낼 때 Operation(작업) 과 Selection Set(선택 집합) 을 포함하여 데이터를 주고받습니다.서버는 Object Type, Input Type, Scalar Type, Enum Type 등의 다양한 데이터 타입을 활용하여 API를 정의합니다.1. 클라이언트 → 서버 요청GraphQL 요청에는 Operation(작업) 과 Selection Set(선택 집합) 이 포함됩니다.🔹 Operation (작업 유형)GraphQL에서 클라이언트가 수행할 수 있는 작업(Operation)에는 Query, Mutation, Subscription이 있습니다.1) Query (조회 작업)데이터를 조회하는 작업HTTP GET 또는 POST 요청을 통해 실행됨que..

GraphQL 2025.03.03

[GraphQL] GraphQL Voyager

GraphQL Voyager는 GraphQL 스키마를 시각적으로 탐색할 수 있는 도구입니다.GraphQL API의 타입, 필드, 관계를 자동으로 분석하여 인터랙티브 다이어그램 형태로 보여줍니다.GraphQL Voyager의 주요 특징1. GraphQL 스키마를 자동으로 다이어그램화서버에서 제공하는 GraphQL 스키마를 분석하여 시각적으로 표현Entity 간의 관계(연관성, 종속성)를 직관적으로 확인 가능API 구조를 한눈에 파악 가능2. 실시간 탐색 (Interactive UI)다이어그램에서 엔티티를 클릭하면 세부 정보 표시특정 엔티티를 검색하여 빠르게 찾을 수 있음다이어그램을 드래그 & 줌(Zoom In/Out) 기능 지원3. API 문서화 및 이해도 향상복잡한 GraphQL API 구조를 한눈에 이..

GraphQL 2025.03.03

[GraphQL] Altair

Altair는 GraphQL API를 테스트하고 탐색할 수 있는 GraphQL 클라이언트(GraphQL Playground) 입니다.GraphiQL과 비슷한 도구이며, GraphQL API 개발자 및 클라이언트 개발자가 요청을 쉽게 보내고 응답을 시각화할 수 있도록 도와줍니다.Altair의 주요 특징1. 직관적인 UI 및 사용성GraphQL 쿼리를 작성하고 실행할 수 있는 깔끔한 UI 제공쿼리 히스토리 저장 기능 제공 (이전 요청 쉽게 확인 가능)멀티탭 기능 지원 (여러 개의 API를 동시에 테스트 가능)2. 다양한 인증 방식 지원API 테스트 시 헤더(Header) 및 인증(Authentication) 설정 가능JWT, Basic Auth, OAuth 등 다양한 인증 방식 지원GraphQL 서버에 인증..

GraphQL 2025.03.03
728x90