정성원
-
[로컬 서버 운영기] Docker Compose에서 K3s로 — 집 서버 쿠버네티스 이주기
잘 도는 Docker Compose 스택을 굳이 K3s로 옮길 이유가 있을까요. 단일 노드라도 선언형 배포와 셀프힐링은 매력적입니다. 서비스 이름을 그대로 유지해 이관 표면적을 줄인 방법과, 집…
-
[로컬 서버 운영기] 한 번 로그인으로 다 쓰기 — 커스텀 JWT에서 Keycloak으로, 무중단으로
여러 서비스가 같은 비밀키로 서명한 HS256 JWT를 공유하면 SSO 흉내는 납니다. 하지만 중앙 관리·키 회전·표준 로그인 화면이 없습니다. 잘 도는 인증을 멈추지 않고 Keycloak(OIDC)으로 옮긴…
-
[로컬 서버 운영기] 집 PC를 공개 서버로 — 포트 하나 열지 않고 도메인 붙이기
집에 있는 PC 한 대로 실서비스를 공개하려면 보통 공유기 포트포워딩과 고정 IP를 떠올립니다. 하지만 아웃바운드 터널(Cloudflare Tunnel)을 쓰면 인바운드 포트를 하나도 열지 않고 도메인을 붙일…
-
[아키텍처 최종장] MVC·MVP·MVVM에서 Clean·Hexagonal, 그리고 MSA까지 — 결국 ‘무엇을 어디에 둘까’의 문제
MVC·MVP·MVVM은 C·P·VM만 다르다. Repository와 Active Record는 쿼리 실행 레이어의 위치가 다르다. Clean·Hexagonal은 층위가 다르고, EDA·MSA는 그 경계를 서비스로 쪼갠 것 — 아키텍처 시리즈를 한 장으로…
-
“뭔가 이상한데”가 신호일 때 — 기대와 실제의 간극을 무시하지 않는 개발 습관
어떤 분야를 오래 한 사람일수록 ‘뭔가 이상한데’라는 말을 자주 합니다. 그 감각의 정체를 ‘시도·기대·실제’라는 회고 프레임으로 풀어보고, 기대와 실제의 간극을 ‘되겠거니’ 하고 넘겼다가 사고로 이어진…
-
MSA 분산 트랜잭션 한 페이지 — 흐름을 누가 지휘하고, 실패는 어떻게 수습하나
주문 하나가 여러 서비스를 거치는 동안 어느 한 곳이 실패하면, 이미 끝난 앞 단계들은 어떻게 되나. 이 질문에 답하려면 먼저 누가 그 순서를 쥐고 있는지부터…
-
개인 아키텍처 시스템 — 하나의 템플릿 규칙으로 언어·인프라·MSA 전환까지 굴리기
새 프로젝트마다 반복하던 환경 세팅 삽질을 스킬로 굳힌 개인 아키텍처 시스템. 같은 14 섹션 틀, 언어가 달라도 흔들리지 않는 포트 기반 baseline, 10개 concern을 위상정렬로…
-
[아키텍처 #4] MSA(Microservices) — 서비스 경계, DB 소유, 그리고 Saga
Go 아키텍처 시리즈 #1 Clean Architecture #2 Hexagonal & MessageQueue #3 Event-Driven Architecture #4 Microservices(MSA) — 지금 이 글 시리즈의 마지막. 1~3편이 “한 서비스 안을…