푸른영혼의 별 | Tech Blog
Java Backend Engineer의 기술 블로그입니다.
Spring Boot, MSA, JPA, Kafka, Kubernetes 등 실무 경험을 공유합니다.
주요 프로젝트: Settlement MSA · ASAT · GitHub
Posts (총 1518편 · 1 / 152 페이지)
-
앱 밑에 깔린 19개 — 홈랩 K3s 운영 기반의 사용법과 실측 성능
우리 K3s 클러스터(노드 5대)에는 사람이 직접 쓰는 앱 말고도 앱을 돌리기 위한 네임스페이스가 19개 있다. 배포(ArgoCD), 외부 연결(cloudflared), 시크릿(sops-operator), 백업(velero), 빌드(buildkitd·ARC·registry-mirror), 관측(Prometheus·ELK·Falco)과 그 밖의 공용 부품(Kafka·OpenViking·NFS·Dashboard·echo)이다.
-
ATM·키오스크 프론트 입력 유효성 정규식 25개 — 전부 돌려본 통과/거절 케이스와 함께
어제 글(유효성 검사 실전 시나리오 30가지)이 서버 쪽 이야기였다면, 이번에는 화면 쪽이다. ATM·은행 키오스크·카드 등록 화면처럼 숫자 키패드 중심의 금융 입력 UI에서 쓰는 정규식 25개를 정리했다.
-
쿠키·세션·토큰 — 셋은 같은 층위가 아니다: 운반·상태·자격증명으로 나눠 보기
“쿠키 vs 세션 vs 토큰” 이라는 질문은 자주 나오지만, 셋을 나란히 놓고 고르는 순간 설계가 꼬인다. 쿠키는 운반 수단이고, 세션은 서버가 들고 있는 상태이며, 토큰은 자격 증명의 형식이다. 실제 시스템은 보통 “세션 ID 를 쿠키로 나른다” 거나 “토큰을 쿠키 또는
Authorization헤더로 나른다” 처럼 둘 이상을 조합한다. -
access token 과 refresh token — 왜 둘로 나누고, 회전은 어디서 깨지나 (직접 만든 토큰 서버로 7가지 시나리오)
어제 JWT 글의 7절이 “refresh 토큰은 회전시켜라”에서 멈췄다면, 이 글은 그 다음 이야기다. 회전을 직접 구현해 보면 어디서 정상 사용자가 튕겨 나가고, 어디서 공격자가 빠져나가는지를 표준 라이브러리만으로 만든 작은 토큰 서버로 돌려 봤다. 토큰 보관 위치(localStorage·HttpOnly 쿠키·메모리)는 어제 글의 표에서 다뤘으니 여기서는 반복하지 않는다.
-
Vue 프론트 유효성 체크 — 직접 구현부터 VeeValidate·Zod 까지, 그리고 서버가 다시 봐야 하는 이유
Vue 에서 폼 유효성 체크를 어떻게 하느냐는 질문의 답은 폼 크기에 따라 갈린다. 필드 몇 개면
computed로 직접 짜는 게 낫고, 폼이 커지면 스키마 라이브러리를 쓰는 게 낫다. 어느 쪽이든 변하지 않는 전제가 하나 있다. 프론트 검증은 UX 이고, 보안은 서버가 한다. -
유효성 검사(Validation) 실전 시나리오 30가지 — @NotNull 다음에 터지는 것들
@NotBlank하나 붙이고 끝내는 유효성 검사는 형식만 본다. 실제 장애·보안 사고는 그 다음 층에서 난다. 길이를 무엇으로 세는지, 모르는 필드를 어떻게 처리하는지, 검사한 뒤 값이 바뀌지는 않는지 같은 것들이다. -
JWT 가 실제로 뚫리는 7가지 자리 — RFC 8725 와 직접 돌려 본 위조 토큰
JWT 를 “로그인하면 주는 토큰” 정도로만 알고 쓰면, 서명이 있으니 안전하다고 믿기 쉽다. 그런데 JWT 가 공개된 뒤 실제로 터진 사고는 대부분 암호가 깨져서가 아니라 검증을 잘못해서 났다. IETF 는 그 사고들을 모아 2020년에 JWT Best Current Practices — RFC 8725 (BCP 225) 를 냈다. 서론부터 이렇게 적는다.
-
Anthropic 은 왜 모노레포를 Git 에서 옮겼나 — 에이전트 규모의 소스 컨트롤 Scion
AI 가 코드를 쓰는 속도가 빨라지자 병목이 코드를 관리하는 시스템 으로 옮겨 갔다. Anthropic 이 2026년 10월 13일 엔지니어링 블로그에 그 경험을 공개했다 — 자체 버전 관리 시스템 Scion 을 만들고, 모노레포를 Git 에서 다섯 달 만에 이전했다는 내용이다 (Anthropic, Redesigning source control at Anthropic).
-
랙 서버 한 대를 퇴역시켰다 — isagal 을 뺀 K3s 6→5노드 이전기와 아낀 전기요금 계산
홈랩 K3s 클러스터에서 전기를 제일 많이 먹던 노드를 뺐다. Dell PowerEdge R730xd, 이름은 isagal 이다. 이 글에는 세 가지를 적는다. 왜 하필 그 노드였는지, 무엇을 어디로 옮겼는지(로컬 볼륨 이전 방법 포함), 그리고 전기요금이 얼마나 줄었는지 한전 요금표로 계산한 결과다. 수치는 전부 2026-10-15 에 이 클러스터에서 직접 잰 값이다. 전기요금은 추정이고 실측 고지서가 아니다. 한계는 마지막 절에 따로 모았다.
-
쿠버네티스 로깅, 거시와 미시 — 왜 모으는가부터 우리 ELK 의 17GB 까지
홈랩 K3s 클러스터(노드 6대)에서 서비스를 몇 개 내리고 나서 남은 걸 메모리 순으로 세어 봤다. 맨 위가 로깅(ELK) 약 17GB였다. 이걸 그대로 둘지, 줄일지, 뺄지 정하기 전에 로깅을 두 높이에서 정리해 둔다. 거시: 왜 로그를 한곳에 모으고, 어떤 설계들이 있는가. 미시: 우리 클러스터 ELK 를 2026-10-13~15 에 실측한 값. 미시 파트의 수치는 전부 이 클러스터에서 직접 잰 값이라 일반화하면 안 된다.