Java64 [JAVA] 사용자 정의 예외 만들기 안녕하세요.오늘은 사용자 정의 예외를 만들어보겠습니다. 1. Checked 예외와 Unchecked 예외의 차이와 특징(1) Checked 예외 (체크드 예외)컴파일러가 예외 처리를 강제합니다.예외가 발생할 수 있는 코드를 사용할 때, 반드시 try-catch로 처리하거나 throws로 선언해야 합니다.주로 외부 환경(파일 입출력, 네트워크, 데이터베이스 등)과 관련된 예외입니다.예시: IOException, SQLExceptiontry { FileReader fr = new FileReader("test.txt");} catch (FileNotFoundException e) { System.out.println("파일이 없습니다!");} (2) Unchecked 예외 (언체크드 예외)컴파일러.. 2025. 4. 24. [Java] HttpClient 사용해서 OpenAI GPT API 호출하기 안녕하세요 오늘은 OpenAI 에서 제공하는 API 를 호출해보도록 하겠습니다. OpenAI의 GPT 시리즈는 대표적인 LLM 중 하나이며, 우리는 OpenAI에서 제공하는 API를 통해 이 모델에 직접 질문을 보내고 응답을 받아보겠습니다. 즉, “프롬프트”라는 입력을 전달하고, 모델이 생성하는 자연어 응답을 받아볼 수 있습니다. LLM(Large Language Model, 대규모 언어 모델) 이란 말그대로 "엄청 큰 언어 모델" 입니다.수십억 개 이상의 단어, 문장, 문서를 학습해서 사람처럼 문장을 이해하고 생성하는 인공지능을 의미합니다. 1. 먼저 open ai 홈페이지에서 API 인증 키를 발급 받습니다. 2. Http 통신 (HttpClient) 으로 오픈 AI 의 서버에 요청.. 2025. 4. 23. [Java] 옵저버 패턴 활용 예시 구현하기 오늘은 옵저버 패턴을 활용해 데이터를 업데이트하는 예시를 구현해보겠습니다. 옵저버 패턴은 주체(subject) 라 불리는 객체가 해당 객체 자신에게 의존하는 관찰자들(observer)의 목록을 관리하고, 주체의 상태가 변경될때마다 관찰자들에게 알려주는 디자인 패턴 입니다. Main 클래스public class Main { public static void main(String[] args) { // Subject(주체) 생성 Subject subject = new Subject(); // Observer(관찰자) 생성 Observer observer1 = new ConcreteObserver("Observer 1"); Observe.. 2025. 4. 19. [JAVA] 예외 처리(Exception Handling) 1. 예외(Exception) vs 오류(Error)프로그래밍을 하다 보면 예외(Exception)와 오류(Error)라는 단어를 자주 접하게 됩니다. 자바에서 예외(Exception)와 오류(Error)는 모두 실행 중에 발생하는 문제 상황을 나타냅니다. 하지만, 이 둘은 본질적으로 다릅니다.(1) 예외(Exception)정의:예외는 프로그램 실행 중에 발생할 수 있는 예상 가능한 문제입니다.예를 들어, 파일을 읽으려는데 파일이 없거나, 배열의 잘못된 인덱스에 접근하는 경우가 이에 해당합니다.특징:주로 프로그래머의 실수나 외부 환경에서 발생합니다.예외 처리(Exception Handling)를 통해 문제를 복구하거나 적절히 대처할 수 있습니다.예외는 Exception 클래스를 상속받아 구현됩니다.예시:.. 2025. 4. 17. [Java] Apache POI로 Excel 파일을 .txt로 변환하기 안녕하세요 오늘은 Apache POI 라이브러리를 사용하여 엑셀 파일을 텍스트 파일로 변환해보도록 하겠습니다 기존 엑셀 파일입니다 Main.javapublic class Main { public static void main(String[] args) throws Exception { FileInputStream fis = new FileInputStream("엑셀파일이 저장되어 있는 경로/vocab_sample.xlsx"); Workbook workbook = new XSSFWorkbook(fis); Sheet sheet = workbook.getSheetAt(0); BufferedWriter writer = new BufferedWrite.. 2025. 4. 16. [Java] 자바 Record 불변 데이터 객체 쉽게 만들기 (Java 14+) 레코드(Record)란?Java 14부터 도입된 record는 불변(immutable) 데이터를 담기 위한 간결한 클래스 문법입니다.우리가 흔히 사용하는 DTO(Data Transfer Object)나 VO(Value Object) 클래스보다 훨씬 간단하고 명확하게 데이터를 표현할 수 있죠. 불변(Immutable) 데이터란?한 번 만들어진 이후, 내부 상태(값)를 바꿀 수 없는 객체를 의미.즉, 객체가 생성되고 나면 필드 값을 변경할 수 없고 외부에서 setter로 값을 바꾸는 것도 불가능 불변 객체는 데이터를 바꿀 수 없으므로,여러 스레드가 동시에 접근해도 동기화(synchronized) 처리 없이 사용할 수 있음. 예) 이 클래스는 setName()을 통해 객체의 상태(이름)를 바꿀 수 있어 → .. 2025. 4. 14. [JAVA] Optional 클래스로 NullPointerException 방지하기 안녕하세요.오늘은 Optional 클래스를 활용해서 NullPointerException을 방지하는 방법을 알아보겠습니다. 1. NullPointerException이란?NullPointerException은 널값을 참조하려고 할 때 발생하는 런타임 에러입니다. 예를 들어, 아래 코드는 널값을 참조하려고 하기 때문에 에러가 발생합니다.String value = null;System.out.println(value.length()); // NullPointerException 발생 이 문제를 해결하기 위해 우리는 흔히 if문을 사용하여 널 체크를 합니다.if (value != null) { System.out.println(value.length());} else { System.out.prin.. 2025. 4. 10. [Java] Queue 구현 예제 1. Queue 구현1.1. Queue의 개념Queue는 선입선출(FIFO, First In First Out) 방식의 자료구조입니다. 먼저 들어온 데이터가 먼저 나가는 구조입니다. 일상적인 예로는 줄 서기를 생각할 수 있습니다. 앞에 있는 사람이 먼저 나가는 구조입니다.1.2. 구현 방법Queue는 배열을 사용하여 구현할 수 있으며, front와 rear 포인터를 관리하면서 큐의 앞부분과 뒷부분을 추적합니다. 배열을 이용한 고정 크기 큐를 구현할 수 있습니다.1.3. Queue의 기능enqueue(value): Queue에 값을 추가.dequeue(): Queue에서 값을 제거하고 반환.peek(): Queue의 맨 앞 값을 확인(삭제하지 않음).isEmpty(): Queue가 비었는지 확인.isFul.. 2025. 4. 7. [JAVA] Callable과 Future로 비동기 작업 이해하기 비동기 프로그래밍은 현대 애플리케이션 개발에서 필수적인 기술입니다. 자바에서는 비동기 작업을 효율적으로 처리하기 위해 Callable과 Future라는 인터페이스를 제공합니다. 이 글에서는 비동기의 개념부터 Callable과 Future를 활용한 실질적인 예제까지 차근차근 설명하겠습니다.비동기란 무엇인가?비동기 작업이란 작업을 실행한 후 해당 작업이 완료될 때까지 기다리지 않고 다른 작업을 수행할 수 있는 방식을 말합니다. 이는 멀티쓰레드 환경에서 특히 유용하며, 다음과 같은 특징을 갖습니다:병렬 처리: 여러 작업을 동시에 실행하여 처리 속도를 높임.작업 대기 최소화: 작업 완료를 기다리지 않고 다른 작업을 수행 가능.효율성: 시스템 자원을 효율적으로 활용.자바에서는 이러한 비동기 작업을 구현하기 위해 .. 2025. 4. 3. 이전 1 2 3 4 ··· 8 다음