전체 글 104

대용량 API 페이지네이션 처리에서 고려해야 할 두 가지

- 한 번의 응답을 어떻게 메모리 효율적으로 처리할 것인가 - 수많은 페이지 반복을 어떻게 안정적으로 끝까지 처리할 것인가 nextUrl 기반으로 페이지네이션된 API를 순회하면서 result 값을 DB에 적재하는 로직을 만들 때는 두 가지 축을 구분해서 접근하는 것이 좋다. 하나는 한 번의 응답을 어떻게 메모리 효율적으로 처리할 것인가이고, 다른 하나는 수많은 페이지 반복을 어떻게 끝까지 안정적으로 처리할 것인가이다.한 번의 응답을 메모리 효율적으로 처리하기가장 흔한 함정은 응답 전체를 문자열이나 트리로 통째로 읽는 방식이다.byte[] allBytes = inputStream.readAllBytes();JsonNode root = objectMapper.readTree(allBytes);이 방식은 두..

카테고리 없음 2026.07.28

JVM 메모리 구조

JVM 메모리 구조는 크게 모든 스레드가 공유하는 영역과 스레드마다 별도로 생성되는 영역으로 나뉩니다.각 영역의 역할은 다음과 같습니다.공유 영역 (모든 스레드가 공유)Method Area (Metaspace): 클래스 로더가 읽어들인 클래스의 메타데이터(필드, 메서드 정보, 런타임 상수 풀)와 static 변수를 저장합니다. Java 8부터는 PermGen 대신 네이티브 메모리 영역인 Metaspace가 이 역할을 담당합니다.Heap: new로 생성된 객체 인스턴스가 저장되는 공간입니다. GC(Garbage Collection)의 주요 대상이며, 내부적으로 Young Generation(Eden, Survivor 0/1)과 Old Generation으로 나뉩니다. 새로 생성된 객체는 Eden에 할당되고..

Spring 서블릿 아키텍처

Spring Boot 서블릿 아키텍처 흐름 정리Spring Boot 애플리케이션에서 하나의 HTTP 요청이 처리되는 과정은 여러 계층을 거친다. 클라이언트의 요청은 서블릿 컨테이너의 Filter Chain을 지나 DispatcherServlet에 도달하고, 그 안에서 HandlerMapping과 HandlerAdapter를 통해 실제 Controller까지 연결된다. 이 글에서는 전체 흐름을 정리하고, Filter Chain과 DispatcherServlet 내부 동작을 조금 더 깊게 다룬다.전체 요청 처리 흐름요청이 클라이언트에서 출발해 응답으로 돌아오기까지의 전체 경로는 다음과 같다.클라이언트가 HTTP 요청을 보낸다.서블릿 컨테이너에 등록된 Filter Chain이 요청을 순차적으로 통과시킨다.Fi..

Agentic 코딩 활용하기

project-root/├── CLAUDE.md # 루트 진입점 (간결하게)├── .claude/│ ├── settings.json # 팀 공유 설정│ ├── settings.local.json # 개인 설정 (gitignore)│ ├── agents/ # 서브에이전트 (역할 분리)│ │ ├── spring-boot-engineer.md│ │ ├── db-schema-reviewer.md│ │ └── api-contract-checker.md│ ├── commands/ # 슬래시 커맨드│ │ ├── new-api.md│ │ └──..

하네스 엔지니어링

하네스 엔지니어링 (Harness Engineering)요즘 Claude Code나 Cursor 같은 AI 에이전트를 효과적으로 쓰기 위해 .md 파일로 AI에게 컨텍스트를 주입하고 역할을 분리하는 방식. AI가 프로젝트 구조와 규칙을 이해하고 일관된 코드를 생성하도록 가이드 문서를 체계적으로 구성. 패키지 구성도my-project/│├── .claude/ # Claude Code 전용 설정│ ├── CLAUDE.md # 프로젝트 전체 컨텍스트 (메인 진입점)│ └── commands/ # 커스텀 슬래시 커맨드│ ├── review.md # /..

AI 2026.06.28

비관적 락 vs 낙관적 락 설명

핵심 개념두 락 방식의 차이는 "충돌이 일어날 것이라고 가정하냐, 아니냐" 입니다.비관적 락낙관적 락가정충돌이 자주 일어난다충돌이 거의 없다방식DB 레벨에서 미리 잠금버전으로 충돌 감지 후 재시도단점성능 저하 (대기)충돌 시 재시도 비용방식 1 — UPDATE로 처리하는 비관적 락PessimisticLock1가장 단순한 방식입니다. UPDATE like_count = like_count + 1 쿼리 자체가 원자적(atomic)으로 실행되기 때문에 DB가 행 레벨 잠금을 자동으로 처리합니다.@Transactionalpublic void likePessimisticLock1(Long articleId, Long userId) { articleLikeRepository.save( Articl..

인프런 2026.05.26

Skill Prompt, Tool Use, MCP — LLM 확장의 세 가지 방식

LLM을 실제 서비스에 적용하다 보면 세 가지 개념이 자주 등장한다. Skill Prompt, Tool Use, MCP. 비슷해 보이지만 역할과 동작 방식이 완전히 다르다.1. Skill Prompt개념Skill Prompt는 LLM에게 행동 규칙이나 도메인 지식을 텍스트로 주입하는 방식이다. 보통 .md 파일로 작성해두고 System Prompt 또는 User Prompt에 삽입해서 사용한다.동작 방식.md 파일 로드 → System/User Prompt에 삽입 → LLM이 읽고 규칙에 따라 응답LLM이 외부 무언가를 호출하는 게 아니라, 프롬프트 안에 담긴 지침을 읽고 스스로 판단해서 따르는 것이다.실제 코드 예시@Value("classpath:skills/math-parser.md")private ..

AI 2026.05.19

하네스 엔지니어링이란?

AI 에이전트 활용이 확산화 되면서 생긴 용어인 하네스 에 대해서 이야기 해보자. 하네스는 AI 에이전트를 안전하게 에이전트 활용이 확산화 되면서 생긴 용어인 하네스 에 대해서 이야기 해보자. 에이전트를 안전하게 운용하기 위한 설계 사고 방식이다. 하네스가 나온 배경은 AI 에이전트의 강력함에서 부터 나오기 시작했다. 이 강력함이 예측 불가능한 방향으로 가지 않도록 도와주는 것이 하네스이다. 잘못된 방향을 바로 잡는 역할이다. 여러 참고 글에서는 `하네스는 AI 에이전트를 억누르는 것이 아닌 안전한 방식으로 작동하도록 설계된 제어 구조 전체를 말한다` 라고 한다. 제어,감시,개선 이 3가지 기능을 통합적으로 담당한다.허용된 범위 내에서 행동할것, 동작의 상태와 출력을 실시간으로 기록할것, 오류나 이상 행..

AI 2026.05.13

[AI서비스] LLM 사용 서비스 실제 고려 사항.

상용화에 대한 고민AWS 운영 비용 vs 수익 최적화수익 구조를 짤 때 가장 중요한 건 비용(AWS + LLM 토큰)보다 수익이 커야 한다는 점입니다. 우선, 로컬 서버를 구성으로 어느정도 진행 과정의 퍼포먼스를 가지고 진행 하고 있다. 현실적으로 고민인 부분에 대해 정리를 해보자면,1. 서버에 대한 구성 구매 2. 어느정도 윤각이 잡히고 나서 로그인 보안 기능 적용3. 수학 문제에 대한 저작권 문제 / 서비스에 대한 저작권 문제에 대해 어떻게 알아보고 어떻게 처리할지 4. 여러 비용이 소모 할텐데 `수익성`에 대한 부분을 어떻게 풀어 나갈지.5. 추후 대용량 처리 및 서버에 문제가 생겼을경우에 대한 대비는 어떻게 할것인지. ( 저작권과 관련하여 데이터 로그 관리 등) 오버 엔지니어링 에 대한 고찰..

RAG 개념 완전 정리

RAG란?RAG는 Retrieval-Augmented Generation의 약자로, 검색한 자료로 AI 답변 능력을 강화한다 는 프로세스입니다.질문 → 검색 → 답변이 세 단계를 RAG라고 합니다. 임베딩(Embedding)이란?RAG를 이해하려면 먼저 임베딩을 알아야 합니다.임베딩은 텍스트의 의미를 숫자(벡터)로 표현하는 방법입니다. 의미가 비슷한 단어나 문장일수록 벡터 공간에서 가까운 위치에 놓이게 됩니다. 강아지와 개는 가까이, 강아지와 자동차 는 멀리 위치하는 식입니다.텍스트 → 임베딩 모델 → 벡터 배열 [0.12, -0.34, 0.78, ...]차원이 높을수록 의미를 세밀하게 표현할 수 있지만 처리 속도가 느려지므로, 용도에 맞는 적절한 차원을 선택해야 합니다.청킹(Chunking)이란?문서가..

AI/RAG 개념 2026.05.10