<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>맘소프트(MOMSOFT) 기술 블로그</title>
    <link>https://momsoft.co.kr/blog/</link>
    <description>19년 넘게 금융 · 엔터프라이즈 · 모바일 시스템을 만들며 실제로 부딪히고 해결한 것들을 적습니다.</description>
    <language>ko</language>
    <lastBuildDate>Mon, 14 Sep 2026 09:00:00 +0900</lastBuildDate>
    <managingEditor>ysh@momsoft.co.kr (윤수현)</managingEditor>
    <atom:link href="https://momsoft.co.kr/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Spring Boot 2에서 3으로, 실제로 시간을 잡아먹는 것들</title>
      <link>https://momsoft.co.kr/blog/spring-boot-3-migration/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/spring-boot-3-migration/</guid>
      <description>패키지 이름 치환은 도구가 대신 해 줍니다. 나머지 전부가 진짜 일입니다. 되돌릴 수 있는 단위로 끊어 올리는 순서를 정리했습니다.</description>
      <category>Spring · Java</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>N+1 문제를 진짜로 없애는 순서</title>
      <link>https://momsoft.co.kr/blog/jpa-n-plus-1/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/jpa-n-plus-1/</guid>
      <description>지연 로딩과 프록시가 만드는 N+1을 측정으로 먼저 드러내고, 전역 배치 페치부터 별도 조회까지 순서대로 걷어내는 판단 기준을 정리했습니다.</description>
      <category>Spring · Java</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>QueryDSL로 동적 검색 조건을 안전하게 짜는 법</title>
      <link>https://momsoft.co.kr/blog/querydsl-dynamic-search/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/querydsl-dynamic-search/</guid>
      <description>동적 조건의 기본 단위는 if 블록이 아니라 메서드입니다. null 규약 하나만 팀 규칙으로 고정하면, 조건이 스무 개로 늘어도 검색 코드는 무너지지 않습니다.</description>
      <category>Spring · Java</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>@Transactional을 잘못 걸어 생기는 사고들</title>
      <link>https://momsoft.co.kr/blog/transactional-pitfalls/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/transactional-pitfalls/</guid>
      <description>애너테이션 한 줄은 붙는 순간 끝나는 설정이 아니라, 프록시·커넥션·예외 규칙이 얽힌 계약입니다. 그 계약이 깨지는 지점과 점검 순서를 짚습니다.</description>
      <category>Spring · Java</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>PostgreSQL 인덱스가 안 타는 흔한 이유</title>
      <link>https://momsoft.co.kr/blog/postgres-index-not-used/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/postgres-index-not-used/</guid>
      <description>플랜을 먼저 읽고, 못 쓰는 것인지 안 쓰는 것인지 가른 뒤에 손을 대야 합니다. 진단 없이 추가한 인덱스는 쓰기 비용만 남깁니다.</description>
      <category>Database</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>Redis를 캐시로 쓸 때 실제로 겪는 문제들</title>
      <link>https://momsoft.co.kr/blog/redis-cache-traps/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/redis-cache-traps/</guid>
      <description>캐시는 붙이는 순간이 아니라 만료되고 지워지는 순간에 무너집니다. 스탬피드·TTL·관통·직렬화·무효화를 실무 판단 기준으로 정리했습니다.</description>
      <category>Database</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>대용량 엑셀·PDF 내보내기를 메모리로 죽지 않게 만들기</title>
      <link>https://momsoft.co.kr/blog/excel-pdf-export-scale/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/excel-pdf-export-scale/</guid>
      <description>엑셀 내보내기가 죽는 이유는 대개 POI가 아니라 설계입니다. 조회·문서·전송 세 계층을 각각 스트리밍으로 바꾸는 순서를 정리했습니다.</description>
      <category>Database</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>Vue 2에서 3으로 옮기며 실제로 오래 걸린 부분</title>
      <link>https://momsoft.co.kr/blog/vue3-migration-reality/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/vue3-migration-reality/</guid>
      <description>문법 치환은 목록만 만들면 끝나는 일입니다. 정작 일정을 잡아먹는 건 서드파티 UI 라이브러리, 전역 API에 얽힌 암묵적 결합, 반응성 모델 교체, 그리고 빌드 도구입니다.</description>
      <category>Frontend</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>파일을 서버에 올리지 않고 브라우저에서 처리한다는 것</title>
      <link>https://momsoft.co.kr/blog/client-side-wasm-file-processing/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/client-side-wasm-file-processing/</guid>
      <description>이미지·PDF를 클라이언트에서 처리할 때 무엇을 얻고 무엇을 치르는지, 그리고 어디서부터는 여전히 서버로 보내야 하는지 그 경계를 정리합니다.</description>
      <category>Frontend</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>웹 접근성, 자동 검사로는 절대 안 되는 항목들</title>
      <link>https://momsoft.co.kr/blog/web-accessibility-in-practice/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/web-accessibility-in-practice/</guid>
      <description>자동 검사는 확실히 틀린 것만 잡도록 설계돼 있습니다. 사용자가 실제로 막히는 지점과 인증 심사에서 반복 지적되는 항목은 대부분 그 바깥에 있습니다.</description>
      <category>Frontend</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>모놀리스를 쪼갤 때 현실적인 순서</title>
      <link>https://momsoft.co.kr/blog/monolith-to-modules/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/monolith-to-modules/</guid>
      <description>쪼개는 단위는 코드가 아니라 데이터입니다. 소유권을 먼저 나누고, 모듈형 모놀리스에서 한 번 멈춘 뒤, 운영이 준비된 다음에야 프로세스를 분리하십시오.</description>
      <category>Architecture</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>로그와 추적을 나중에 붙이면 늦는 이유</title>
      <link>https://momsoft.co.kr/blog/observability-comes-first/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/observability-comes-first/</guid>
      <description>장애가 터진 뒤에 로그를 붙이면, 그 장애는 이미 못 봅니다. 관측 장치를 코드와 같이 짜야 하는 이유와, 최소 비용으로 넣는 순서를 정리했습니다.</description>
      <category>Architecture</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>레거시 재구축에서 데이터 이관이 프로젝트를 잡아먹는 이유</title>
      <link>https://momsoft.co.kr/blog/legacy-data-migration/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/legacy-data-migration/</guid>
      <description>이관은 프로젝트 후반의 배포 작업이 아니라 착수 첫 주에 시작해야 하는 분석 작업입니다. 왜 늘 과소평가되는지, 어떤 순서로 접근해야 하는지 정리했습니다.</description>
      <category>Architecture</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>Flutter로 게임을 만들 때 부딪히는 성능 문제</title>
      <link>https://momsoft.co.kr/blog/flutter-game-performance/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/flutter-game-performance/</guid>
      <description>Flutter로 게임이 안 되는 게 아니라, 앱을 만들던 습관 그대로 게임을 만들면 프레임이 무너집니다. 무엇을 어디까지 내려가서 손볼지 판단하는 기준을 정리합니다.</description>
      <category>Mobile</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>오프라인 우선 앱을 설계한다는 것</title>
      <link>https://momsoft.co.kr/blog/offline-first-mobile/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/offline-first-mobile/</guid>
      <description>네트워크를 전제에서 끌어내려 부가 기능으로 만드는 설계. 충돌 규칙과 부분 실패, 로컬 스키마 마이그레이션까지 판단 순서로 정리합니다.</description>
      <category>Mobile</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>CTO 대행이 첫 2주에 실제로 하는 일</title>
      <link>https://momsoft.co.kr/blog/cto-first-two-weeks/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/cto-first-two-weeks/</guid>
      <description>첫 2주의 산출물은 수정 커밋이 아니라 순서표입니다. 코드보다 먼저 읽는 기록, 인터뷰에서 묻는 질문, 위험도로 줄 세우는 기준을 정리했습니다.</description>
      <category>CTO · 조직</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>기술 부채를 숫자로 말하는 법</title>
      <link>https://momsoft.co.kr/blog/tech-debt-in-numbers/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/tech-debt-in-numbers/</guid>
      <description>&quot;리팩터링 해야 합니다&quot;는 요청이 아니라 감상입니다. 부채를 이자·원금·리스크 세 숫자로 옮기면 비로소 의사결정의 언어가 됩니다.</description>
      <category>CTO · 조직</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>외주 개발 계약에서 반드시 정해 두어야 할 것들</title>
      <link>https://momsoft.co.kr/blog/outsourcing-contract-checklist/</link>
      <guid isPermaLink="true">https://momsoft.co.kr/blog/outsourcing-contract-checklist/</guid>
      <description>분쟁이 나는 지점은 대체로 정해져 있습니다. 계약서에 여섯 문단만 제대로 넣어도 다툼의 절반은 협의로 바뀝니다.</description>
      <category>CTO · 조직</category>
      <dc:creator>윤수현</dc:creator>
      <pubDate>Sun, 09 Aug 2026 09:00:00 +0900</pubDate>
    </item>
  </channel>
</rss>
