Bldev's Blog

자바·스프링 백엔드 개발 노트

최신 글

[스프링] 스프링 AI

스프링 AI 스프링 AI란 자바/스프링 생태계에서 생성형 AI 기반 애플리케이션을 손쉽게 개발할 수 있도록 지원하는 추상화 프레임워크이다. 초기 생성형 AI 애플리케이션 개발은 한동안 랭체인(LangChain), 라마인덱스(LlamaIndex), Neo4j 파이썬 라이브러리, 다양한 LLM 프로바이더의 파이썬 라이브러리

2026. 3. 12.

[코틀린/스프링] 트랜잭션 관리

트랜잭션 관리 트랜잭션 관리란 데이터베이스의 상태를 변경하는 작업을 수행하는 과정인 트랜잭션을 관리하는 것을 의미한다. 데이터베이스의 상태 변경 작업에는 쓰기, 수정, 삭제가 있다. 일련의 작업을 수행하는 메서드 내에서 여러 작업 실행을 하나의 트랜잭션으로 실행할지 결정하여 작업 실행이 하나라도 실패하면 전체 작업 실행이

2025. 7. 30.

[자바/스프링] 필터

필터(filter)란 요청과 응답 처리 필터를 사용하여 요청과 응답에 대한 처리를 할 수 있다. 스프링 액추에이터와 필터 스프링 액추에이터는 내부적으로 필터를 사용하는 엔드포인트를 통해 HTTP 요청과 응답에 대한 트레이스(trace) 정보를 제공한다. 단, 요청과 응답 바디에 대한 정보는 제공되지 않는다. 의 메서드를

2025. 5. 12.

[스프링] 엘라스틱서치 구성

쿠버네티스 환경에서 엘라스틱서치 기본 설정 엘라스틱서치는 다음 설정 파일을 사용한다. : 기본적인 설정이 저장되는 파일이다. 클러스터 정보, 노드 정보, 데이터 파일 저장 경로 등을 설정할 수 있다. : 힙 메모리 사이즈, GC 옵션, 힙 메모리 덤프 등의 JVM 관련 설정을 할 수 있다. : log4j2 로깅과 관련된

2024. 9. 15.

[자바] MDC

MDC 여러 클라이언트의 요청을 동시적으로 처리하는 서버에서 로그 출력을 수행할 때 하나의 요청에 대해 여러 로그가 출력될 수 있다. 요청에 대한 작업 수행이 동기적으로 일어나는 것이 아니라면 여러 요청에 대한 로그 출력이 동시 다발적으로 발생하는데 특정 요청에 대한 로그를 식별하는 것이 필요하다. 로깅 라이브러리는 특정

2025. 1. 12.

[HTTP] 프록시 서버

프록시(proxy) 서버란 클라이언트와 서버 사이에 위치하여 서버 대신 클라이언트의 요청을 받는 중개 서버를 의미한다. 클라이언트 입장에서 프록시 서버는 서버 역할을 하는 반면, 서버 입장에서 프록시 서버는 클라이언트 역할을 한다. 프록시 서버는 클라이언트의 요청을 받아 처리하므로 서버와 동일하게 요청에 대한 HTTP 연

2024. 8. 15.

[자바/동시성] CAS와 Atomic 클래스

자바에서 기본적으로 래퍼(wrapper) 클래스는 불변(immutable)이다. 래퍼 클래스를 한 번 인스턴스화 한 이후에는 값을 변경할 수 없다. 래퍼 클래스를 메서드의 파라미터나 메서드 블록의 로컬 변수로 선언하여 사용하는 경우 불변성에 대해서만 주의하면 사용에 큰 문제가 되지 않는다. 동시성 프로그래밍에서 공유 객체

2024. 6. 10.

[자바/코틀린] 컬렉션 프레임워크

자바의 컬렉션 프레임워크 컬렉션 프레임워크(collections framework)는 컬렉션(collection) 자료 구조(data structure)를 구현한 자바의 공식 라이브러리이다. 컬렉션(collection)이란 데이터(요소)를 그룹화한 것으로 추상 자료형(ADT, abstract data type)을 의미한다

2024. 5. 15.

[자료 구조/알고리즘] 문자열

문자열은 연속된 문자들이 그룹화되어 구성된 자료 구조이다. 따라서 데이터를 그룹화한 추상 자료형인 컬렉션(collection)의 다양한 자료 구조로 문자열을 구조화할 수 있으며 다양한 자료 구조 탐색 알고리즘을 사용하여 부분 문자열들을 탐색 및 비교하는 등의 문제를 해결할 수 있다. 선형 컬렉션 그래프 문자열을 그래프 자

2025. 7. 25.

[자료 구조/알고리즘] 백트래킹

백트래킹(backtracking)(또는 역추적) 알고리즘이란 최적의 해결책을 찾기 위해 모든 가능한 방법을 후보(candidate)로 구성한 후, 점진적으로 후보들을 시도하면서 유효한 후보가 아닐 경우(문제의 정답 조건을 만족하지 않을 경우) 문제 해결 과정에서 제외하고 되돌아가 다른 후보를 시도(백트랙)하는 과정을 반복

2025. 7. 25.

[자료 구조/알고리즘] 백트래킹 구현

N 퀸 문제 노드: 퀸들의 현재 배치 상태 간선: 한 행에서 다음 행으로 퀸을 놓는 것 가지치기: 퀸을 놓으려는 위치가 이미 다른 퀸의 공격 범위에 있는 경우 퀸을 배치하지 않는 것 루트 노드: 퀸이 놓이지 않은 초기 상태 리프 노드: 더 이상 퀸을 놓을 수 없는 최종 상태 정답인 경우: 모든 퀸이 놓인 상태 정답이 아닌

2025. 7. 25.

[자료 구조/알고리즘] 연결 리스트 구현

단일 연결 리스트 더미 노드 미사용 더미 노드 사용 이중 연결 리스트 더미 노드 미사용 더미 노드 사용 LRU(least recently used) 캐시 구현

2025. 7. 25.

글 더 보기

자연어처리 · LLM 정렬 · 강화학습 · 파인튜닝

RLHF 없이 LLM 정렬하기: DPO가 보상 모델을 대체하는 방법

2026. 9. 2.

연구 배경 및 핵심 문제 의식 대규모 언어 모델(LLM)이 사람의 의도에 부합하도록 행동하게 만드는 일, 이른바 '정렬(alignment)' 문제는 오늘날 AI 연구의 핵심 과제다. 지금까지 가장 널리 쓰인 접근법은 인간 피드백 기반 강화학습( )이다. 는 크게 세 단계로 나뉜다. 먼저 ( )으로 기본 역량을 갖춘 정책

모델 학습 최적화 · 분산 학습 · AI 인프라 · 자연어처리

DeepSeek-V3의 효율적 학습 전략

2026. 9. 2.

연구 배경 및 핵심 문제 의식 대규모 언어 모델의 성능이 파라미터 규모와 비례하여 향상된다는 사실은 이제 상식에 가깝다. 그러나 수백억, 나아가 수천억 개의 파라미터를 가진 모델을 실제로 훈련하고 서빙하는 일은 연구소가 보유한 하드웨어 예산의 한계를 정면으로 마주하는 작업이다. 는 671B 파라미터 규모의 Mixture

논문 리뷰 · LLM 에이전트 · 프롬프트 최적화 · 인과 추론

죽은 컨텍스트 절제: ContextCite와 AttriBoT으로 에이전트 프롬프트 48% 다이어트하기

2026. 9. 1.

1. 연구 배경 및 프롬프트 인플레이션의 함정 자율 AI 에이전트(Tool using Agents)를 프로덕션에 배포할 때, 엔지니어들이 겪는 가장 흔한 실패 패턴은 프롬프트 인플레이션(Prompt Inflation) 이다. 에이전트가 예외 상황에서 길을 잃지 않도록 수많은 매뉴얼, 방대한 시스템 지침, 으로 가져온 5~

논문 리뷰 · 자연어 처리 · 딥러닝 · 기계 번역 · 트랜스포머

트랜스포머가 어텐션만으로 세상을 바꾼 방법

2026. 8. 27.

1. 연구 배경 및 핵심 문제 의식 2017년 이전까지 자연어 처리의 시퀀스 변환 과제는 , 특히 와 이 장악하고 있었다. 위에 어텐션 메커니즘을 얹은 이 모델들은 당시 기계 번역의 사실상 표준이었다. 그러나 이 패러다임에는 태생적인 한계가 존재했다. "Recurrent models typically factor comp

논문 리뷰 · 자연어 처리 · 딥러닝 · 기계 번역 · 트랜스포머

순환도 합성곱도 없다: 트랜스포머가 어텐션만으로 세상을 바꾼 방법

2026. 8. 27.

1. 연구 배경 및 핵심 문제 의식 2017년 이전까지 자연어 처리의 시퀀스 변환 과제는 , 특히 와 이 장악하고 있었다. 위에 어텐션 메커니즘을 얹은 이 모델들은 당시 기계 번역의 사실상 표준이었다. 그러나 이 패러다임에는 태생적인 한계가 존재했다. "Recurrent models typically factor comp

검색 증강 생성 · 인공지능

[RAG, AI] 벡터 유사도 검색과 RAG

2026. 3. 12.

벡터 유사도 검색 벡터 유사도 검색(vector similarity search)(또는 벡터 검색)이란 벡터로 표현되는 데이터를 검색하는 데이터 검색 방법이다. 벡터란 단어, 문장, 문서, 이미지, 영상 데이터의 숫자 표현이다. 머신러닝 모델과 인공지능 응용 애플리케이션에서 주로 사용되는 개념이다. 벡터는 데이터 간의 의

게시글을 더 불러오는 중...