2025/04 8

IntelliJ JavaDoc 템플릿 설정 및 사용법 정리

메소드 주석을 원하는 템플릿으로 자동 생성할 수 없나?그래서 방법을 정리해보기로 했다. 기존 사용 방법 (Mac 기준)1. /** 입력 후 EnterIntelliJ IDEA에서는 메소드 위에 /**를 입력하고 Enter를 누르면 기본 JavaDoc 양식이 자동으로 생성된다.하지만 이 방식은 IntelliJ에 기본 내장된 형식을 따르기 때문에, 별도로 설정한 커스텀 템플릿은 적용되지 않는다. 2. Command + Option + Shift + G커스텀 템플릿을 적용하려면 반드시 Command + Option + Shift + G (Generate JavaDoc) 단축키를 사용해야 한다.따라서 이 글에서는 IntelliJ 기본 템플릿 대신, 직접 설정한 템플릿을 적용하는 방법을 소개한다.JavaDoc..

DevLog/Intellij 2025.04.27

Gradle 의존성 정리

implementation, api, compileOnly, runtimeOnly 차이?이름만 보고 쓰기엔 헷갈려서 정리해두기로 했다. ✅ 기본 개념 요약키워드상황컴파일 시 포함실행 시 포함다른 모듈에서 사용implementation내부 구현용. 외부에는 노출하지 않음✅✅❌api외부에 노출되는 라이브러리✅✅✅compileOnly컴파일만 필요. 실행 시엔 없어야 함✅❌❌runtimeOnly런타임에만 필요. 컴파일엔 불필요❌✅❌ 📌 키워드별 설명과 예시1. implementationimplementation 'org.springframework.boot:spring-boot-starter-web' 대부분의 의존성은 이걸로 선언하면 충분하다.implementation은 다른 모듈에서 이 모듈을 의존하더라도..

DevLog/Java 2025.04.25

Java와 Spring Boot 버전 조합 정리

Java 몇 버전에 Spring Boot 뭐 써야 하지?그래서 그 결과를 LTS 중심으로 정리해두기로 했다. ✅ Java 버전별 특징 (LTS 기준)버전출시주요 특징비고82014람다, Stream API, Optional, java.time레거시의 주력, 여전히 많이 사용됨112018var, HttpClient, isBlank, GC 개선Java 8 이후 가장 안정적으로 자리잡은 버전172021record, sealed class, switch 개선, 텍스트 블록Spring Boot 3.x의 최소 요구 버전212023패턴 매칭, 가상 쓰레드 (Virtual Threads)최신 LTS, 일부 기능은 실험적 적용 단계💡 Java는 8 이후로 6개월 주기의 릴리스 체계를 따르며, 주요 LTS는 11, 17,..

DevLog/Java 2025.04.25

LangChain #5 – 챗봇 구현

이전 글 LangChain #4 – LangChain 도구(tool)란 무엇인가? 에서는 LangChain 도구를 정의하고, 이를 Agent로 연결해 자동 호출과 응답 생성 구조까지 구현해보았다.이번 글에서는 이 Agent를 백엔드 API로 감싸고, 간단한 웹 UI를 붙여 실제 챗봇 형태로 동작하도록 만드는 과정을 처음부터 한 번에 정리해보려고 한다.프로젝트 목표 - LangChain을 활용한 문서 기반 챗봇 구축- FastAPI로 API 서버 구현- 간단한 HTML/CSS/JS로 챗봇 웹 UI 연결까지 1. 프로젝트 생성 및 기본 세팅프로젝트 생성 및 파이썬 버전 설정# 프로젝트 생성poetry new faq-chatbot# 프로젝트로 이동cd faq-chatbot# 파이썬 버전 설정poetry env..

DevLog/LangChain 2025.04.17

LangChain #4 – LangChain 도구(tool)란 무엇인가?

LangChain은 LLM을 중심으로 다양한 기능을 조합할 수 있는 프레임워크로앞선 글들에서는 주로 프롬프트, 문서, 체인 중심으로 구성했지만 LangChain에서 진짜 유용한 기능 중 하나는 바로 도구(tool)이다. 이번 글에서는 도구(tool)에 대한 개념과 사용하는 방법을 정리해보려 한다.LangChain 구성요소구성요소설명LLM텍스트 응답 생성Prompt입력 포맷 정의Chain여러 구성요소 연결 흐름Retriever유사한 문서 검색ToolLLM이 사용할 수 있는 외부 기능Agent여러 도구를 상황에 따라 선택적으로 실행 도구(tool)란?도구(tool)는 함수, API, 시스템 명령어 등 '행동 가능한 것들'을 래핑한 구성이다.LangChain에서는 @tool 데코레이터를 통해 함수를 도구로 ..

DevLog/LangChain 2025.04.15

LangChain #3 – 문서 기반 챗봇 구조 이해와 RAG 실습

이전글 LangChain #2 - 개발 환경 세팅 + LLM + 문서 기반 답변에서는 텍스트 문서를 프롬프트에 통째로 넣고 LLM에게 질문과 함께 전달해 응답을 생성했다.짧은 문서라면 충분히 잘 작동하지만, 문서가 길거나 여러 개일 경우에는 토큰 한도, 성능, 관리 면에서 명확한 한계가 존재한다. 이번 글에서는 그 구조를 더 유연하게 확장한 RAG(Retrieval-Augmented Generation) 개념을 소개하고, LangChain으로 이를 직접 구현해 보려고 한다.직접 삽입 방식의 한계[문서 내용] + [질문] → [LLM 프롬프트] → [응답] 직접 삽입 방식의 경우 문서를 직접 프롬프트에 넣기 때문에 구현이 매우 간단하다.하지만 이 방식은 문서가 길어지거나 여러 개일 경우, LLM의 입력 한..

DevLog/LangChain 2025.04.15

LangChain #2 - 개발 환경 세팅 + LLM + 문서 기반 답변

이전글 LangChain #1 - 어디에 쓰이는 물건인가 에서는 이전글 LLM, LangChain, LangGraph, RAG, Agent 개념을 간단히 정리했다. 이번 글에서는 개발 환경을 세팅하고. txt 파일을 불러와 문서 내용을 기반으로 답변을 생성하는 구조까지 실습해보려고 한다.Python 개발 환경 준비1. pyenv 설치pyenv는 여러 버전의 Python을 설치하고 전환할 수 있게 해주는 도구이다. 설치 후 쉘 설정 파일(~/. zshrc, ~/. bashrc 등)에 아래 내용을 추가하고 변경 사항을 적용한다.# 설치 (macOS 기준)brew updatebrew install pyenv# 쉘 파일안에 추가export PYENV_ROOT="$HOME/.pyenv"export PATH="$P..

DevLog/LangChain 2025.04.12

LangChain #1 - 어디에 쓰이는 물건인가

요즘 LLM, LangChain, LangGraph, RAG, AI Agent 같은 단어들이 자주 보인다. 하나하나 생소하고, 비슷하게 느껴졌는데 조금씩 정리해 보니 각자 역할이 다 있었다.지금부터 내가 공부하면서 이해한 만큼 정리해보려고 한다.1. LLM (Large Language Model) 대량의 텍스트를 학습한 언어 모델사용자가 입력한 문장을 보고 그에 맞는 응답을 생성해 내는 말 그대로 뇌 역할을 하는 AIGPT나 Claude, Gemini 같은 모델들이 여기에 해당된다.2. LangChainLLM을 실제 애플리케이션에서 쓰기 위해 등장한 프레임워크프롬프트, 입력/출력, 외부 함수 호출, 문서 검색 등 여러 요소들을 조립해서 하나의 흐름으로 만들 수 있게 해 준다.LLM을 실제로 쓸 수 있게..

DevLog/LangChain 2025.04.11