전체 글 197

[Java] StringTokenizer

✅ StringTokenizer의 모든 요소 (메서드 및 기능) StringTokenizer는 Java에서 문자열을 특정 구분자로 분리하는 클래스입니다.사용법이 간단하고 성능이 뛰어나며, split()과 유사하지만 재사용이 불가능한 단점이 있습니다. ✅ 1. StringTokenizer 생성자StringTokenizer는 총 3가지 생성자를 제공합니다.public StringTokenizer(String str) // 기본적으로 공백을 구분자로 사용public StringTokenizer(String str, String delim) // 사용자가 지정한 구분자(delim)를 사용public StringTokenizer(String str, String delim, boolean r..

BE/Java 2025.03.16

메시지 브로커(Message Broker)

⚡ 1. 메시지 브로커(Message Broker)란?메시지 브로커(Message Broker) 는 서로 다른 시스템 간의 메시지를 비동기적으로 송수신할 수 있도록 중간에서 관리하는 소프트웨어입니다. ✅ 메시지 브로커의 주요 역할 • 비동기 메시지 처리 → 발신자(Sender)와 수신자(Receiver)가 동시에 실행되지 않아도 메시지를 처리 가능 • 시스템 간 결합도(Dependency) 감소 → 직접 호출 대신 메시지 큐를 사용하여 서비스 간 느슨한 결합(Loosely Coupled) 가능 • 트래픽 관리 → 서비스가 과부하를 받지 않도록 메시지를 저장하고 순차적으로 전달 • 메시지 보장(Message Durability) → 메시지가 손실되지 않도록 안전하게 보관 • 확장성(Scalability) ..

Infra 2025.03.15

AI Agent

⚡ 1. AI Agent란?AI Agent(인공지능 에이전트) 는 특정 목표를 달성하기 위해 주어진 환경에서 데이터를 수집하고 분석하며, 자율적으로 행동하는 인공지능 시스템입니다. ✅ AI Agent의 주요 특징 • 자율적 의사 결정(Self-Governing) → 환경 데이터를 수집하고, 스스로 판단하여 행동 수행 • 학습 및 적응(Learning & Adaptation) → 데이터 기반으로 지속적인 성능 향상 가능 • 태스크 자동화(Task Automation) → 반복적인 작업을 자동화하여 효율성 극대화 • LLM(Large Language Model)과 결합 가능 → OpenAI GPT-4, Hugging Face, LangChain 등과 통합 ✅ AI Agent의 주요 활용 사례 • 자동화 챗봇..

AI 2025.03.14

[Spring Boot] Spring AI

⚡ 1. Spring AI란?Spring AI 는 Spring 생태계에서 AI 및 LLM(Large Language Model)을 쉽게 활용할 수 있도록 지원하는 프레임워크입니다.Spring Boot 기반의 애플리케이션에서 OpenAI, Hugging Face, LangChain 같은 AI 모델을 간편하게 통합할 수 있습니다. ✅ Spring AI의 주요 특징 • LLM (GPT-4, Gemini, LLaMA 등) 지원 • Prompt Management (프롬프트 관리) • RAG (Retrieval-Augmented Generation) 적용 가능 • Spring Boot와 자연스럽게 통합 • Vector DB (Pinecone, FAISS) 연동 가능 • 서버리스 AI API (OpenAI, Hug..

[RAG] RAG(Retrieval-Augmented Generation) & LangChain & Vector DB

⚡ 1. RAG (Retrieval-Augmented Generation)란?RAG(Retrieval-Augmented Generation) 는 LLM(대형 언어 모델)이 외부 지식을 검색(Retrieval)하여 응답을 생성(Generation)하는 기술입니다. ✅ RAG의 주요 특징: • LLM의 정보 한계를 보완 (실시간 검색 가능) • 정확한 응답(Fact-Based Generation) 제공 • LLM의 헛소리(Hallucination) 문제 완화 ✅ RAG 동작 과정:1️⃣ 사용자 질문 입력2️⃣ Vector DB에서 유사한 문서 검색3️⃣ 검색된 문서를 LLM에게 제공4️⃣ LLM이 문서를 기반으로 응답 생성 ⚡ 2. LangChain이란?LangChain 은 LLM과 외부 데이터(Vector..

AI 2025.03.12

[Java] 네이버 포매터(Naver Formatter)

⚡ 1. 네이버 포매터(Naver Formatter)란?네이버 포매터(Naver Formatter) 는 네이버(NAVER)에서 개발한 Java 코드 스타일 자동 정리 도구입니다.Java 코드를 일관된 스타일로 포맷팅(정렬 및 정리)하여 코드 가독성을 높이는 역할을 합니다. 📌 즉, Java 코드를 팀 내에서 동일한 스타일로 유지할 수 있도록 도와주는 도구! ✅ 주요 기능 • 자동으로 Java 코드 스타일을 정리하여 가독성 향상 • Checkstyle, Spotless, Google Java Formatter 등과 유사한 코드 포맷터 • Eclipse, IntelliJ, Gradle, Maven 등에서 적용 가능 ⚡ 2. 네이버 포매터 사용법네이버 포매터는 Eclipse 설정 파일을 기반으로 동작하며, ..

BE/Java 2025.03.11

[AWS] AWS S3(Simple Storage Service)

⚡ 1. AWS S3란?Amazon S3(Simple Storage Service) 는 AWS에서 제공하는 확장 가능한 객체 스토리지 서비스입니다.AWS S3를 사용하면 이미지, 동영상, 로그 파일, 백업 데이터, 정적 웹사이트 파일 등을 저장할 수 있습니다. 📌 AWS S3의 주요 특징 • 확장성 → 데이터를 제한 없이 저장 가능 (이론적으로 무제한) • 내구성 & 가용성 → 99.999999999% (11 9’s) 내구성 제공 • 보안성 → IAM, 버킷 정책, 암호화 지원 • 다양한 스토리지 클래스 지원 → 비용 최적화 가능 • 정적 웹 호스팅 가능 → HTML, CSS, JS 등을 업로드하여 웹사이트 운영 가능 • 서버리스 아키텍처와 통합 → Lambda, CloudFront, API Gatew..

Infra/Cloud 2025.03.10

[SonarQube] 소나큐브

⚡ 1. 소나큐브(SonarQube)란?소나큐브(SonarQube) 는 정적 코드 분석(Static Code Analysis) 도구로,소프트웨어의 버그, 코드 스멜(Code Smell), 보안 취약점(Security Vulnerabilities) 을 자동으로 분석하여 코드 품질을 향상시키는 도구입니다. ✅ 소나큐브의 핵심 기능 🔹 정적 코드 분석 → 코드 실행 없이 문제를 찾아냄🔹 코드 품질 분석 → 코드 스멜(Code Smell), 복잡도, 중복 코드 감지🔹 보안 취약점 검사 → OWASP Top 10, SAST(정적 애플리케이션 보안 테스트) 지원🔹 CI/CD 연동 가능 → Jenkins, GitHub Actions, GitLab CI, Bitbucket과 통합🔹 다양한 언어 지원 → Jav..

Infra/CI-CD 2025.03.09

[Java] 롬복과 어노테이션 프로세서

⚡ 1. 롬복(Lombok)이란?Lombok(롬복) 은 반복적인 보일러플레이트(Boilerplate) 코드를 자동으로 생성하는 Java 라이브러리입니다.예를 들어, Getter, Setter, 생성자, toString() 등을 직접 작성할 필요 없이 어노테이션만으로 자동 생성할 수 있습니다. 📌 Lombok을 사용하면 코드가 간결해지고 유지보수가 쉬워짐import lombok.Getter;import lombok.Setter;@Getter@Setterpublic class User { private String name; private int age;}📌 위 코드 실행 시 자동으로 getName(), setAge() 등의 메서드가 생성됨 ⚡ 2. Lombok은 어떻게 동작할까? (어노테이션..

BE/Java 2025.03.08

[Spring Boot] DispatcherServlet

⚡ 1. DispatcherServlet이란?DispatcherServlet 은 Spring MVC의 핵심 컨트롤러(Front Controller) 역할을 하는 서블릿입니다.클라이언트 요청을 받아 적절한 컨트롤러로 전달하고, 응답을 처리하는 역할을 합니다. 📌 쉽게 말하면? • 요청을 받고 → 컨트롤러에 전달 → 응답을 반환하는 중앙 컨트롤러 • Front Controller 패턴을 사용하여 모든 요청을 한 곳에서 처리 • Spring MVC에서 HTTP 요청을 처리하는 핵심 역할 수행사용자 → DispatcherServlet → 컨트롤러 → 서비스 → 리포지토리 → DB ↓ ViewResolver ↓ 응답..