기록하고 기억하고 활용하자.
Programming Languages
AI and Machine Learning
Istio
Istio Istio 는 클라우드 네이티브 (Cloud Native) 및 마이크로서비스 아키텍처에서 네트워크 트래픽을 관리, 보안 적용, 서비스 간 정책 제어와 관측을 제공하는 서비스 메시 (Service Mesh) 구현체다. Envoy(엔보이) 프록시 (Proxy) 기반의 데이터 플레인 (Data Plane) 과 제어 플레인 (Control Plane) 구조로 이루어지며, 복잡한 트래픽 제어, 세분화된 정책 적용, 서비스간 TLS 통신, 분산 트레이싱 등 필수 기능을 API 기반으로 제공한다. 이를 통해 개발자는 애플리케이션 수정 없이 서비스 통신을 안전하게 관장하고 신뢰성 있는 운영을 실현할 수 있다. ...
FCM
FCM FCM(Firebase Cloud Messaging)은 Google에서 제공하는 크로스 플랫폼 메시징 솔루션으로, 안정적이고 효율적으로 메시지를 전송할 수 있는 서비스이다. 모바일 앱 및 웹 애플리케이션에 **푸시 알림(push notification)**을 쉽고 안정적으로 전송할 수 있다. FCM의 기본 개념 FCM은 Google Cloud Messaging(GCM)의 후속 서비스로, 다양한 플랫폼(Android, iOS, 웹)에서 푸시 알림을 보낼 수 있는 통합 솔루션이다. FCM의 주요 특징은 다음과 같다: 멀티 플랫폼 지원 Android, iOS, 그리고 웹까지 지원하여 크로스플랫폼으로 동작한다. 무료 사용 별도의 비용 없이 대량의 메시지를 무제한으로 전송할 수 있다. 토픽/그룹 메시징 특정 사용자 집합(예: 관심사를 가진 그룹, 특정 주제 토픽)에 메시지 발송이 가능하다. 고급 메시지 옵션 데이터 메시지(앱이 직접 메시지 데이터를 처리)와 알림 메시지(FCM이 자동으로 기기 알림창에 표시) 타입을 구분해서 활용할 수 있다. 강력한 통계 및 관리 전송 현황 및 전송 실패, 수신 확인 등 다양한 통계와 관리 기능을 제공한다. 조건부 전송 여러 속성(국가, 디바이스 유형 등)에 따라 복잡한 조건 기반 전송이 가능하다. 독자 등 대상 지정 가능 FCM의 동작 원리 서버와 클라이언트 구조 클라이언트 앱: 사용자의 스마트폰 또는 웹 브라우저. FCM으로부터 메시지를 수신한다. FCM 백엔드: Google의 클라우드 서버에서 메시지 중계/전달. 앱 서버(옵션): 개발자가 직접 운영하는 서버로, FCM 서버에 메시지 전송을 요청. 메시지 전송 흐름 사용자의 디바이스에서 FCM SDK를 통해 FCM 서버에 **등록 토큰(Registration Token)**을 요청 및 발급. 앱 서버 또는 Firebase Console을 통해 메시지를 전송 요청. FCM 서버가 등록 토큰(또는 토픽/그룹)에 해당하는 디바이스로 메시지를 중계. 최종적으로 디바이스에 메시지가 도착, 알림이 표시되거나 앱에서 직접 데이터 처리. FCM 메시지 유형 FCM에서는 두 가지 주요 메시지 유형을 제공한다: ...
Mockoon
Mockoon Mockoon은 개발자가 빠르고 쉽게 API를 모킹(가짜로 구현)할 수 있는 오픈 소스 데스크톱 애플리케이션이다. 이 도구는 2017년에 처음 출시되었으며, API 개발 및 테스트 과정을 간소화하기 위해 설계되었다. Mockoon의 주요 특징: 그래픽 사용자 인터페이스(GUI)로 코드 작성 없이 API 모킹 가능 윈도우, 맥, 리눅스 지원 크로스 플랫폼 애플리케이션 무료 오픈 소스 도구 CLI(Command Line Interface) 버전 제공 Docker 이미지 지원 Mockoon이 해결하는 개발 문제 백엔드 개발자로서 다음과 같은 상황에서 Mockoon이 매우 유용하다: ...
WireMock
WireMock WireMock은 HTTP 기반 API를 위한 시뮬레이션 도구로, Java 환경에서 개발되었으나 다양한 플랫폼에서 활용 가능하다. 톰 애컬턴(Tom Akehurst)이 개발한 이 오픈소스 도구는 실제 서비스와 동일하게 동작하는 모의(Mock) API를 쉽게 구축할 수 있게 해준다. WireMock의 주요 특징 독립 실행형 서버: 자체 HTTP 서버로 실행 가능 JUnit과의 통합: Java 테스트 코드에 내장하여 사용 가능 정확한 HTTP 응답 모방: 상태 코드, 헤더, 본문 등 완벽 모방 요청 매칭: URL, 헤더, 쿼리 파라미터, 본문 등 다양한 요소 기반 매칭 응답 템플릿팅: 동적 응답 생성 가능 상태 기반 행동: 이전 요청에 따라 다른 응답 반환 가능 요청 검증: 특정 요청이 발생했는지 확인 가능 장애 시뮬레이션: 지연, 오류, 손상된 응답 등 시뮬레이션 프록시 모드: 실제 서비스와 모킹 결합 가능 레코딩 기능: 실제 서비스의 응답을 기록하여 모킹에 활용 WireMock의 작동 원리 WireMock은 실제로 두 가지 주요 모드로 작동한다: ...
Apache APISIX
Apache APISIX Apache APISIX는 고성능 클라우드 네이티브 API 게이트웨이로, 2019년 CNCF(Cloud Native Computing Foundation) 샌드박스 프로젝트로 시작되어 2022년 10월에는 CNCF 인큐베이팅 프로젝트로 승격되었다. 이 API 게이트웨이는 클라우드 네이티브 환경에서 API 트래픽을 관리하기 위한 동적이고 확장 가능한 솔루션을 제공한다. 핵심 특징 1. 아키텍처 기반 APISIX는 OpenResty(Nginx + Lua)를 기반으로 구축되었으며, etcd를 중앙 구성 저장소로 사용한다. 이 조합은 다음과 같은 이점을 제공한다: 고성능: Nginx의 비동기 이벤트 기반 아키텍처 덕분에 초당 수만 개의 요청을 처리할 수 있다. 동적 구성: etcd를 통해 모든 구성이 중앙 집중화되어 있어 런타임에서 API 게이트웨이 동작을 변경할 수 있다. 확장성: 수평적 확장이 용이하여 대규모 배포에 적합하다. 풍부한 플러그인 생태계 APISIX는 100개 이상의 플러그인을 제공하며, 이를 통해 다양한 기능을 구현할 수 있다: ...
KrakenD
KrakenD KrakenD는 고성능 API 게이트웨이로, 2016년에 오픈 소스 프로젝트로 시작되었으며 현재는 KrakenD 회사에서 개발 및 유지보수하고 있다. Go 언어로 작성되었으며, 마이크로서비스 아키텍처에서 백엔드 API들을 통합하고 최적화하기 위해 설계되었다. KrakenD는 “무상태(stateless)” 설계 철학을 가지고 있으며, 이는 서버 간에 공유해야 할 상태가 없다는 것을 의미한다. 이러한 접근 방식은 수평적 확장성과 신뢰성을 향상시키는 데 도움이 된다. KrakenD는 주로 API 통합 및 컴포지션에 중점을 두고 있으며, 이는 다른 API 게이트웨이와 구별되는 주요 특징이다. 제품 라인업은 다음과 같다: ...
Tyk
Tyk Tyk는 강력한 오픈 소스 API 관리 플랫폼으로, 2014년 Martin Buhr에 의해 설립된 Tyk Technologies에서 개발했다. Go 언어로 작성되었으며, API 게이트웨이, 개발자 포털, API 분석 대시보드를 포함한 완전한 API 관리 솔루션을 제공한다. Tyk의 핵심 가치는 다음과 같다: 개방성: 모든 핵심 코드가 오픈 소스 성능: Go 언어 기반의 고성능 아키텍처 유연성: 다양한 배포 옵션과 확장 가능한 플러그인 시스템 독립성: 특정 클라우드 제공업체나 기술 스택에 종속되지 않음 Tyk는 크게 세 가지 버전으로 제공된다: ...