<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Ramsbaby Blog RSS]]></title><description><![CDATA[장애와 삽질이 가르쳐 준 것들. 9년차 백엔드 개발자의 실무 기술 블로그. Spring Boot, JPA, 장애 대응, 성능 최적화, AI 코딩(Claude, MCP) 활용법까지.]]></description><link>http://github.com/dylang/node-rss</link><generator>GatsbyJS</generator><lastBuildDate>Sun, 19 Jul 2026 03:47:09 GMT</lastBuildDate><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 대상: 코드 구현을 넘어 시스템 전체를 설계하고 싶은 백엔드 개발자 범위: 클린 아키텍처, DDD, 이벤트 기반 설계, API 전략 목표: 트레이드오프를 이해하고 상황에 맞는 아키텍처를 선택하는 능력

좋은 아키텍처란 뭘까요?

정…]]></description><link>https://blog.ramsbaby.com/architecture/architecture-hub/</link><guid isPermaLink="false">https://blog.ramsbaby.com/architecture/architecture-hub/</guid><pubDate>Sat, 06 Dec 2025 00:00:02 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 “관리자가 건물 정보를 수정했는데, 앱에서는 왜 이전 정보가 계속 보이나요?”

고객센터에서 이런 문의가 들어왔을 때, 처음엔 DB 반영 문제인 줄 알았습니다. 그런데 확인해보니 DB에는 최신 데이터가 있었거든요. 원인을 추적해보니 캐시…]]></description><link>https://blog.ramsbaby.com/infra/aws-lambda-cache-invalidation/</link><guid isPermaLink="false">https://blog.ramsbaby.com/infra/aws-lambda-cache-invalidation/</guid><pubDate>Sat, 12 Apr 2025 12:30:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 블로그를 운영하면서 가장 불편했던 점은 포스팅을 작성할 때마다 마크다운 파일을 직접 수정하고 Git에 커밋해야 한다는 것이었습니다. 솔직히 처음엔 괜찮았는데, 이런 번거로움이 쌓이다 보니 자연스럽게 글을 쓰는 빈도가 줄어들더군요.

그래서…]]></description><link>https://blog.ramsbaby.com/blog-dev/blog-admin-features/</link><guid isPermaLink="false">https://blog.ramsbaby.com/blog-dev/blog-admin-features/</guid><pubDate>Sun, 01 Dec 2024 14:30:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[문제간단설명 개구리가 강을 건너는 최소시간을 구하라. 

무작위 원소로 구성된 배열이 주어집니다.  배열의 index는 시간의 흐름이며, 배열의 원소는 잎이 떨어지는 위치입니다.  주어진 위치만큼 개구리는 이동해야 하지만, 잎이 없는 곳은 점프를…]]></description><link>https://blog.ramsbaby.com/coding-test/codingtest-post9/</link><guid isPermaLink="false">https://blog.ramsbaby.com/coding-test/codingtest-post9/</guid><pubDate>Thu, 20 May 2021 23:45:25 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[문제간단설명 배열이 주어질 경우, 순차적으로 첫번째 부분의 합과 남은 부분의 합의 차이를 먼저 구한 후, 그 차이값들 중 최솟값을 반환하시오. (예를 들어, 5개의 원소로 이루어진 배열일 경우, sum(1)-sum(2~5), sum(1~2)-sum…]]></description><link>https://blog.ramsbaby.com/coding-test/codingtest-post8/</link><guid isPermaLink="false">https://blog.ramsbaby.com/coding-test/codingtest-post8/</guid><pubDate>Thu, 20 May 2021 01:39:46 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[문제간단설명 입력받은 숫자를 2진수로 바꾸고, 1과 1사이의 0의 갯수인 이진간격을 구하라.

해결전략
숫자를 이진수로 변경 이진수 문자열을 기준으로 for문을 건 후, 1과 1사이의 0의 갯수를 카운팅 answer list에 값을 추가해주며…]]></description><link>https://blog.ramsbaby.com/coding-test/codingtest-post4/</link><guid isPermaLink="false">https://blog.ramsbaby.com/coding-test/codingtest-post4/</guid><pubDate>Tue, 18 May 2021 21:50:46 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[알고리즘 설명 은 행렬곱에 대해 O(N²)의 시간을 제공하는 알고리즘입니다. 

일반 행렬 곱셈을 이용하면 O(N³)의 시간이 걸리고, 더 빠른 행렬곱 방식을 이용하더라도 O(N^2.3727)의 시간이 걸리게 됩니다.

은 행렬 A,B 그리고 C가…]]></description><link>https://blog.ramsbaby.com/coding-test/codingtest-post2/</link><guid isPermaLink="false">https://blog.ramsbaby.com/coding-test/codingtest-post2/</guid><pubDate>Fri, 14 May 2021 17:28:34 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[문제간단설명 오픈카톡방에 사용자가 들어오고, 나가는 과정을 메시지로 남겨라 입니다. 사용자는 아이디를 변경해서 들어올 수 있고, 들어온 뒤 변경할 수도 있습니다. 변경해서 들어오는 경우와 들어와서 변경하는 경우, 과거의 메시지들에서 사용자의…]]></description><link>https://blog.ramsbaby.com/coding-test/codingtest-post1/</link><guid isPermaLink="false">https://blog.ramsbaby.com/coding-test/codingtest-post1/</guid><pubDate>Thu, 13 May 2021 21:08:53 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 항상 헷갈리는 내용이라 따로 정리해봤습니다.

API 개발하면서 클라이언트와 소통할 때 상태코드를 제대로 알고 있으면 디버깅이 훨씬 수월합니다. 특히 프론트엔드 개발자와 협업할 때 “이 API는 성공하면 200, 리소스 생성되면 201…]]></description><link>https://blog.ramsbaby.com/infra/http-status-code-guide/</link><guid isPermaLink="false">https://blog.ramsbaby.com/infra/http-status-code-guide/</guid><pubDate>Mon, 10 May 2021 18:51:54 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[1. 서론 저희 블로그에서는 gatsby-meta-config.js 파일의 ga 변수를 통해 아주 간단하게 구글 애널리틱스와 연동할 수 있습니다.

이렇게 연동을 하면 구글 애널리틱스에 접속하여 해당 사이트의 접속자수, 세션수, 접속자 접속 시간…]]></description><link>https://blog.ramsbaby.com/blog-dev/blog-post2/</link><guid isPermaLink="false">https://blog.ramsbaby.com/blog-dev/blog-post2/</guid><pubDate>Wed, 10 Mar 2021 11:35:20 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[1. 잡설 퇴사 후 오랜 여행과 여유를 즐기고 다시 개발 오픈월드로 돌아왔습니다. (~제주도 여행 4박5일, 한라산 등정까지 해버렸습니다~)

오랫동안 바라오던 오픈소스 기여에 드디어 발돋움하게 되었습니다.

지금 보고 계시는 블로그 프로젝트를 제…]]></description><link>https://blog.ramsbaby.com/blog-dev/blog-post1/</link><guid isPermaLink="false">https://blog.ramsbaby.com/blog-dev/blog-post1/</guid><pubDate>Thu, 25 Feb 2021 22:05:01 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[리액트란 무엇인가? 리액트의 정의에 대해서 짚고 넘어가겠습니다.

리액트란 웹 프레임워크로, 자바스크립트 라이브러리 중의 하나로 사용자 인터페이스를 만들기 위해 사용된다. (출처: 위키백과)

React.js는 facebook에서 만든 오픈소스…]]></description><link>https://blog.ramsbaby.com/reactjs/react-post3/</link><guid isPermaLink="false">https://blog.ramsbaby.com/reactjs/react-post3/</guid><pubDate>Sun, 13 Dec 2020 22:45:23 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[이번 블로그는 자바개발자인 제가 어떻게 리액트 블로그를 운용하게 되었는지에 대한 블로그입니다. 리액트입문

리액트에 관심이 생긴 저는 타 회사에서 리액트 개발자로 근무중인 친구의 추천책으로 리액트를 공부하게 됩니다. DOM에 대한 특별한 지식이…]]></description><link>https://blog.ramsbaby.com/reactjs/react-post2/</link><guid isPermaLink="false">https://blog.ramsbaby.com/reactjs/react-post2/</guid><pubDate>Tue, 03 Nov 2020 23:55:48 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[리액트 간단 소개 리액트는 페이스북이 개발하고 있는 아주 핫한 UI library 입니다. 프론트엔드 개발자 사이에서 핫한 3대장(Vue, Angular, React)중 하나라고도 하죠. 리액트는 웹 페이지 내부의 각 부분을 컴포넌트 단위로 다룰…]]></description><link>https://blog.ramsbaby.com/reactjs/react-post1/</link><guid isPermaLink="false">https://blog.ramsbaby.com/reactjs/react-post1/</guid><pubDate>Mon, 05 Oct 2020 23:45:20 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: QA 스트레스 테스트에서 좋아요 카운트가 4~8% 적게 나옴 원인: ① DB에서 읽으면 복제 지연(Replication Lag)으로 옛 값을 봄 ② Redis 숫자 카운터(INCR)는 “누가 눌렀는지”를 몰라서 같은 사람의 중복…]]></description><link>https://blog.ramsbaby.com/infra/redis-distributed-lock/</link><guid isPermaLink="false">https://blog.ramsbaby.com/infra/redis-distributed-lock/</guid><pubDate>Wed, 03 Jun 2026 14:22:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: 자동 토큰 갱신 시스템이 멀쩡한데도 전체 인증이 무효화됐습니다 원인: 두 갱신 주체가 같은 Refresh Token을 동시에 사용 → Reuse Detection 발동 해결: RT를 DB/Redis에 저장하고  플래그로 재사용 감지…]]></description><link>https://blog.ramsbaby.com/spring/spring-security-jwt-senior-perspective/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/spring-security-jwt-senior-perspective/</guid><pubDate>Thu, 12 Mar 2026 14:11:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: 전자계약 발송 시 간헐적 NPE, DB에는 데이터 존재 원인: 동일 도메인 데이터를 4개 캐시 이름으로 분산 + Repository/Entity 테이블 불일치 해결: 단일 캐시로 통합, 올바른 서비스 주입, 레거시…]]></description><link>https://blog.ramsbaby.com/spring/cache-table-mismatch-issue/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/cache-table-mismatch-issue/</guid><pubDate>Sat, 06 Dec 2025 12:30:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: 10분마다 실행되는 스케줄러가 간헐적으로 데드락 발생 (시간당 3회) 원인: 약 20초간 긴 트랜잭션으로 전체 테이블 Lock 유지, API 서버와 Lock 경합 해결: 4가지 방법 적용 (필터링, 트랜잭션 분리, REQUIRES…]]></description><link>https://blog.ramsbaby.com/spring/scheduler-deadlock-resolution/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/scheduler-deadlock-resolution/</guid><pubDate>Mon, 01 Dec 2025 08:32:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: 개발 서버가 완전히 멈춤, ALB 헬스체크도 응답 없음, 로그 한 줄도 없음 원인: Virtual Thread 100개가 병렬 DB 조회, HikariCP 커넥션 10개 (개발 환경) → 커넥션 풀 고갈로 Deadlock…]]></description><link>https://blog.ramsbaby.com/infra/virtual-thread-connection-pool-starvation/</link><guid isPermaLink="false">https://blog.ramsbaby.com/infra/virtual-thread-connection-pool-starvation/</guid><pubDate>Fri, 17 Oct 2025 12:53:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: AI가 생성한 코드가 컴파일은 되는데 로직이 틀린 경우가 많다 원인: AI는 비즈니스 로직의 맥락을 모르고, 사람이 일일이 검증하기 힘들다 해결: TDD로 테스트를 먼저 작성하면 AI 코드를 빠르게 검증할 수 있다 효과: 코드 품질…]]></description><link>https://blog.ramsbaby.com/java/tdd-in-ai-vibe-coding-era/</link><guid isPermaLink="false">https://blog.ramsbaby.com/java/tdd-in-ai-vibe-coding-era/</guid><pubDate>Sat, 27 Sep 2025 18:16:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: JDK 11을 쓰고 있는데 17로 갈지 21로 갈지 결정 필요 (작은 규모 B2B 서비스, TPS 10-20) 원인: 대용량 서비스는 성능 중심 선택하면 되는데, 작은 서비스는 “우리에게 필요한가?” 고민 해결: 스테이징…]]></description><link>https://blog.ramsbaby.com/java/jdk-17-vs-21/</link><guid isPermaLink="false">https://blog.ramsbaby.com/java/jdk-17-vs-21/</guid><pubDate>Sat, 26 Jul 2025 04:57:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 200줄짜리 메서드, 스크롤 끝이 안 보임, 수정할 때마다 겁남, 6개월 후 이해하는 데 30분 소요 원인: 외부 API 호출 + 검증 + 변환 + 저장 + 예외 처리가 한 메서드에 몰려 있음 해결: 파사드 패턴 - 큰…]]></description><link>https://blog.ramsbaby.com/spring/method-extraction-refactoring/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/method-extraction-refactoring/</guid><pubDate>Mon, 02 Jun 2025 20:26:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: 예약 메시지 발송이 간헐적으로 실패, DLQ에 메시지가 쌓이는데 모니터링이 없어서 뒤늦게 발견 원인: Consumer에서 DB 업데이트 시 트랜잭션 격리 수준 문제로 데드락 발생 해결: 격리 수준 READ_COMMITTED로 조정…]]></description><link>https://blog.ramsbaby.com/infra/sqs-dlq-troubleshooting/</link><guid isPermaLink="false">https://blog.ramsbaby.com/infra/sqs-dlq-troubleshooting/</guid><pubDate>Sun, 12 Jan 2025 01:00:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 결제/알림 방식마다 if-else 분기, 코드가 계속 길어지고 새 방식 추가할 때마다 수정 원인: “같은 일을 하지만 방법이 다른 것들”을 분기로 처리하면 OCP (개방-폐쇄 원칙) 위반 해결: 실무에서 자주 쓰는 3가지…]]></description><link>https://blog.ramsbaby.com/java/practical-design-patterns/</link><guid isPermaLink="false">https://blog.ramsbaby.com/java/practical-design-patterns/</guid><pubDate>Sun, 13 Oct 2024 13:21:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: N+1, 영속성 컨텍스트, 쿼리 최적화, 엔티티 설계 등 JPA 실무 안티패턴이 복합적으로 발생 원인: 각 주제를 개별적으로 다뤘지만, 실무에서는 여러 문제가 동시에 나타남 해결: JPA 시리즈 1~4편 내용을 한 곳에 모아…]]></description><link>https://blog.ramsbaby.com/spring/jpa-common-mistakes/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/jpa-common-mistakes/</guid><pubDate>Sat, 20 Jul 2024 14:30:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 양방향 연관관계 남발, cascade 무분별 사용, setter 도배로 엔티티 설계가 엉망 원인: N+1, 영속성 컨텍스트, 쿼리 최적화는 했는데 근본 원인은 엔티티 설계 해결: 단방향 우선, cascade 최소화…]]></description><link>https://blog.ramsbaby.com/spring/jpa-entity-design/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/jpa-entity-design/</guid><pubDate>Sun, 14 Apr 2024 13:25:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 복잡한 조건의 동적 쿼리, 컬렉션 2개 이상 Fetch Join, 페이징 + 조인 등 실무 쿼리가 어려움 원인: N+1, 영속성 컨텍스트 해결했지만 복잡한 쿼리는 별도 최적화 필요 해결: QueryDSL…]]></description><link>https://blog.ramsbaby.com/spring/jpa-query-optimization/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/jpa-query-optimization/</guid><pubDate>Sat, 06 Apr 2024 12:26:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: N+1 문제 해결했지만, 영속성 컨텍스트 미이해로 예상치 못한 쿼리 발생, 테스트 느림 원인: 영속성 컨텍스트가 엔티티를 자동으로 캐싱하는데, 이 메커니즘을 모르고 사용 해결: 1차 캐시 이해, 변경 감지, 준영속 상태…]]></description><link>https://blog.ramsbaby.com/spring/jpa-practical-pitfalls/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/jpa-practical-pitfalls/</guid><pubDate>Sun, 24 Mar 2024 07:32:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 주문 목록 조회 시 1개 쿼리 예상했는데 101개 쿼리 발생 (주문 100개 + 각 주문마다 상품 조회) 원인: JPA 지연 로딩 (Lazy Loading) - 연관 엔티티를 실제 사용할 때 개별 조회 해결: Fetch…]]></description><link>https://blog.ramsbaby.com/spring/jpa-n-plus-one-problem-solution/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/jpa-n-plus-one-problem-solution/</guid><pubDate>Tue, 19 Mar 2024 13:54:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 1편에서 배치가 느린 이유를 분석했습니다.

문제의 핵심은 독립적인 5개 작업을 순차 실행하고 있다는 것이었습니다. 5개 Step이 서로 독립적인데도 순차적으로 실행되면서 약 3시간이 걸렸죠. 이론상으로는 병렬 실행하면 40~50분으로 줄일…]]></description><link>https://blog.ramsbaby.com/spring/spring-batch-performance-optimization-part2/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/spring-batch-performance-optimization-part2/</guid><pubDate>Sat, 21 Oct 2023 05:00:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 이전 회사에서는 REST API를 다룰 경우가 많지 않았습니다.

소수의 관리자들에게 관리자 솔루션을 제공하는 솔루션 업체였기 때문에, 스프링프레임워크의 뷰로 JSP를 주로 이용했거든요. 심지어 FLEX(Adobe Flash Player…]]></description><link>https://blog.ramsbaby.com/infra/restful-api-design-guide/</link><guid isPermaLink="false">https://blog.ramsbaby.com/infra/restful-api-design-guide/</guid><pubDate>Sun, 09 May 2021 05:51:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 대상: Spring/JPA 장애 대응 경험을 쌓고 싶은 백엔드 개발자 순서: 아래 글들을 순서대로 읽으면 실전 대응 능력이 향상됩니다 수준: 초-중급 → 고급 순서로 배치

이 시리즈는 실무에서 마주친 Spring/JPA 장애 경험을…]]></description><link>https://blog.ramsbaby.com/spring/spring-troubleshooting-hub/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/spring-troubleshooting-hub/</guid><pubDate>Sat, 06 Dec 2025 00:00:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 코드 리뷰 시간, 팀장님이 제 코드를 보시더니 물으셨습니다.

“이 메서드, 뭐 하는 거예요?”

저는 자신 있게 설명했습니다. “고객 목록에서 활성 상태인 VIP 고객들의 이번 달 총 구매액을 계산하는 로직입니다.”

“아… 그렇군요. 근데…]]></description><link>https://blog.ramsbaby.com/java/functional-programming-practical-guide/</link><guid isPermaLink="false">https://blog.ramsbaby.com/java/functional-programming-practical-guide/</guid><pubDate>Sun, 11 Feb 2024 11:58:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 회사에서 업무적으로 도입을 준비하는 과정에 공부하게 된 내용을 공유합니다. 많은 동시성을 처리하는 MSA 구조에서 도메인 단위의 마이크로서비스에 적용하기 좋은 기술스택인 것 같습니다. 코드 예시보다는 스프링 웹플럭스의 소개와 장/단점…]]></description><link>https://blog.ramsbaby.com/spring/spring-post9/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/spring-post9/</guid><pubDate>Thu, 22 Dec 2022 23:45:23 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 스프링을 사용하는 자바 개발자가 알아야 할 트랜잭션에 대한 간단한 개념과 주의사항에 대해 포스팅합니다.

1. 트랜잭션이란 무엇인가?
트랜잭션이란 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위입니다. 여러 쿼리문이…]]></description><link>https://blog.ramsbaby.com/spring/spring-post7/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/spring-post7/</guid><pubDate>Wed, 21 Sep 2022 23:54:43 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 Spring JPA를 다루는 자바 개발자가 알아야 할 핵심요소인 영속성컨텍스트에 대해 간단히 짚고 넘어가려 합니다. (~저 자신도 정리 할겸~)

1. 영속성컨텍스트란 무엇인가?

JPA에서 영속성 컨텍스트란 엔티티를 영구…]]></description><link>https://blog.ramsbaby.com/spring/spring-post8/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/spring-post8/</guid><pubDate>Mon, 15 Aug 2022 22:12:54 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 예전에 이 글을 썼을 때는 “Spring Batch가 뭔지 간단히 정리해두자” 정도의 느낌으로만 적었습니다.
 지금은 배치를 실제 프로덕션에서 몇 년 동안 운영해보면서, 단순 개념 정리만으로는 부족하다는 생각이 많이 듭니다.

이번 글에서는…]]></description><link>https://blog.ramsbaby.com/spring/spring-post6/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/spring-post6/</guid><pubDate>Thu, 21 Apr 2022 23:18:22 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 OOM Killer에 의해 자바 프로세스가 예기치 않게 다운되는 현상이 발생하였습니다.

메모리 바운더리 설정을 하지 않은 자바 프로세스가 리눅스 OOM Killer에 의해 다운되었다고 생각했으나, 분명 해당 자바 프로세스는 메모리 설정이…]]></description><link>https://blog.ramsbaby.com/java/java-post3/</link><guid isPermaLink="false">https://blog.ramsbaby.com/java/java-post3/</guid><pubDate>Wed, 23 Feb 2022 22:40:15 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 다른 사람들도 그런지 모르겠지만, 저는 항상 인터페이스와 추상클래스가 뭔지는 아는데 차이점을 명확하게 설명하기 난해한 적이 많았습니다. 

워낙 인터넷에 추상클래스와 인터페이스의 차이점에 대해서 간략하게 설명해주신 분들이 많아서 그런지…]]></description><link>https://blog.ramsbaby.com/java/java-post2/</link><guid isPermaLink="false">https://blog.ramsbaby.com/java/java-post2/</guid><pubDate>Sat, 03 Jul 2021 18:38:10 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[본인이 공부할 목적으로 책인덱스를 짜보았으나, 공유차원에서 포스팅합니다. 현재는 간단히 목차소개와 영역별 저의 짧은 견해를 달아봅니다. 추후 블로그에 태그기능을 넣게 된다면(개발중),  이 책 관련하여 섹터별 소개 및 코드샘플을 작성하면서,  여러분…]]></description><link>https://blog.ramsbaby.com/book-intro/bookintro-post1/</link><guid isPermaLink="false">https://blog.ramsbaby.com/book-intro/bookintro-post1/</guid><pubDate>Tue, 10 Nov 2020 23:29:49 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 출근해서 잔디를 켰는데, 빨간색 알림이 쌓여 있었습니다.

새벽에 돌아야 할 접속기록 배치가 젠킨스 타임아웃에 걸려서 실패한 겁니다.

이 배치는 매일 새벽 2시에 자동 실행되는데, 최근 들어 점점 느려지더니 결국 타임아웃까지 터졌습니다…]]></description><link>https://blog.ramsbaby.com/spring/spring-batch-performance-optimization-part1/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/spring-batch-performance-optimization-part1/</guid><pubDate>Fri, 13 Oct 2023 20:00:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[MSA로 프로젝트 구성 시 주의할 점 앞서 MSA 의 단점에서 언급했던 내용들이지만 다시 정리해봅니다.

서버 간 통신에서의 성능저하
모놀리식에서는 내부 메소드 호출이었기에 문제가 되지 않았지만, MSA 구조에서는 API통신을 통해…]]></description><link>https://blog.ramsbaby.com/etc/etc-post9-4/</link><guid isPermaLink="false">https://blog.ramsbaby.com/etc/etc-post9-4/</guid><pubDate>Sat, 04 Jun 2022 19:47:19 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[어떻게 MSA 구조를 사용하고 있는가? 앞서 말했듯, MSA 구조에 정답은 없지만 서비스 형태별로 유용한 구조는 몇가지 있습니다.

사실 다른 회사에서 어떤식으로 적용하고 있는지도 잘 모르지만, CSP(Cloud Solution…]]></description><link>https://blog.ramsbaby.com/etc/etc-post9-3/</link><guid isPermaLink="false">https://blog.ramsbaby.com/etc/etc-post9-3/</guid><pubDate>Thu, 02 Jun 2022 22:57:45 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[MSA와 모놀리식의 차이점? 모놀리식이라는 표현이 원래부터 존재했었던게 아니라, MSA(Micro Service Architecture) 개념이 생겨나면서부터 전통의 아키텍쳐를 지칭하기 위해서 생겨난 단어로 알고 있습니다.

모놀리식…]]></description><link>https://blog.ramsbaby.com/etc/etc-post9-2/</link><guid isPermaLink="false">https://blog.ramsbaby.com/etc/etc-post9-2/</guid><pubDate>Sat, 14 May 2022 23:20:30 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 다소 황당한 블로그 주제지만 실제로 궁금증이 생긴 뒤 이를 해결해나간 과정을 적어보고자 합니다.

회사에서 Spring Batch 코드를 수정할 일이 있어 보던 중, 문득 이런 생각이 들었습니다.

위의 상황에서 updateSome 메소드가…]]></description><link>https://blog.ramsbaby.com/java/java-post4/</link><guid isPermaLink="false">https://blog.ramsbaby.com/java/java-post4/</guid><pubDate>Fri, 15 Apr 2022 21:10:20 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[도커란 무엇인가? 우선 도커는 컨테이너 가상화 환경에서 애플리케이션을 관리하고 실행하기 위한 오픈소스 플랫폼입니다. Go 언어로 만들어졌으며, 리눅스 환경에서 실행가능합니다. 여러 애플리케이션을 묶어서 이미지화 시킬 수도 있고, 단독으로 특정…]]></description><link>https://blog.ramsbaby.com/etc/etc-post8/</link><guid isPermaLink="false">https://blog.ramsbaby.com/etc/etc-post8/</guid><pubDate>Wed, 11 Aug 2021 20:49:54 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[자바스크립트 소개 및 간단한 역사 는 일급 함수를 지원하는 객체 기반의 스크립트 프로그래밍 언어입니다. (란 함수를 객체, 즉 값으로 다룰 수 있을 때 라 표현합니다. 함수를 함수 인자로 전달 가능하며, 리턴 값으로도 사용이 가능합니다.)

란…]]></description><link>https://blog.ramsbaby.com/javascript/javascript-post2/</link><guid isPermaLink="false">https://blog.ramsbaby.com/javascript/javascript-post2/</guid><pubDate>Tue, 22 Jun 2021 02:09:49 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 예시들은  로 작성하겠습니다.  추가로 발견되는 좋은 코딩 습관은 지속적으로 업데이트해 나가겠습니다.

좋은 코드 유지를 위한 코드 다잡기
네이밍
변수명에 모든 의미를 충분히 담아두는 것이 좋습니다. 변수명, 함수명만 보고도…]]></description><link>https://blog.ramsbaby.com/etc/etc-post7/</link><guid isPermaLink="false">https://blog.ramsbaby.com/etc/etc-post7/</guid><pubDate>Thu, 13 May 2021 22:45:47 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 우선, 이 포스팅은 몇년 간 개발을 진행해오며 느낀 저의 생각과,  여러 책, 여러 좋은 개발자분들의 블로그에서 따 온 내용들이 혼합된 것임을 밝힙니다. 

저 또한 이 노트들을 최대한 지키려고 노력하지만, 항상 시간에 급급하고 마음이…]]></description><link>https://blog.ramsbaby.com/etc/etc-post6/</link><guid isPermaLink="false">https://blog.ramsbaby.com/etc/etc-post6/</guid><pubDate>Mon, 10 May 2021 22:19:36 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 Jdk10이상 버전부터 자바에도 자바스크립트와 같은 var 를 이용한 타입추론이 가능해졌습니다. 

평상시 개발할때 Jdk8 위주로 써오던 터라, 개인공부를 하던 중 타입추론이라는 개념이 자바에도 있다는 것을 발견했습니다. 

var 라는…]]></description><link>https://blog.ramsbaby.com/java/java-post1/</link><guid isPermaLink="false">https://blog.ramsbaby.com/java/java-post1/</guid><pubDate>Mon, 10 May 2021 19:45:42 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 스프링에서 요청이 어떻게 처리되는지 구조적으로 파악하고 있는 것은 아주 중요합니다. 이 순환구조만 잘 파악하더라도 쉽게 스프링에 입문하실 수 있다고 확신합니다.

이 순환구조를 모르신다면, 스프링 전체 구조를 파악하지 않은 상태에서 주어진…]]></description><link>https://blog.ramsbaby.com/spring/spring-post3/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/spring-post3/</guid><pubDate>Tue, 20 Apr 2021 21:32:43 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론 스프링 개발자인 저로서는 사실 블로그의 제일 첫번째로 포스팅했어야할 글인데요. 늦었지만 스프링 프레임워크에 대해 포스팅해보겠습니다.

스프링 프레임워크는 자바 엔터프라이즈 어플리케이션 개발의 단연 최고자리를 차지하는 프레임워크입니다…]]></description><link>https://blog.ramsbaby.com/spring/spring-post2/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/spring-post2/</guid><pubDate>Wed, 14 Apr 2021 23:36:08 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 1편의 비서는 질문마다 백지에서 도구를 긁어, 과거 맥락이 전혀 쌓이지 않았습니다. 기억: 내 질문과 검색어를 마크다운으로 쌓고, 로컬 SQLite 벡터 저장소에 증분 인덱싱했습니다. 검색: 뜻으로 찾는 의미 기반 검색과 키워드로…]]></description><link>https://blog.ramsbaby.com/ai/work-ai-agent-dual-indexing-memory/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/work-ai-agent-dual-indexing-memory/</guid><pubDate>Sat, 27 Jun 2026 14:43:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 계기: 이슈 하나 들여다보려면 이슈 트래커, 사내 위키, 모니터링, 운영 DB를 매번 손으로 오가야 했습니다. 결심: 분석에 필요한 정보가 네 곳에 흩어져 있어서, 그 자료를 모으는 일 자체를 대신해 줄 비서를 만들기로 했습니다. 탄생:…]]></description><link>https://blog.ramsbaby.com/ai/work-ai-agent-multi-mcp-context-aggregation/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/work-ai-agent-multi-mcp-context-aggregation/</guid><pubDate>Fri, 12 Jun 2026 11:16:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: AI 답변 길이를 프롬프트로 제한(“N자 이내로”)해도 무시당하거나, 반대로 문장이 중간에 뚝 잘림 원인: 모델은 글자가 아니라 토큰으로 생성한다. 한글은 1글자가 평균 약 1.7토큰.  한도에 먼저 걸려서 잘리는 거였음 해…]]></description><link>https://blog.ramsbaby.com/ai/llm-token-not-character-length-limit/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/llm-token-not-character-length-limit/</guid><pubDate>Sun, 17 May 2026 13:05:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[요약 (TL;DR) 공부 기간: 3일 교재: 0권. Claude한테 기출 풀이 시키기만 했습니다. 점수: 65문항 중 5문제 미만 오답 (정답률 92%+) 결론: AI 자격증 공부에 가장 잘 맞는 도구는 AI였습니다. 그리고 평소에 RAG…]]></description><link>https://blog.ramsbaby.com/ai/aif-c01-passed-3days-claude-only/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/aif-c01-passed-3days-claude-only/</guid><pubDate>Sat, 09 May 2026 12:27:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 상황: 운영 에러 분석하느라 매일 아침 30분씩 Datadog 뒤지는 중 원인: 수동 로그 분석, 주관적인 우선순위 판단, Jira 티켓 수작업 생성 해결: Datadog MCP + Claude + IntelliJ 연동으로 분석 →…]]></description><link>https://blog.ramsbaby.com/ai/datadog-mcp-error-analysis-workflow/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/datadog-mcp-error-analysis-workflow/</guid><pubDate>Fri, 17 Apr 2026 13:56:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: 주문 단계(대기/접수/완료/취소)와 재고, 두 군데를 막았다고 생각했는데 완료된 주문이 다시 접수로 돌아가고, 잠금을 걸었는데도 재고가 마이너스로 빠졌습니다. 원인 1: 단계 검증을 서비스 코드 여기저기에 손으로 넣다 보니,…]]></description><link>https://blog.ramsbaby.com/architecture/order-state-machine-in-entity/</link><guid isPermaLink="false">https://blog.ramsbaby.com/architecture/order-state-machine-in-entity/</guid><pubDate>Sat, 04 Apr 2026 11:43:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: AI 에이전트가 작업 후 “완료했습니다”라고 단정 → 실제로는 미완·오류. 같은 패턴 3회 반복 원인: 자기가 한 일을 자기가 검증하면 편향이 낀다. “검증 후 선언하라”는 텍스트 규칙으로는 이 편향이 안 잡힘 해결: 검증을…]]></description><link>https://blog.ramsbaby.com/ai/ai-self-verification-bias-independent-auditor/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/ai-self-verification-bias-independent-auditor/</guid><pubDate>Sat, 28 Mar 2026 23:47:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: AI 집사의 모든 응답에 최상위 모델을 고정해두니, 일상 잡담에도 가장 비싼 모델이 호출됨 원인: “좋은 모델 = 항상 좋다”는 단일 기준. 질문 난이도와 모델 등급을 매칭하지 않음 해결: 질문을 trivial…]]></description><link>https://blog.ramsbaby.com/ai/llm-cost-finops-model-routing/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/llm-cost-finops-model-routing/</guid><pubDate>Tue, 24 Mar 2026 10:15:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: 자비스한테 “3월 15일 미팅 뭐였지?” 물으면 4월 미팅을 가져옴. 날짜·장소명에서 집중적으로 틀림 원인: 벡터 검색은 “의미가 비슷한 것”을 찾는데, 날짜 숫자는 의미적 무게가 작아서 맥락 비슷한 다른 날 기록한테 밀림…]]></description><link>https://blog.ramsbaby.com/ai/jarvis-rag-hybrid-search-bm25-vector/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/jarvis-rag-hybrid-search-bm25-vector/</guid><pubDate>Wed, 18 Mar 2026 14:03:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: Claude는 대화가 끝나면 리셋. 어제 한 얘기를 오늘 또 처음부터 해야 했습니다 실패 1: 대화 전체를 시스템 프롬프트에 붙여넣기 → 4주 만에 토큰 폭발 실패 2: MEMORY.md 하나에 요약 누적 → 20KB 돌파…]]></description><link>https://blog.ramsbaby.com/ai/jarvis-my-ai-butler-part3-rag-memory/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/jarvis-my-ai-butler-part3-rag-memory/</guid><pubDate>Sun, 22 Feb 2026 14:52:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 전체 흐름: Discord 메시지 → Node.js 봇 → Nexus MCP →  → Discord 응답. 전부 맥미니 로컬에서 돌아갑니다 채널이 11개인 이유: 처음엔 1개였습니다. 섞이는 게 불편해서 하나씩 쪼갰습니다. 채널 =…]]></description><link>https://blog.ramsbaby.com/ai/jarvis-my-ai-butler-part2-architecture/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/jarvis-my-ai-butler-part2-architecture/</guid><pubDate>Fri, 06 Feb 2026 13:45:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 발단 1: 1월 28일, 당근마켓에서 맥미니 중고 충동구매 → “기왕 돈 썼으니 제대로 해보자” 발단 2: 바로 그 주, Anthropic이 Claude Max를 서드파티 SaaS에 연결하면 계정 밴 예고 두 가지가 겹쳤다: 서버가…]]></description><link>https://blog.ramsbaby.com/ai/jarvis-my-ai-butler-part1-why-i-built-it/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/jarvis-my-ai-butler-part1-why-i-built-it/</guid><pubDate>Sun, 01 Feb 2026 04:00:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 상황: OpenClaw 에이전트를 24/7 운영하다가 가 20KB+로 팽창 원인: 매 세션마다 MEMORY.md를 전부 로딩 → 컨텍스트 압박 → 게이트웨이 크래시 해결 1: openclaw-self-healing — 4단계 자동 복구…]]></description><link>https://blog.ramsbaby.com/ai/openclaw-memory-crash-to-opensource/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/openclaw-memory-crash-to-opensource/</guid><pubDate>Fri, 23 Jan 2026 14:18:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR LangGraph: 상태 기반 AI 워크플로우 프레임워크 핵심 개념: 노드(작업) + 엣지(연결) + 상태(데이터) 사용 사례: 다단계 처리, 조건부 분기, 도구 사용 에이전트 자바 비유: Spring Batch의 Job/Step…]]></description><link>https://blog.ramsbaby.com/ai/java-dev-ai-intro-part5/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/java-dev-ai-intro-part5/</guid><pubDate>Mon, 05 Jan 2026 12:20:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 목표: 회사 문서 기반 Q&A 챗봇 완성 파이프라인: 질문 → 문서 검색 → 컨텍스트 주입 → 답변 생성 핵심: 검색된 문서를 프롬프트에 넣어서 AI가 답변하게 함 결과: “우리 회사 정책”에 대해 정확히 답변하는 챗봇 한계: 청킹…]]></description><link>https://blog.ramsbaby.com/ai/java-dev-ai-intro-part4/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/java-dev-ai-intro-part4/</guid><pubDate>Mon, 29 Dec 2025 13:35:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR RAG: AI가 모르는 정보를 검색해서 답변에 활용하는 기술 Embedding: 텍스트를 숫자 배열(벡터)로 변환하는 것 Vector DB: 벡터를 저장하고 유사도로 검색하는 데이터베이스 핵심 흐름: 문서 → 청킹 → 임베딩 →…]]></description><link>https://blog.ramsbaby.com/ai/java-dev-ai-intro-part3/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/java-dev-ai-intro-part3/</guid><pubDate>Mon, 22 Dec 2025 12:50:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR LangChain: AI 호출을 체계적으로 관리하는 프레임워크 프롬프트 템플릿: 재사용 가능한 질문 형식 (자바의 MessageFormat과 비슷) 체이닝: 여러 AI 호출을 연결 (자바의 Stream API 파이프라인과 비슷) 핵…]]></description><link>https://blog.ramsbaby.com/ai/java-dev-ai-intro-part2/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/java-dev-ai-intro-part2/</guid><pubDate>Tue, 16 Dec 2025 14:05:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 목표: 자바 개발자가 AI 개발 환경을 세팅하고 첫 API 호출까지 해보기 도구: Cursor IDE + Python + OpenAI API 소요 시간: 약 30분~1시간 비용: OpenAI API 크레딧 $5 정도면 연습하기 충분…]]></description><link>https://blog.ramsbaby.com/ai/java-dev-ai-intro-part1/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/java-dev-ai-intro-part1/</guid><pubDate>Tue, 09 Dec 2025 13:10:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 로컬 MCP 서버는 Claude Desktop에서만 사용 가능, 어디서든 접근 불가 원인: Stdio 프로토콜은 로컬 전용, Private Git 저장소 동기화 필요 해결: Cloud Run 배포 + GitHub Webhook +…]]></description><link>https://blog.ramsbaby.com/ai/mcp-for-backend-developers-part2/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/mcp-for-backend-developers-part2/</guid><pubDate>Wed, 26 Nov 2025 21:40:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: AI가 외부 데이터(DB, API, 파일)를 직접 읽을 수 없어서 수동으로 복사/붙여넣기 필요 원인: Claude, ChatGPT는 인터넷에 연결되지 않음, 실시간 데이터 접근 불가 해결: MCP(Model Context…]]></description><link>https://blog.ramsbaby.com/ai/mcp-for-backend-developers/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/mcp-for-backend-developers/</guid><pubDate>Sat, 15 Nov 2025 14:30:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: 문서 시스템을 만들었지만 실제 효과가 얼마나 있는지 불명확, 투자 대비 효과 판단 불가 원인: 정량적 지표 없이는 개선 여부 증명 어려움, Before/After 비교 데이터 부재, 주관적 체감만으로 판단 해결: 토큰 사용량…]]></description><link>https://blog.ramsbaby.com/ai/ai-driven-codebase-documentation-part3/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/ai-driven-codebase-documentation-part3/</guid><pubDate>Mon, 03 Nov 2025 09:00:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: AI가 전체 코드베이스를 탐색하면서 토큰 폭탄 (5,000+ 토큰), 관련 없는 파일도 읽고, 응답 시간 30초+ 원인: 22만 줄 코드를 한 번에 이해할 수 없음, 필요한 정보만 선별적으로 읽을 구조 없음, 단계적 정보 제공…]]></description><link>https://blog.ramsbaby.com/ai/ai-driven-codebase-documentation-part2/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/ai-driven-codebase-documentation-part2/</guid><pubDate>Wed, 22 Oct 2025 04:52:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 50개 블로그 포스팅에서 특정 주제 찾으려면 파일 탐색기 + 검색 5~10분 소요 원인: Claude가 내 블로그 내용을 모름, 매번 수동으로 복사/붙여넣기 필요 해결: MCP 서버 (Python FastAPI…]]></description><link>https://blog.ramsbaby.com/ai/mcp-server-with-private-git-webhook/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/mcp-server-with-private-git-webhook/</guid><pubDate>Sun, 12 Oct 2025 06:27:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 증상: 22만 줄 코드베이스에서 AI가 관련 파일을 못 찾고 토큰만 소진 (한 번에 5,000 토큰+), 엉뚱한 레거시 파일 수정 시도 원인: AI가 프로젝트 구조, 도메인 경계, 비즈니스 규칙을 모르고 전체 탐색, 컨텍스트 윈도우…]]></description><link>https://blog.ramsbaby.com/ai/ai-driven-codebase-documentation/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/ai-driven-codebase-documentation/</guid><pubDate>Sat, 04 Oct 2025 11:06:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 온라인 교육 플랫폼의 대시보드가 빈약해서 일일 수입 파악이 어려웠음 해결: Gmail + Google Calendar API를 연동하여 수입 자동 계산 시스템 구축 효과: 매일 밤 자동으로 수입 요약 메일 발송, 통화별 환율…]]></description><link>https://blog.ramsbaby.com/etc/lesson-revenue-manager/</link><guid isPermaLink="false">https://blog.ramsbaby.com/etc/lesson-revenue-manager/</guid><pubDate>Sat, 20 Sep 2025 11:26:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 로컬 스토리지 TTL 캐싱으로 같은 코드 설명을 매달 반복 생성 (불필요한 API 비용) 원인: 코드는 안 바뀌는데 캐시에 30일 TTL을 걸어서 매달 새로 생성 해결: Supabase 영구 캐싱 + hit_count 기반…]]></description><link>https://blog.ramsbaby.com/ai/ai-cache-optimization-with-supabase/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/ai-cache-optimization-with-supabase/</guid><pubDate>Wed, 17 Sep 2025 06:53:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 코드 블록이 많은 기술 블로그, 독자가 코드만 보고 이해하기 어려워 이탈 원인: 수동으로 모든 코드에 주석 달기는 시간 부족, 함수형 프로그래밍 등 낯선 패러다임은 특히 어려움 해결: OpenAI API + Netlify…]]></description><link>https://blog.ramsbaby.com/ai/ai-code-explainer-implementation/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/ai-code-explainer-implementation/</guid><pubDate>Wed, 03 Sep 2025 11:54:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 기기 제어 성공 시 푸시 알림, 로그 저장, 통계, 슬랙 알림 등이 한 메서드에 몰려서 결합도 급증 원인: Service 클래스가 너무 많은 책임을 가짐 (단일 책임 원칙 위반) 해결: Event-Driven…]]></description><link>https://blog.ramsbaby.com/architecture/event-driven-architecture-iot/</link><guid isPermaLink="false">https://blog.ramsbaby.com/architecture/event-driven-architecture-iot/</guid><pubDate>Fri, 08 Aug 2025 20:38:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 제조사마다 IoT API가 완전히 달라서 분기 처리하면 유지보수 지옥 원인: A사는 , B사는  등 엔드포인트, 인증, 응답 포맷이 전부 제각각 해결: Adapter 패턴으로 공통 인터페이스 정의, 제조사별 Adapter가…]]></description><link>https://blog.ramsbaby.com/architecture/multi-vendor-iot-integration/</link><guid isPermaLink="false">https://blog.ramsbaby.com/architecture/multi-vendor-iot-integration/</guid><pubDate>Thu, 24 Jul 2025 18:58:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 클린 아키텍처를 적용했지만 “도메인 로직과 애플리케이션 로직의 경계”가 모호해서 Service에 다 몰림 원인: 구조는 좋은데 비즈니스 도메인 정의가 불명확, “주문”이 뭔지 “결제”가 뭔지 명확한 정의 없음 해결: DDD…]]></description><link>https://blog.ramsbaby.com/architecture/ddd-toy-project-experience/</link><guid isPermaLink="false">https://blog.ramsbaby.com/architecture/ddd-toy-project-experience/</guid><pubDate>Sun, 16 Mar 2025 08:35:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 비즈니스 로직이 DB나 프레임워크에 강하게 의존해서 변경이 어렵고 테스트도 느림 원인: 레이어드 아키텍처(Controller-Service-Repository)는 외부 환경과 도메인이 너무 가까움 해결: 클린 아키텍처…]]></description><link>https://blog.ramsbaby.com/architecture/clean-architecture-personal-project/</link><guid isPermaLink="false">https://blog.ramsbaby.com/architecture/clean-architecture-personal-project/</guid><pubDate>Thu, 06 Mar 2025 14:03:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: Checked Exception 발생 시 데이터가 롤백되지 않고 일부만 저장됨 (데이터 정합성 깨짐) 원인: Spring @Transactional이 기본적으로 RuntimeException과 Error만 롤백하고…]]></description><link>https://blog.ramsbaby.com/spring/transactional-common-mistakes/</link><guid isPermaLink="false">https://blog.ramsbaby.com/spring/transactional-common-mistakes/</guid><pubDate>Sun, 02 Feb 2025 05:35:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: 정적 블로그에서 API 키를 프론트엔드에 넣으면 개발자 도구에 그대로 노출됨 원인: 로그인이 없으니 사용자 인증(JWT)이 불가능, 백엔드 서버도 없음 해결: Netlify Functions로 API 키를 환경변수에 숨기고…]]></description><link>https://blog.ramsbaby.com/architecture/static-blog-backend-communication/</link><guid isPermaLink="false">https://blog.ramsbaby.com/architecture/static-blog-backend-communication/</guid><pubDate>Sat, 04 Jan 2025 13:45:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 문제: REST API로 필드 많은 응답 → 불필요한 데이터까지 전송, 엔드포인트 20~30개 폭발, DTO 클래스 남발 원인: Over-fetching (필요한 것만 받을 수 없음), Under-fetching (여러 API 호출…]]></description><link>https://blog.ramsbaby.com/architecture/graphql-vs-rest-practical-guide/</link><guid isPermaLink="false">https://blog.ramsbaby.com/architecture/graphql-vs-rest-practical-guide/</guid><pubDate>Sun, 03 Nov 2024 11:15:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[서론의 서론 MSA(Micro Service Architecture)를 다루게 되면서 겪었던 의문점들 및 느낀점들을 정리해보려고 합니다. 내용이 조금 길어질 것 같아 여러 포스트로 나누어 진행하게 되었습니다.

서론
MSA란 무엇인가? MSA가…]]></description><link>https://blog.ramsbaby.com/etc/etc-post9-1/</link><guid isPermaLink="false">https://blog.ramsbaby.com/etc/etc-post9-1/</guid><pubDate>Wed, 11 May 2022 04:44:00 GMT</pubDate></item><item><title><![CDATA[No title]]></title><description><![CDATA[TL;DR 대상: AI 도구를 개발 생산성에 활용하고 싶은 백엔드 개발자 순서: MCP 이해 → 문서화 체계 → 실제 적용 효과: 반복 작업 자동화, 코드베이스 이해도 향상

AI 시대의 백엔드 개발자는 코드만 작성하는 것이 아니라, AI와…]]></description><link>https://blog.ramsbaby.com/ai/ai-dx-hub/</link><guid isPermaLink="false">https://blog.ramsbaby.com/ai/ai-dx-hub/</guid><pubDate>Sat, 06 Dec 2025 00:00:01 GMT</pubDate></item><item><title><![CDATA[No title]]></title><link>https://blog.ramsbaby.com/resume-en/</link><guid isPermaLink="false">https://blog.ramsbaby.com/resume-en/</guid><pubDate>Sun, 27 Jan 2019 16:21:13 GMT</pubDate></item></channel></rss>