java 95

[Spring Boot] HttpClient

HttpClient란?HttpClient는 자바 애플리케이션이 다른 서버나 API에 HTTP 요청(GET, POST 등)을 보내고 응답을 받기 위한 라이브러리 또는 인터페이스임.자바에서는 기본적으로 HttpURLConnection 이 존재하지만, 더 나은 사용성을 위해 다양한 HttpClient 구현체들이 존재함.1. HttpClient의 역할다른 서버(API 등)에 HTTP 요청 전송응답(Response)을 받아서 파싱REST API 호출, 외부 서비스 통신, 인증 서버 연결 등 다양한 곳에 사용됨2. 대표적인 HttpClient 라이브러리라이브러리설명Java 11+ HttpClient (java.net.http)자바 표준 HttpClient, Java 11부터 기본 제공Apache HttpClient..

[Java] ArrayDeque

📌 Java의 ArrayDeque란? ArrayDeque(배열 기반 덱, Double-Ended Queue)은 양쪽에서 삽입과 삭제가 가능한 자료구조로, 배열(Array) 기반으로 동작하는 덱(Deque) 임. ✅ 특징 • 양방향 삽입/삭제 가능 → addFirst(), addLast(), removeFirst(), removeLast() • 빠른 성능 → ArrayList보다 요소 추가/삭제가 빠름 (LinkedList보다도 빠를 수 있음) • 크기 제한 없음 → 동적으로 크기 조절 가능 • 스택(LIFO), 큐(FIFO)로 모두 사용 가능 • null 저장 불가 → NullPointerException 발생 1️⃣ ArrayDeque 선언 및 기본 사용법 📌 ArrayDeque 선언import j..

BE/Java 2025.04.02

[Java] 비동기 처리 (try-catch)

자바에서 비동기 처리 시 예외 처리 (try-catch) 자바에서 비동기 처리(Asynchronous Processing) 를 할 때 예외(Exception)를 적절하게 처리하는 것은 매우 중요함.비동기 코드에서는 기존의 try-catch 문이 제대로 동작하지 않을 수 있기 때문에 별도의 예외 처리 방식을 적용해야 함. 1️⃣ 기본적인 try-catch 블록 (동기 코드에서 예외 처리) 동기(Synchronous) 코드에서는 try-catch 블록을 사용하여 예외를 쉽게 처리할 수 있음.public class SyncTryCatchExample { public static void main(String[] args) { try { int result = 10 / 0;..

BE/Java 2025.03.28

[Java] 체인호출

자바에서 체인 호출(Method Chaining)이란? 자바에서 체인 호출(Method Chaining)이란 객체의 메서드를 호출한 후, 그 결과로 받은 객체를 이용하여 바로 다른 메서드를 연속해서 호출하는 방식을 말함.간단히 표현하면, 메서드가 연속적으로 연결되어 호출되는 형태임. 일반적으로 다음과 같은 형태를 말함.객체.method1().method2().method3();  체인 호출의 원리와 구조 체인 호출은 다음 두 가지 핵심 원리로 동작함. • 메서드가 반드시 객체(주로 자기 자신, 즉 this)를 반환해야 함. • 반환받은 객체를 통해 다음 메서드를 계속 호출하는 방식임. 즉, 이런 구조임.object.method1().method2().method3(); • 위 코드가 실행되는 과정: 1...

BE/Java 2025.03.24

[Java] File I/O

1. File I/O란? File I/O는 파일 입출력(File Input/Output) 의 줄임말임. 쉽게 말해 프로그램이 파일에서 데이터를 읽거나, 처리된 데이터를 파일로 저장하는 작업을 의미함. • Input(입력)파일 → 프로그램 방향으로 데이터를 읽음. • Output(출력)프로그램 → 파일 방향으로 데이터를 저장함. 즉, 파일에 데이터를 영구적으로 저장하거나 외부 데이터를 읽어오는 용도로 사용됨. 예를 들어, 메모장에 일기를 쓰는 행위는 Output이고, 작성된 일기를 나중에 읽어보는 행위는 Input임. 2. Java에서의 File I/O 처리 방법 Java에서는 파일 데이터를 처리할 때 크게 두 가지 스트림(Stream)을 제공함. ① 바이트 기반 스트림(Byte Stream) • 데이터를..

BE/Java 2025.03.18

[Java] BufferedReader

✅ BufferedReader의 모든 요소 (메서드 및 기능) BufferedReader는 입력을 효율적으로 처리하는 Java 클래스로, 버퍼를 사용하여 빠르게 문자열을 읽을 수 있는 기능을 제공합니다. ✅ 1. BufferedReader 생성자BufferedReader는 다음과 같은 생성자를 제공합니다.public BufferedReader(Reader in) // 기본 생성자 (Reader 객체 필요)public BufferedReader(Reader in, int bufferSize) // 버퍼 크기 지정 가능📌 Reader 객체 (InputStreamReader, FileReader 등)를 전달해야 함📌 기본 버퍼 크기는 8192 bytes (8KB) 📌 예제im..

BE/Java 2025.03.17

[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

[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..

[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

[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