반응형

전체 글 145

Temporal이란 무엇인가 — 지속 실행 워크플로우 엔진의 구조

목차워크플로우 엔진을 따로 두는 이유Temporal이 보장하는 지속 실행서버 구성 요소와 실행 흐름코드로 보는 최소 구성도입 판단 기준맺음말워크플로우 엔진을 따로 두는 이유결제 승인 → 재고 차감 → 배송 요청 → 알림 발송처럼 여러 서비스를 순서대로 부르는 로직은 어느 서비스에나 있습니다. 문제는 이 순서가 한 번에 끝나지 않는다는 것입니다. 세 번째 호출에서 상대 서비스가 502를 뱉으면, 앞의 두 단계는 이미 벌어진 일이고 네 번째 단계는 아직 시작도 못 했습니다.Temporal은 이 "중간에 멈춘 상태"를 코드가 아니라 플랫폼이 기억하게 만드는 도구입니다. Uber에서 만든 Cadence를 이어받아 만들어진 오픈소스 프로젝트이며, 스스로를 워크플로우 엔진이 아니라 지속 실행(Durable Exec..

Grafana란 무엇인가 — 등장 배경과 Prometheus 대시보드 구성 방법

목차개요Grafana는 어떤 문제를 풀려고 등장했나구성 요소와 대시보드 모델Prometheus에 붙이는 기본 활용법맺음말개요한 줄 정의와 이 글의 범위Grafana(그라파나)는 여러 곳에 흩어진 데이터 소스에 질의를 대신 던지고, 돌아온 결과를 한 화면에 그래프·수치·표로 그려 주는 오픈소스 시각화 도구입니다. 2014년 Torkel Ödegaard가 시작했고, 지금은 Prometheus를 비롯한 시계열 데이터베이스의 화면을 맡는 사실상 기본 선택지로 쓰이고 있습니다.이 글에서 다루는 것다루지 않는 것왜 등장했는지, 데이터 소스의 내장 화면과 무엇이 다른지Loki·Tempo를 포함한 Grafana 자체 스택 구축구성 요소와 대시보드 모델(패널·변수·시간 범위)알림 라우팅·묵음 처리 심화 설정Prometh..

Rust란? Rust 뜻부터 특징·장단점·사용 분야까지 정리

목차개요Rust란 무엇인가 — 뜻과 등장 배경Rust의 핵심 특징: 소유권이 만드는 메모리 안전성Rust 장단점 — 얻는 것과 치르는 비용Rust 사용 분야와 도입 판단 기준맺음말개요Rust를 둘러싼 말과 실제Rust는 리눅스·윈도우 커널에 코드가 들어갔고, Cloudflare와 Discord가 핵심 서비스를 이 언어로 다시 썼습니다. 그런데 "그래서 우리 팀이 써야 하나"라는 질문 앞에서는 답이 잘 나오지 않습니다. 소개 글 대부분이 "빠르고 안전하다"에서 멈추기 때문입니다.빠르고 안전하다는 말은 어느 언어나 합니다. 판단에 필요한 것은 무엇을 대가로 그 두 가지를 얻는가입니다. Rust가 요구하는 비용은 학습 기간과 컴파일 시간이고, 이 비용이 정당화되는 영역은 생각보다 좁습니다.자주 듣는 말실제로는..

Anti-Corruption Layer 패턴으로 레거시 시스템 격리하기

목차개요Anti-Corruption Layer의 핵심 개념과 구조Java로 구현하는 ACL — 변환 계층 설계대안 패턴과의 비교 및 트레이드오프운영 환경 적용 시 고려사항맺음말개요Anti-Corruption Layer(ACL, 부패 방지 계층)는 Eric Evans의 『Domain-Driven Design』에서 체계화된 구조 패턴입니다. 서로 다른 Bounded Context가 연동될 때, 한쪽의 개념·용어·데이터 구조가 다른 쪽 모델로 스며드는 현상을 모델 오염(Model Corruption)이라 하며, ACL은 그 오염을 차단하는 명시적 격리 경계입니다. 레거시 시스템과 신규 마이크로서비스를 동시에 운영하는 환경에서 이 문제는 선택이 아니라 반드시 마주치는 현실입니다. 이 글은 ACL이 왜 필요한지 ..

REST API 설계 원칙 — 자원 중심 URL과 상태 코드 선택 기준

목차REST 설계에서 오래 남는 결정URL에서 동사를 걷어내는 기준상태 코드는 클라이언트의 분기 조건이다목록·부분 응답·버전을 다루는 기준REST가 비용이 되는 자리맺음말REST 설계에서 오래 남는 결정REST API를 설계할 때 팀이 오래 붙잡는 지점은 문법이 아니라 판단입니다. 취소를 POST /orders/1/cancel로 둘지 상태 전이로 볼지, 잔액 부족을 400으로 묶을지 422로 나눌지 같은 것들입니다.이런 결정은 문서의 모양만 바꾸지 않습니다. 클라이언트가 실패를 어떻게 분기하고, 화면 하나를 그리는 데 왕복이 몇 번 나가는지가 여기서 갈립니다. 배포된 뒤에 바꾸려면 서버와 클라이언트를 같이 올려야 해서, 미룰수록 비용이 커집니다.결정 지점잘못 정했을 때 드러나는 곳되돌리는 비용URL을 자..

API 쉽게 이해하기 — 식당 주문서로 알아보는 서비스 연결

목차주방에는 손님이 들어갈 수 없습니다주문서에 칸이 정해져 있는 이유메뉴에 없는 것은 시킬 수 없습니다연결하는 데 왜 시간이 걸릴까요맺음말오늘은 개발을 하면서 자주 듣는 API에 대해서 간단하게 다뤄보도록 하겠습니다. 소프트웨어 개발자가 아니라도 API 는 종종 들리는 단어일 것 같습니다. API 는 다방면에서 사용하는 용어이긴 하지만, 웹 개발에서의 API 란 어떤 의미인지 단순히 식당에서 주문하는 걸로 비유해서 설명을 해보도록 하겠습니다.주방에는 손님이 들어갈 수 없습니다식당에서 밥을 먹을 때 우리는 주방에 직접 들어가지 않습니다. 자리에 앉아 주문하면 잠시 뒤 음식이 나옵니다. 주방이 어떻게 생겼는지, 불을 얼마나 세게 쓰는지 몰라도 밥은 먹을 수 있습니다. 프로그램끼리도 똑같습니다. 지도를 보여..

Claude Design 쉽게 이해하기 — 말로 부탁하면 화면이 나오는 도구

목차그림 잘 그리는 친구가 생겼습니다예전에는 왜 어려웠을까요어떻게 부탁하고, 어떻게 고칠까요친구도 못하는 일이 있습니다맺음말그림 잘 그리는 친구가 생겼습니다학교 다닐 때 그림을 유난히 잘 그리는 친구가 한 명쯤 있었습니다. 머릿속에 있는 걸 말로 설명하면 "아, 이런 거?" 하면서 슥슥 그려 주던 친구요. 내가 붓을 못 잡아도, 그 친구에게 설명만 잘하면 원하는 그림이 나왔습니다.Claude Design(클로드 디자인)은 컴퓨터 안에 그런 친구를 한 명 앉혀 둔 것과 비슷합니다. 만들고 싶은 화면을 말로 설명하면 그 자리에서 그려서 보여 줍니다. 마음에 안 드는 곳이 있으면 "여기는 좀 크게 해 줘"라고 말하면 고쳐 줍니다.이 글은 개발도 디자인도 해 본 적 없는 분을 위해 썼습니다. 어려운 말은 쓰지 ..

Prometheus란 무엇인가 — 등장 배경과 지표 수집 기본 활용법

목차개요Prometheus는 어떤 문제를 풀려고 등장했나구성 요소와 지표 모델Spring Boot에 붙이는 기본 활용법맺음말개요한 줄 정의와 이 글의 범위Prometheus(프로메테우스)는 시계열 지표를 주기적으로 수집해 저장하고, 질의 언어로 조회하며, 임계 조건을 넘으면 알림을 보내는 오픈소스 모니터링 시스템입니다. 2012년 SoundCloud에서 시작해 현재는 CNCF(Cloud Native Computing Foundation) 재단 프로젝트이며, 쿠버네티스 환경의 사실상 기본 모니터링 도구로 쓰이고 있습니다.이 글에서 다루는 것다루지 않는 것왜 등장했는지, 기존 방식과 무엇이 다른지고가용성·장기 보관 구성(Thanos, Mimir)구성 요소와 지표 타입, PromQL 기본Grafana 대시보드..

배치·API 무실행 감지 설계 — 임계값과 유예 시간 정하는 기준

목차개요실행 여부는 왜 별도 신호인가무실행 임계 설계 — 주기·유예·판정식오탐과 미탐을 가르는 예외 설계맺음말개요문제 배경모니터링 대시보드 대부분은 "실행된 것"에 대해서만 말합니다. 에러율, 응답 시간, 실패 건수는 모두 무언가가 실행되었다는 전제 위에서 계산되는 지표입니다. 그래서 정작 아무 일도 일어나지 않은 장애, 즉 무실행 장애는 대시보드가 가장 조용할 때 진행됩니다. 정산 배치가 스케줄러 노드 재기동 이후 등록되지 않아 사흘째 돌지 않아도 에러 로그는 한 줄도 남지 않고, 상류 시스템이 호출을 끊어 API 트래픽이 0이 되어도 5xx는 0건이라 알림이 울리지 않습니다.실패는 신호를 남기지만, 아예 실행되지 않은 작업은 아무 신호도 남기지 않습니다. 침묵은 정상과 구분되지 않습니다.무실행 감지는..

프롬프트 쉽게 이해하기 — 그림 부탁하듯 말하면 결과가 달라집니다

목차같은 부탁인데 결과가 다릅니다짧은 부탁은 상대가 빈칸을 채웁니다빈칸을 대신 채워 주는 네 가지한 번에 끝내지 않는 것이 정상입니다맺음말같은 부탁인데 결과가 다릅니다옆자리 사람은 AI에게 부탁해 쓸 만한 것을 받아 옵니다. 저는 같은 것을 부탁했는데 엉뚱한 것이 나옵니다. 화면도 같고 도구도 같은데 결과만 다릅니다. 이럴 때 흔히 "요령이 있나 보다" 하고 넘기게 됩니다.이 차이는 한 번 쓰고 마는 일이라면 대수롭지 않지만, 매일 쓰기 시작하면 빠르게 벌어집니다. 같은 시간을 들이고도 한쪽은 고쳐 쓸 것을 받고 다른 쪽은 버릴 것을 받기 때문입니다.요령이라기보다 부탁하는 방식의 차이입니다. AI에게 건네는 그 말을 프롬프트(prompt), 우리말로 하면 지시문이라고 부르는데, 이 글은 지시문을 잘 쓰는..

반응형