<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>SaaS on Jay's Blog</title><link>https://jaylab.blog/tags/saas/</link><description>Recent content in SaaS on Jay's Blog</description><generator>Hugo</generator><language>ko-kr</language><lastBuildDate>Tue, 15 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jaylab.blog/tags/saas/index.xml" rel="self" type="application/rss+xml"/><item><title>다 만들고 적용하지 않은 CloudFront 앞단</title><link>https://jaylab.blog/cloudfront-front-door-withdrawn/</link><pubDate>Tue, 15 Sep 2026 00:00:00 +0000</pubDate><guid>https://jaylab.blog/cloudfront-front-door-withdrawn/</guid><description>토큰으로 오리진을 고르는 CloudFront 앞단을 dev E2E까지 끝냈지만, 출발지 IP에 기대던 ALB 규칙과 외부 연동처 때문에 적용을 접었다</description></item><item><title>ESO를 빼고 설정 해시로 바뀐 앱만 재배포하기</title><link>https://jaylab.blog/eso-removal-config-hash-redeploy/</link><pubDate>Wed, 15 Jul 2026 00:00:00 +0000</pubDate><guid>https://jaylab.blog/eso-removal-config-hash-redeploy/</guid><description>환경변수 주입으로 의미를 잃은 ESO를 빼고, 앱별 설정 해시를 넣어 값이 바뀐 앱만 재배포되게 했다</description></item><item><title>application-dev.yml을 이긴 건 SPRING_APPLICATION_JSON뿐이었다</title><link>https://jaylab.blog/spring-application-json-override/</link><pubDate>Fri, 10 Jul 2026 00:00:00 +0000</pubDate><guid>https://jaylab.blog/spring-application-json-override/</guid><description>소스를 못 고치는 Spring Boot 앱의 DB 주소를, 파일 import 대신 SPRING_APPLICATION_JSON으로 키 단위로 덮어써 바꿨다</description></item><item><title>테넌트 배포 40분을 7분으로 줄이고도 노드 정리는 끄지 않았다</title><link>https://jaylab.blog/karpenter-consolidation-pod-skew/</link><pubDate>Mon, 06 Jul 2026 00:00:00 +0000</pubDate><guid>https://jaylab.blog/karpenter-consolidation-pod-skew/</guid><description>Karpenter 노드 정리가 배포 도중 끼어들어 40분 걸리던 테넌트 배포를 7분으로 줄였다. 정리는 끄지 않고 대기 시간을 늘렸고, 그 뒤 확인한 Pod 몰림도 막았다.</description></item><item><title>buildspec에 없는 환경변수의 출처</title><link>https://jaylab.blog/buildspec-env-from-dynamodb-record/</link><pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate><guid>https://jaylab.blog/buildspec-env-from-dynamodb-record/</guid><description>테넌트 하나의 프로파일을 바꾸려 넣은 예외의 이유를 따라가 테넌트 레코드에 ENV가 없다는 걸 찾고, PROJECT만 복사하게 했다</description></item><item><title>dev에서 고친 설정이 stg와 prd에 닿지 않을 때</title><link>https://jaylab.blog/env-branches-to-profile-files/</link><pubDate>Wed, 17 Jun 2026 00:00:00 +0000</pubDate><guid>https://jaylab.blog/env-branches-to-profile-files/</guid><description>dev에서 고친 PDB가 stg·prd로 넘어가지 않던 환경별 브랜치를, 차이를 분류해 단일 형상과 프로파일 파일로 합쳤다.</description></item><item><title>Service는 늘 두고 라우팅만 켜고 끈다</title><link>https://jaylab.blog/istio-mesh-route-to-legacy/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://jaylab.blog/istio-mesh-route-to-legacy/</guid><description>공통 API 호출을 기존 환경으로 돌리려 Service와 라우팅 정책을 나눴고, PoC로 경유는 확인했지만 켜지는 않았다</description></item><item><title>앱을 전부 꺼도 그냥 끝나던 배포 스크립트</title><link>https://jaylab.blog/null-vs-empty-app-list/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://jaylab.blog/null-vs-empty-app-list/</guid><description>켜진 앱이 0개면 그냥 끝나던 배포 스크립트를 설정 없음(null)과 빈 배열로 나눠, 옛 앱그룹은 지키고 운영자 의도는 반영했다.</description></item><item><title>앱 목록을 정하는 자리를 한 계층 위로 옮겼다</title><link>https://jaylab.blog/service-catalog-app-toggle/</link><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><guid>https://jaylab.blog/service-catalog-app-toggle/</guid><description>고객사마다 앱 폴더를 손으로 지우던 일을 앱그룹 토글과 기존 파이프라인 분기 하나로 바꿨다. 남은 일은 데이터 원본 정리였다.</description></item><item><title>버튼 한 번에 고객사 전용 환경이 뜨기까지</title><link>https://jaylab.blog/multi-tenant-onboarding-pipeline/</link><pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate><guid>https://jaylab.blog/multi-tenant-onboarding-pipeline/</guid><description>SSH로 kubectl delete 후 apply하던 배포를, DynamoDB 레코드 한 건이 ArgoCD까지 흘러가 테넌트 환경을 만드는 파이프라인으로 바꿨다</description></item></channel></rss>