반응형

JAVA 15

[JAVA]Java 23 업데이트: 새로운 기능과 예외 처리 최적화

2025년이 되니 Java가 또 한 번 업그레이드됐네요. Java 23이 작년(2024년 9월)에 릴리스됐지만, 올해 들어서야 실무에서 본격적으로 써보는 분들이 많아지는 것 같아요. 오늘은 Java 23의 새로운 기능들을 살펴보고, 특히 예외 처리 최적화 부분에 초점을 맞춰볼게요.! 🚀Java 23이 왜 2025년에 핫할까?Java 23은 개발자 생산성을 높이는 데 초점을 맞췄어요. Oracle의 릴리스 노트에 따르면, 성능 향상, 동시성 개선, 그리고 예외 처리 같은 영역에서 큰 변화가 있었어요. 특히, 멀티스레드 환경에서 에러 핸들링이 훨씬 수월해졌어요. 2025년 들어 AI/ML 앱이나 클라우드 네이티브 개발에서 Java를 쓰는 분들이 많아지면서, 이런 기능들이 빛을 발할 거예요. 예전 버전에서 ..

JAVA 2025.09.10

[2025 AI 트렌드]: Java/Spring Boot 앱에 Generative AI 통합하는 방법

2025 AI 트렌드: Java/Spring Boot 앱에 Generative AI 통합하는 방법"2025 AI 트렌드: Generative AI 툴(예: Grok, GPT 변형)로 Java/Spring 앱 통합하는 방법". 2025년 들어 Java는 여전히 엔터프라이즈급 애플리케이션의 backbone으로 자리 잡고 있으며, AI 통합이 대세가 되고 있어요. 이 글에서는 Generative AI를 Java/Spring Boot 앱에 통합하는 실무적인 방법을 단계별로 설명하겠습니다. 초보자도 따라할 수 있도록 코드 예시를 포함했어요.왜 2025년에 Java/Spring Boot와 AI 통합이 중요할까?2025년 Java 트렌드를 보면, AI/ML 통합이 핵심입니다. 예를 들어, DeepLearning4J나..

JAVA 2025.09.09

NullPointerException을 우아하게?? 해결하는 방법, 자바 Optional 완벽 가이드

"개발자를 괴롭히는 가장 흔한 에러" 자바 개발자라면 누구나 한 번쯤 java.lang.NullPointerException(널포인터 예외)이라는 빨간 에러 메시지를 마주하고 좌절해본 경험이 있을 겁니다. if (a != null) 코드를 수도 없이 반복하다가 결국 어딘가에서 널 체크를 빼먹어 프로덕션 서버가 멈추는 악몽을 겪기도 하죠.자바 8부터 도입된 Optional는 이 끔찍한 널포인터 예외를 우아하고 안전하게 다룰 수 있게 해주는 특별한 컨테이너 클래스입니다. 오늘은 Optional이 정확히 무엇이고, 어떻게 사용해야 하는지 파헤쳐 보겠습니다.1. Optional, 도대체 넌 누구니?Optional은 단일 객체를 담을 수 있는 '컨테이너'입니다. 마치 값(T)이 담겨있을 수도 있고, 비어 있을 수..

JAVA 2025.09.09

JDBC 의 Connection, Statement, ResultSet close 잘 하기

JDBC 의 Connection, Statement, ResultSet close 잘 하기 요즘은 프레임워크 기반으로 프로젝트를 구성해서 JDBC API 를 직접 쓰는 경우는 잘 없다. 그래도 레거시 시스템이나 직접 JDBC API 를 사용할 일이 있을 때를 대비하여 Connection, Statement, ResultSet 을 잘 닫는 방법을 정리한 글이다. 더불어 리소스 close 처리 개선을 위해 Java 7, 9 에서 등장한 try-with-resources 사용 방법을 알아보자. (Java 7 에서 try-with-resources 가 처음 등장했고, Java 9 에서 보다 향상되었다.) Table of Contents Connection, PreparedStatement, ResultSet 닫..

JAVA 2020.06.22

Java 입출력, BufferedReader, StringTokenizer

자바의 입력 Class Scanner, BufferedReader, StringTokenizer BufferedReader, StringTokenizer 는 문자열로 활용하기 위하여 사용. BufferedReader를 사용하는 것이 Scanner를 사용하는 것보다 빠르다. BufferedReader는 문자열에 최적화 되어 있음. Scanner를 사용했을시 입력 형태. //Scanner를 사용했을시 입력 형태. Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // int long l = sc.nextLong(); // int String s = sc.next(); // String String s = sc.nextLine(); // String Bu..

JAVA 2020.04.08

JAVA 예외처리

예외처리란? 일단 예외란 프로그래밍 소스코드를 작성하여 컴파일과정에서는 문제를 발견하지 못하고 정상적으로 컴파일이 진행되었으나, 프로그램을 실행중에 발생하는 오류사항들을 대체로 예외라고 정의합니다. ex) 범위를 넘어선 배열접근, 정수를 0으로 나누는 경우, Null포인터 오류등이 있습니다. 그럼 이러한 오류가 발생하면 개발자는 어떻게 처리를 해주어야 하느냐? 처리하는 방법에는 여러가지가 있겠는데 어떤 에러가 발생할지 알고 있다면 Excepiton클래스명을 직접 명시해주거나 아니면 Excepiton을 통해 한꺼번에 처리해주는 방법이 있을 수 있습니다. try ~ catch문을 사용하는 방법부터 확인해보겠습니다. 기본적으로 try ~ catch문의 구조는 아래와 같아요. try { 예외가 생길 가능성이 있..

JAVA 2020.04.07

JAVA isFile(),isDirectory(),exists() 비교

오늘 포스팅에서는 'isFile(),isDirectory(),exists()를 비교'하는 포스팅을 작성하려고 합니다. 세가지 메소드는 파일/폴더가 있는지 확인하여 파일/폴더가 없어서 생기는 에러를 방지하기 위해 주로 사용됩니다. 1) 메소드 비교 경로.isFile() 경로가 file인지 확인한다. 경로.isDirectory() 경로가 directory(folder)인지 확인한다. 경로.exists() 경로에 file/directory(folder)가 존재하는지 확인한다. 2) 실제 결과 비교 ① 테스트할 디렉토리에 파일과 하위디렉토리를 넣어두었습니다. 아래의 [사진1]을 보시면 "C:\data\input\TestFile"에 파일 2개 (0000.txt,0001.txt)와 디렉토리(0002)가 있는것을 알..

JAVA 2020.03.31

JAVA 디자인 스트래티지 패턴

1. 정의 스트래티지 패턴(Strategy Pattern) 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. 스트래티지패턴을 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할수 있다. 일반적으로 서브클래스를 만드는 방법을 대신하여 유연성을 극대화시키는 용도로 사용한다. 디자인원칙 중 변경이 필요한 부분의 분리, 상속보다는 구성을 활용하라는 원칙을 적용한 패턴 스트래티지 패턴은 정의와 같이 알리즘군을 정의하여 유연하게 알고리즘을 변경하는 용도로 사용되는 디자인 패턴입니다. 다음으로 제가 좋아하는 캐릭터인 아이언맨을 이용한 예시와 함께 스트래티지 패턴을 더 자세하게 알아보겠습니다. 2. 예시: 개요 아이언맨인 토니 스타크에게는 다양한 종류의 아이언맨 수트가 있습..

JAVA 2020.01.02

JAVA 은닉화 ( encapsulation ) : 캡슐화

- 캡슐화 개념 캡슐화는 일반적으로 변수와 클래스를 하나로 묶는 작업이다. 캡슐화의 중요 목적은 중요한 데이터를 보존,보호하기 위해 사용하는 것이다. 즉 캡슐화는 클래스에 담는 내용중 중요한 데이터나 기능을 외부에서 접근하지 못하게하기 위해 사용한다고 알아 두면 된다. 캡술화 = 은닉성 이라고 생각하면 쉽다. - 캡슐화 방법 1. 멤버 변수 앞에 접근 제어자 private를 붙인다. (private: 자기 클래스에서만 접근할 수 있는 것 ) 2. 멤버 변수에 값을 넣고 꺼내 올 수 있는 메소드를 만든다 (접두어 set/get을 사용해 메소드를 만든다.) 구체적으로 어떤 말일까? 자 학생이란 클래스와 학교라는 클래스를 만들었다고 가정해보자. 학생이라는 클래스에서 학생의 나이들은 private 가 붙어있다...

JAVA 2020.01.02
반응형