Back
ESSAY
DEC 17, 2025

EP164: JWT 쉽게 설명하기

원문: EP164: JWT Simply Explained


이번 주 시스템 설계 리프레셔:

  • JWT 쉽게 설명하기
  • API 설계의 5가지 핵심 원칙
  • 컴퓨터 메모리는 어떻게 작동하는가?
  • 반드시 알아야 할 Kubernetes Scaling 전략

JWT 쉽게 설명하기

JWT 또는 JSON Web Tokens는 두 당사자 간에 정보를 안전하게 전송하기 위한 개방형 표준입니다. authentication과 authorization에 널리 사용됩니다.

JWT

JWT는 세 가지 주요 구성 요소로 이루어져 있습니다:

  1. Header 모든 JWT에는 JWT 서명에 사용될 알고리즘을 지정하는 header가 포함됩니다. JSON 형식으로 작성됩니다.

  2. Payload payload는 claims와 사용자 데이터로 구성됩니다. registered, public, private claims 등 다양한 유형의 claims가 있습니다.

  3. Signature signature는 JWT를 안전하게 만드는 핵심 요소입니다. 인코딩된 header, 인코딩된 payload, secret key, 그리고 알고리즘을 가져와서 서명함으로써 생성됩니다.

JWT는 두 가지 방식으로 서명할 수 있습니다:

  1. Symmetric Signatures 토큰 서명과 검증 모두에 단일 secret key를 사용합니다. JWT에 서명하는 서버와 이를 검증하는 시스템 간에 동일한 키가 공유되어야 합니다.

  2. Asymmetric Signatures 이 경우 private key를 사용하여 토큰에 서명하고, public key를 사용하여 검증합니다. private key는 서버에서 안전하게 보관되며, public key는 토큰을 검증해야 하는 누구에게나 배포될 수 있습니다.

Over to you: 인증에 JWT를 사용하고 계신가요?


API 설계의 5가지 핵심 원칙

API Design

API는 현대 시스템의 근간입니다. 하지만 올바른 방식으로 설계하는 것도 중요합니다.

API를 설계할 때 개발자가 고려해야 할 몇 가지 사항은 다음과 같습니다:

  1. Interface API 설계는 API의 입력과 출력을 정의하는 것과 관련됩니다. 예를 들어, CRUD 연산이 사용자나 클라이언트에게 어떻게 노출될지 정의하는 것입니다.

  2. API Paradigms API는 각기 고유한 프로토콜과 표준을 가진 다양한 패러다임에 따라 구축될 수 있습니다. REST, GraphQL, gRPC가 대표적인 선택지입니다.

  3. Relationships in API API는 종종 다양한 엔티티 간의 관계를 설정해야 합니다. 예를 들어, 사용자 계정에 여러 주문이 연결될 수 있습니다. 더 나은 클라이언트 경험을 위해 API 엔드포인트는 이러한 관계를 반영해야 합니다.

  4. Versioning API 엔드포인트를 수정할 때, 적절한 버전 관리와 하위 호환성 지원이 중요합니다.

  5. Rate Limiting Rate limiting은 특정 시간 내에 사용자가 API에 보낼 수 있는 요청 수를 제어하는 데 사용됩니다. 이는 API의 안정성과 가용성을 유지하는 데 필수적입니다.

Over to you: API 설계 원칙 중 어떤 것을 목록에 추가하시겠습니까?


컴퓨터 메모리는 어떻게 작동하는가?

Computer Memory

다음은 데이터가 입력에서 처리, 저장까지 시스템을 통해 어떻게 이동하는지 보여주는 간단한 분석입니다.

  1. 데이터는 키보드, 마우스, 카메라 또는 원격 시스템과 같은 입력 소스를 통해 들어옵니다.

  2. 영구 저장소는 시스템 파일, 앱, 미디어를 보관합니다. 하드 드라이브, USB 드라이브, ROM/BIOS, 네트워크 기반 스토리지가 이에 포함됩니다.

  3. RAM은 컴퓨터의 작업 공간입니다. 물리적 메모리와 가상 메모리를 포함하며, 사용 중인 데이터와 프로그램을 임시로 저장합니다.

  4. Cache 메모리는 CPU에 더 가깝게 위치하며 Level 1과 Level 2로 나뉩니다. 자주 사용하는 데이터에 대한 접근 속도를 높이는 데 도움이 됩니다.

  5. CPU register는 가장 빠르고 가장 작은 메모리 단위입니다. 프로세서가 명령을 거의 즉시 실행할 때 직접 사용됩니다.

메모리 피라미드의 위로 올라갈수록 저장소는 더 빠르고 작아집니다.

Over to you: 컴퓨터 메모리 작동 방식의 이해를 높이기 위해 무엇을 추가하시겠습니까?


반드시 알아야 할 Kubernetes Scaling 전략

Kubernetes Scaling

  1. Horizontal Pod Autoscaling (HPA) Horizontal Pod Autoscaler는 관측된 CPU 사용률, 메모리 사용량 또는 커스텀 메트릭을 기반으로 Deployment, ReplicaSet 또는 StatefulSet의 Pod 수를 자동으로 조정합니다.

  2. Vertical Pod Autoscaling (VPA) 애플리케이션 요구 사항에 따라 VPA는 CPU, 메모리 등 개별 pod에 할당된 리소스를 조정합니다. 이 접근 방식은 워크로드 메트릭을 기반으로 pod 리소스 설정을 동적으로 변경합니다.

  3. Cluster Auto Scaling Cluster Autoscaler는 Kubernetes 클러스터의 노드 수를 자동으로 조정합니다. 클라우드 provider와 상호 작용하여 요구 사항에 따라 노드를 추가하거나 제거합니다. 이는 균형 잡힌 클러스터를 유지하는 데 중요합니다.

  4. Predictive Auto Scaling Predictive Autoscaling은 machine learning을 사용하여 향후 리소스 요구 사항을 예측합니다. 워크로드 수요를 예측하여 Kubernetes가 리소스를 조정하는 데 도움을 줍니다.

Over to you: 목록에 어떤 다른 Kubernetes Scaling 전략을 추가하시겠습니까?

Thank you for reading.

Based in Seoul
Since 2024