Use Map

Jung·2026년 5월 20일

반복문과 조건문을 이용해서 소스코드를 작성하라는 파이썬 프로그래밍 수업의 과제를 수행하기 위해 로봇의 온도가 높아지면 회로를 끊어버리는 시나리오를 가진 소스코드를 작성하였다(작성 코드는 과제 제출 기한 후 업데이트).

이때 내가 징검다리식으로 확장해온 용어들의 개념과 어떻게 연결되는지 확인하였다.

  1. Lightweight Prototypes
  • 거대 시스템을 처음부터 만들 수는 없다. '만약 온도가 높으면 차단한다'라는 핵심 논리를 단 몇줄짜리 코드로 짜서 시뮬레이션 해보는 것이 경량 프로토타이핑의 시작.
  1. Circuit Braker
  • 대규모 마이크로서비스 아키텍처(MSA)에서 특정 서버(결제서버 등)가 터지면, 계속 요청을 보내서 시스템 전체를 마비시키는 게 아니라 "회로를 열어(OPEN)" 요청을 즉시 튕겨냅니다. 코드에서 is_circuit_open = True 가 되는 순간 아래 input() 연산을 안 하고 continue 로 패스하는 논리가 대형 서버의 붕괴 방지 시스템으로 확장된다.
  1. Backpressure
  • 시스템이 감당할 수 없을 정도로 데이터가 밀려들 때(온도가 오를 때), 시스템이 완전히 뻗기(Circuit Braker) 전에 송신측에 제동을 거는 신호 피드백 메커니즘. 작성된 소스코드의 elif 조건이 바로 그 임계점을 감시하는 센서 역할.
  1. Redis
  • 만약 수많은 로봇이 동시에 돌고 잇는 거대한 분산 공장이라면, "지금 회로가 닫혔는지 열렸는지"라는 상태값을 모든 컴퓨터가 공유할 수 잇는 엄청나게 빠른 공용 메모리 방에 저장해야 한다. 그 상태값을 초고속으로 저장하고 공유하는 저장소가 바로 Redis
  1. Apache Spark
  • 이 소스코드는 하나의 컴퓨터가 로봇 5개의 온도를 순서대로 하나씩 처리한다. 만약 관리해야 하는 로봇이 5개가 아니라 500만 개라면, 컴퓨터 한 대의 for 문으로는 무리다. 이때 Spark를 도입하면 500만 개의 데이터를 수백 대의 컴퓨터에 쪼개어(분산) 동시에 병렬로 온도를 체크하고, 위험한 녀석들을 순식간에 걸러내게 된다. for 문이 거대하게 분산 확장된다.
  1. Loop Tiling
  • for 문이 처리할 데이터가 극도로 커지면, 즉 수백만 개의 온도 데이터를 한꺼번에 처리하여야 할 때, 데이터를 캐시 메모리 크기에 맞게 조각(Tile)으로 쪼개서 for문으로 돌리는 하드웨어 최적화 기법이 바로 Loop tiling.

내가 짠 소스코드와 그 시나리오가, 지금껏 공부해왔지만 뜬구름처럼 느껴진 용어들과 연결되었다. 이런 방법으로 공부하다보면 좀더 넓은 시야로 기초를 쌓을 수 있을듯 하다.

0개의 댓글