전체 글
-
1. 컴파일러 수준(Java 컴파일 타임)@Servicepublic class UserService { private final UserRepository userRepository; // 생성자 파라미터 주입 public UserService(UserRepository userRepository) { this.userRepository = userRepository; }} 컴파일러는 단순히 생성자에 UserRepository 타입 파라미터가 필요하다는 사실만 기록한다.즉, 바이트코드 수준에서는UserService 를 만들려면 UserRepository 타입 인자가 필수라는게 명시된다.userRepository 는 final 이라서 생성자 호출 시 반드시 초기화되어 있어..
Spring Bean 생성 동작 과정1. 컴파일러 수준(Java 컴파일 타임)@Servicepublic class UserService { private final UserRepository userRepository; // 생성자 파라미터 주입 public UserService(UserRepository userRepository) { this.userRepository = userRepository; }} 컴파일러는 단순히 생성자에 UserRepository 타입 파라미터가 필요하다는 사실만 기록한다.즉, 바이트코드 수준에서는UserService 를 만들려면 UserRepository 타입 인자가 필수라는게 명시된다.userRepository 는 final 이라서 생성자 호출 시 반드시 초기화되어 있어..
2025.09.11 -
@ConditionalOnBean, @ConditionalOnExpression두개의 어노테이션들은 조건부 Bean 등록을 하는 어노테이션들이다.보통 @Configuration 클래스나 @Bean 메서드에 붙여서 특정 조건이 만족될 때만 Bean 등록할 수 있도록 한다. 1. @ConditionalOnBean정의: 어플리케이션 컨텍스트에 특정 Bean 이 존재할 경우 현재 Bean 을 등록하도록 조건을 거는 어노테이션용도: 어떤 기능이 다른 Bean 이 존재해야만 동작 가능한 경우 사용예시@Configurationpublic class MyConfig { @Bean public ServiceA serviceA() { System.out.println("================..
@ConditionalOnBean, @ConditionalOnExpression@ConditionalOnBean, @ConditionalOnExpression두개의 어노테이션들은 조건부 Bean 등록을 하는 어노테이션들이다.보통 @Configuration 클래스나 @Bean 메서드에 붙여서 특정 조건이 만족될 때만 Bean 등록할 수 있도록 한다. 1. @ConditionalOnBean정의: 어플리케이션 컨텍스트에 특정 Bean 이 존재할 경우 현재 Bean 을 등록하도록 조건을 거는 어노테이션용도: 어떤 기능이 다른 Bean 이 존재해야만 동작 가능한 경우 사용예시@Configurationpublic class MyConfig { @Bean public ServiceA serviceA() { System.out.println("================..
2025.09.09 -
🔑 STS(Git) 주요 용어 정리 1. CommitGit 개념 : 현재 변경된 파일(Working Tree → Staging Area)을 하나의 버전으로 저장하는 행위Git Staging 뷰에서 Staged Changes 에 있는 파일을 선택 → Commit 버튼메세지를 입력해야함🚩 결과 : 로컬 저장소(Local Repository)에만 기록된다. 아직 원격저장소에는 저장하지 않은 상태 2. PushGit 개념 : 로컬 저장소(Local Repository)에 Commit 한 데이터를 원격 저장소(Remote Repository) 에 업로드Team → Push Branch ... 또는 Git Staging 뷰에서 Commit and Push 가능🚩 결과 : 다른 팀원들이 원격 저장소에 있는 내..
STS git 사용용어 정리🔑 STS(Git) 주요 용어 정리 1. CommitGit 개념 : 현재 변경된 파일(Working Tree → Staging Area)을 하나의 버전으로 저장하는 행위Git Staging 뷰에서 Staged Changes 에 있는 파일을 선택 → Commit 버튼메세지를 입력해야함🚩 결과 : 로컬 저장소(Local Repository)에만 기록된다. 아직 원격저장소에는 저장하지 않은 상태 2. PushGit 개념 : 로컬 저장소(Local Repository)에 Commit 한 데이터를 원격 저장소(Remote Repository) 에 업로드Team → Push Branch ... 또는 Git Staging 뷰에서 Commit and Push 가능🚩 결과 : 다른 팀원들이 원격 저장소에 있는 내..
2025.09.02 -
🔑 기본 개념 JDK(Java Development Kit)자바 개발 도구 모음이다.자바 프로그램을 만들고(개발), 컴파일하고, 실행할 수 있다. JRE(Java Runtime Environment)자바 실행 환경이다.자바 프로그램을 실행만 할 수 있다. (개발할 수 없음) 📦 구성 요소 차이 1. JRE(자바 실행 환경)JVM(Java Virtual Machine) → 자바 바이트코드 실행=> JVM 에 있는 Class Loader 가 바이트코드로 컴파일된 .class 파일을 로드한다.Core Libraries (표준 클래스 라이브러리, java.utl, java.net, javax.* 등)지원 파일(보안, 국제화, 로더 등)👉 즉, .class / .jar 파일을 실행하는 데 필요한 최소 환..
Linux 환경에서 JDK 를 활용한 .java 파일 실행하기(JDK, JRE)🔑 기본 개념 JDK(Java Development Kit)자바 개발 도구 모음이다.자바 프로그램을 만들고(개발), 컴파일하고, 실행할 수 있다. JRE(Java Runtime Environment)자바 실행 환경이다.자바 프로그램을 실행만 할 수 있다. (개발할 수 없음) 📦 구성 요소 차이 1. JRE(자바 실행 환경)JVM(Java Virtual Machine) → 자바 바이트코드 실행=> JVM 에 있는 Class Loader 가 바이트코드로 컴파일된 .class 파일을 로드한다.Core Libraries (표준 클래스 라이브러리, java.utl, java.net, javax.* 등)지원 파일(보안, 국제화, 로더 등)👉 즉, .class / .jar 파일을 실행하는 데 필요한 최소 환..
2025.08.27 -
의도 분류(Intent Classification) 이란?사용자의 발화(질문/요청)가 무엇을 원하는지(목적·요구) 파악해 AI 가 어떤 행동이나 응답을 할지 결정하도록분류하는 기술이다.즉, 자연어 → 태그(의도 라벨)로 변환하는 과정이다. 의도 분류가 필요한 경우의도 분류가 필요한 건 LLM 이 단순 대답이 아니라, "외부 도구/기능"을 선택해야 할 때에 필요하다.꼭 의도분류가 필요한건 아니고 기본적인 텍스트 입력 → 텍스트 출력만 필요하다면 LLM만 있어도 된다. 예시User: "서울 날씨 알려줘"=> 그냥 답변(X), 날씨 API 호출(O)User: "PDF 요약해줘"=> PDF 파일 리트리버 실행(O)User: "DB에서 사용자 목록 보여줘"=> SQL 실행 도구 선택(O)이런 상황에서는 LLM 이..
의도 분류(Intent Classification)의도 분류(Intent Classification) 이란?사용자의 발화(질문/요청)가 무엇을 원하는지(목적·요구) 파악해 AI 가 어떤 행동이나 응답을 할지 결정하도록분류하는 기술이다.즉, 자연어 → 태그(의도 라벨)로 변환하는 과정이다. 의도 분류가 필요한 경우의도 분류가 필요한 건 LLM 이 단순 대답이 아니라, "외부 도구/기능"을 선택해야 할 때에 필요하다.꼭 의도분류가 필요한건 아니고 기본적인 텍스트 입력 → 텍스트 출력만 필요하다면 LLM만 있어도 된다. 예시User: "서울 날씨 알려줘"=> 그냥 답변(X), 날씨 API 호출(O)User: "PDF 요약해줘"=> PDF 파일 리트리버 실행(O)User: "DB에서 사용자 목록 보여줘"=> SQL 실행 도구 선택(O)이런 상황에서는 LLM 이..
2025.08.26 -
리트리버(Retriever) 란?RAG 에서 핵심 구성요소인 리트리버는 LLM 이 원하는 정보를 정확히 찾을 수 있도록 도와주는 검색 엔진 역할을 한다. ✅ 요약 리트리버(Retriever)는 사용자의 질문(프롬프트)을 벡터로 변환하고, Vector Store 에 저장된 문서 벡터들과 비교해서관련성(유사도)이 높은 문서 조각들을 찾아주는 역할을 한다. 📦 전체 구조에서의 위치 (RAG 흐름 다시 보기) 문서 수집(PDF 등)텍스트 추출Text Split(문장, 단락 등 조각으로 나누기)Embedding(나눠진 문서 조각들을 수치들로 변환하는 벡터화)벡터(Vector) db 에 저장 ← [이건 준비 단계]❓ 사용자가 질문함✅ 리트리버(Retriever)가 관련 문서 찾음관련 문서 + 질문 → LLM..
Retriever(리트리버) 검색기리트리버(Retriever) 란?RAG 에서 핵심 구성요소인 리트리버는 LLM 이 원하는 정보를 정확히 찾을 수 있도록 도와주는 검색 엔진 역할을 한다. ✅ 요약 리트리버(Retriever)는 사용자의 질문(프롬프트)을 벡터로 변환하고, Vector Store 에 저장된 문서 벡터들과 비교해서관련성(유사도)이 높은 문서 조각들을 찾아주는 역할을 한다. 📦 전체 구조에서의 위치 (RAG 흐름 다시 보기) 문서 수집(PDF 등)텍스트 추출Text Split(문장, 단락 등 조각으로 나누기)Embedding(나눠진 문서 조각들을 수치들로 변환하는 벡터화)벡터(Vector) db 에 저장 ← [이건 준비 단계]❓ 사용자가 질문함✅ 리트리버(Retriever)가 관련 문서 찾음관련 문서 + 질문 → LLM..
2025.08.22