자바(Java)에서 현재 날짜와 시간을 가져오려면 어떻게 해야 할까요? 이 글에서는 Java 8에서 활용할 수 있는 세 가지 방법을 코드 예제와 함께 소개합니다. Java 8부터 도입된 java.time 패키지는 기존의 Date, Calendar API보다 직관적이며 불변(immutable)이라 스레드에 안전하다는 장점이 있습니다. 날짜와 시간을 다룰 때 핵심이 되는 클래스는 LocalDate, LocalTime, LocalDateTime입니다. 현재 날짜 가져오기 LocalDate 클래스는 연·월·일로 구성된 날짜를 표현할 때 사
이 글에서는 Java에서 정규식(Regular Expression)을 활용하여 문자열에서 숫자를 추출하는 다양한 방법을 예제 코드와 함께 소개합니다.문자열을 파싱하고 필요한 정보를 추출하는 능력은 모든 테스터가 반드시 갖춰야 할 핵심 기술입니다. 특히 API를 테스트할 때 JSON이나 XML 응답을 파싱해야 하는 상황에서 그 유용성이 더욱 돋보입니다.아래의 Java 정규식 예제들은 문자열에서 숫자나 자릿수를 추출하는 데 초점을 맞추고 있습니다.문자열에서 모든 숫자 추출하기import java.util.regex.Matcher; im
Java 프로그래밍을 하다 보면 현재 작업 디렉토리(Current Working Directory)를 확인해야 하는 경우가 종종 있습니다. 현재 작업 디렉토리란 프로그램이 실행되는 시점의 기준 경로로, 일반적으로 현재 자바 프로젝트의 루트 폴더를 의미합니다.user.dir 시스템 속성 사용하기Java에서는 System.getProperty() 메서드에 user.dir 키를 전달하는 것만으로 현재 작업 디렉토리를 간단하게 얻을 수 있습니다.String cwd = System.getProperty(user.dir);user.dir은 J
이 글에서는 Homebrew(brew)를 사용해 macOS에 IntelliJ IDEA의 커뮤니티 에디션(Community Edition)과 얼티메이트 에디션(Ultimate Edition)을 설치하는 방법을 단계별로 알아봅니다. IntelliJ IDEA는 소프트웨어 개발을 위해 Java로 작성된 통합 개발 환경(IDE)으로, JetBrains에서 개발한 대표적인 개발 도구입니다. IntelliJ IDEA는 라이선스 방식에 따라 두 가지 버전으로 제공됩니다. 무료로 사용할 수 있는 CE(커뮤니티 에디션)와 더 많은 기능을 제공하는 유
이 글에서는 Java의 ArrayList에서 중복된 항목을 제거하는 다양한 방법을 예제 코드와 함께 소개합니다. ArrayList에서 문자열 중복 제거하기 Set 컬렉션은 중복 요소를 저장할 수 없다는 특징이 있습니다. 이 특성을 활용하면, 중복이 포함된 ArrayList를 Set 객체 생성 시 생성자의 매개변수로 전달하여 손쉽게 중복을 제거할 수 있습니다. 예제 코드는 다음과 같습니다: import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.Set;
Java의 List 인터페이스는 두 리스트를 비교하여 공통 항목과 누락된 항목을 손쉽게 찾을 수 있는 다양한 메서드를 제공합니다. 이 글에서는 equals(), removeAll(), retainAll() 메서드를 활용해 두 리스트를 비교하는 방법을 예제 코드와 함께 살펴보겠습니다. 정렬되지 않은 두 리스트의 동일성 비교 두 리스트가 동일한지, 즉 같은 요소들을 같은 위치(인덱스)에 담고 있는지 확인하려면 equals() 메서드를 사용하면 됩니다. import java.util.Arrays; import java.util.List
Java에서는 프로그램의 실행 흐름을 제어할 수 있는 다양한 방법을 제공합니다. 제어 흐름문(Control Flow Statements)은 조건 판단을 통해 코드의 실행 순서를 변경하거나 분기시키는 역할을 합니다. Java의 대표적인 조건 판단문은 다음과 같습니다. if 문 if...else 문 switch 문 이 글에서는 각 제어 흐름문의 개념과 함께 실제 코드 예제를 통해 자세히 살펴보겠습니다. Java if문 if 문의 기본 문법은 다음과 같습니다. if(condition) { // 조건이 true일 때만
이 글에서는 Java에서 가장 많이 사용되는 ArrayList 메소드들을 각각의 예제 코드와 함께 자세히 살펴봅니다. ArrayList 클래스는 크기가 자동으로 조절되는 가변 배열(resizable array)입니다. 리스트의 크기를 미리 알 수 없는 경우에 주로 ArrayList를 사용합니다. ArrayList 클래스는 java.util 패키지에 포함되어 있으므로, 사용하려면 해당 패키지를 임포트해야 합니다. ArrayList 생성 방법 ArrayList를 생성하고 항목을 추가하려면 String이나 Integer처럼 저장할 타입을
자바 제네릭(Generics)은 자바 언어에서 가장 중요한 기능 중 하나입니다. 제네릭의 핵심 아이디어는 매우 단순하지만, 기존 문법과는 다른 형태로 작성되다 보니 때때로 복잡하게 느껴질 수 있습니다. 이 튜토리얼은 제네릭이라는 유용한 개념을 누구나 이해하기 쉽도록 소개하는 것을 목표로 합니다. 본격적으로 제네릭을 살펴보기에 앞서, 자바에 제네릭이 왜 필요했는지 그 이유부터 짚어보겠습니다. 자바 제네릭의 목적 자바 5에서 제네릭이 도입되기 전에는 다음과 같은 코드를 오류나 경고 없이 작성하고 컴파일할 수 있었습니다. List lis
Java에서 파일을 삭제하려면 Files 클래스의 delete() 메서드를 사용할 수 있습니다. 또한 File 클래스의 인스턴스 객체에 대해 delete() 메서드를 호출하는 방법도 있습니다. 각 방법을 예제 코드와 함께 자세히 살펴보겠습니다. Files 클래스로 파일 삭제하기 아래 코드 예제는 Files 클래스를 사용하여 파일을 삭제하는 방법을 보여줍니다.import java.io.IOException; import java.nio.file.*; public class DeleteFile { public static v
이 글에서는 Java에서 JSON 파일을 문자열(String) 변수로 읽어오는 방법을 알아봅니다. 이 기법은 특히 API 테스트 시 엔드포인트에 JSON 페이로드를 POST 요청으로 전송해야 할 때 매우 유용합니다. JSON 페이로드를 미리 파일로 저장해 두고, 실행 시점에 해당 파일을 문자열로 읽어와 POST 요청의 본문(body)으로 활용하는 방식입니다. JSON 파일을 문자열로 읽기 먼저 다음 경로에 JSON 파일이 있다고 가정해 보겠습니다. src/test/resources/myFile.json { name:David,
Java는 파일을 읽기 위한 다양한 방법을 제공합니다. 각 방법은 상황과 파일 유형에 따라 장단점이 다르며, 어떤 방식은 대용량 파일을 읽는 데 유리하고 어떤 방식은 소용량 파일에 더 적합합니다. 이 튜토리얼에서는 Java에서 파일을 읽을 때 활용되는 다음 세 가지 클래스를 다룹니다. BufferedReader Files Scanner 튜토리얼 전체에서는 src 디렉터리에 저장된 파일을 사용하며, 파일 경로는 src/file.txt입니다. 진행하기 전에 해당 파일에 여러 줄의 텍스트를 미리 입력해 두세요. 참고: 최선
기본적으로 JUnit은 예측할 수 없는 순서로 테스트 메서드를 실행합니다. 하지만 실무에서는 테스트 간에 의존 관계가 있어 특정 순서대로 실행해야 하는 경우가 종종 있습니다. 예를 들어 사용자 관리 API를 테스트한다고 가정해 보겠습니다. 이때 테스트 시나리오는 다음과 같은 순서로 진행되어야 합니다. 1 — 사용자 생성(Create) 테스트 2 — 사용자 수정(Update) 테스트 3 — 사용자 삭제(Delete) 테스트 사용자를 수정하거나 삭제하려면 대상 사용자가 먼저 존재해야 하므로, 생성 테스트가 반드시 선행되어야 합니다.
Java 개발자라면 예외(Exception)와 예외 처리(Exception Handling)에 대한 탄탄한 기본기를 갖추고 있어야 합니다. 이 글에서는 Java 프로그램을 다루는 모든 개발자가 반드시 알아야 할 예외의 기본 개념부터 실전적인 처리 방법까지 체계적으로 정리해 드립니다. 먼저 Java 예외가 정확히 무엇인지부터 살펴보겠습니다. Java 예외(Exception)란 무엇인가 Java 프로그램은 실행 도중 여러 가지 문제에 부딪힐 수 있으며, 이로 인해 프로그램이 갑자기 종료되는 경우가 발생합니다. 이러한 문제를 예외(Exc
Java에서 파일이나 디렉토리의 존재 여부를 확인하는 대표적인 방법은 크게 두 가지입니다. NIO 패키지 : java.nio.file.Files 클래스의 exists() 메서드 (Java 7 이상) 레거시 IO 패키지 : java.io.File 클래스의 exists() 메서드 아래에서 각 방식별 예제 코드를 살펴보겠습니다. Java NIO로 파일 존재 여부 확인하기 NIO 패키지에서는 Paths.get()으로 Path 객체를 생성한 뒤, Files.exists() 메서드로 파일의 존재 여부를 확인합니다. import java.
이 글에서는 Java 8의 스트림(Streams) 기능을 자세히 살펴보고, 다양한 실전 코드 예제를 통해 개념을 쉽게 이해할 수 있도록 안내합니다. Java 스트림은 함수형 프로그래밍을 Java에 도입한 기능으로, Java 8부터 지원됩니다. 따라서 그 이전 버전을 사용 중이라면 Java 스트림을 활용하기 위해 반드시 Java 8 이상으로 업그레이드해야 합니다. Java 스트림, 왜 사용해야 할까요? 스트림을 사용하면 얻을 수 있는 주요 장점은 다음과 같습니다. 적은 코드로 많은 작업 수행: 몇 줄의 코드만으로도 상당히 복잡한 데
Mac에서는 여러 버전의 Java를 동시에 사용할 수 있습니다. 이 글에서는 Homebrew를 이용해 Mac에 Java를 설치하는 방법과, Java 8, Java 11, Java 13 그리고 최신 버전 등 여러 버전 사이를 자유롭게 전환하는 방법까지 소개합니다. 사전 준비 사항 시작하기 전에 Mac에 Homebrew가 설치되어 있는지 확인하세요. 아직 설치하지 않았다면 아래 명령어로 간단히 설치할 수 있습니다. $ ruby -e $(curl -fsSL https://raw.githubusercontent.com/Homebrew/in
프로그램을 개발하다 보면 실행 중에 일시적인 데이터를 저장할 임시 파일이 필요하고, 작업이 끝난 뒤에는 해당 파일을 삭제해야 하는 경우가 자주 있습니다. Java에서는 java.nio.file.Files 클래스가 제공하는 createTempFile() 메서드를 사용하면 임시 파일을 손쉽게 만들 수 있습니다. 임시 파일 생성하기 다음 예제는 Files.createTempFile(prefix, suffix)를 호출하여 임시 파일을 생성합니다. import java.io.IOException; import java.nio.file.Fil
SAP JCo 연결 방식 개요SAP JCo(SAP Java Connector)를 사용해 자바 애플리케이션에서 SAP 서버에 접속할 때는 크게 두 가지 방식이 있습니다. 하나는 특정 애플리케이션 서버에 직접 접속하는 다이렉트 연결 방식이고, 다른 하나는 메시지 서버를 통해 로그온 그룹에 접속하는 로드 밸런싱 연결 방식입니다.많은 개발자가 JCO_AHOST(애플리케이션 서버 호스트)와 JCO_SYSNR(시스템 번호)를 이용한 다이렉트 연결을 먼저 시도하지만, 여러 서버 환경에서는 메시지 서버 기반 연결이 더 안정적이고 유연합니다.메시지
SAP 인터페이스 오류(MQJMS2002)와 IBM MQ jar 파일 설치 안내 SAP 인터페이스에서 완료 코드 2, 이유 2161, MQJMS2002 오류 메시지가 표시되는 경우, 대부분 시스템에 IBM MQ 관련 jar 파일 또는 라이브러리가 올바르게 설치되어 있지 않은 것이 원인입니다. MQ jar 파일이나 MQ C/C++ 라이브러리 파일을 시스템에 확보하는 방법은 아래 두 가지 중 하나를 설치하는 것뿐입니다. WebSphere MQ 제품 설치 WebSphere MQ 클라이언트 SupportPacs 설치 jar 파일 다운로