1. 해당 프로젝트는 다음의 서버들이 운용되고 있습니다.

    1. Ingress Proxy Server
      • GKE 내의 개별적인 인스턴스들로 요청을 분배하고 전달하는 역할을 하는 서버입니다.
    2. Site (Blog) Server
      • GKE 인스턴스들로 이동할 수 있는 대시보드 성격의 프론트 서버입니다.
      • Notion 내 페이지(MD)들을 제공하는 백엔드, 프론트 서버입니다.
    3. Chat Server
      • 익명의 사용자가 관리자인 저와 소통할 수 있는 채팅 서버입니다.

    ⇒ GKE, Kubenetes, Docker


  1. Ingress Proxy Server

    1. GKE 인스턴스들 중 퍼블릭 IP 를 통해 접근할 수 있는 인스턴스입니다.
    2. 해당 서버는 Go 언어로 작성되었습니다.
    3. net/http 패키지를 사용하였습니다.
    4. Godaddy 에서 도메인을 구매하였습니다.
    5. Cloudflare 를 DNS 관리 및 CDN 서비스로 이용하고 있습니다.
    6. Certbot, Cron 을 이용해 SSL/TLS 인증서를 발급 및 관리하고 있습니다.

    ⇒ Go, Godaddy, Cloudflare, Certbot, Cron


  1. Site (Blog) Server

    1. 해당 서버는 Typescript 언어로 작성되었습니다.
    2. express 패키지를 사용하였습니다.
    3. MD ↔ HTML 간 변환을 위해 패키지를 만들어 사용하였습니다.
    4. 프론트 코드는 다음을 활용하여 개발하였습니다.
      1. SolidJS
      2. Webpack
      3. Babel
      4. Tailwind
      5. (Solid)Bootstrap

    ⇒ Typescript, Express, SolidJS, Webpack, Babel, Tailwind, Bootstrap


  1. Chat (gRPC) Server

    1. 해당 서버는 Go 언어로 작성되었습니다.
    2. gRPC 를 이용해 서버 애플리케이션을 만들었습니다.
    3. 웹 브라우저의 특성상 unary 가 아닌 streaming 통신에는 제약이 있기 때문에, 장기적인 측면에서 Envoy 프록시를 이용한 gRPC, 웹 브라우저 간 통신을 구현하였습니다.
    4. 텔레그램 API 를 활용하여 gRPC 서버로 들어온 데이터를 제 텔레그램 메세지로 전송하고 있습니다.

    ⇒ Go, gRPC, Envoy, Telegram