java 18

[Java] 문자열 함수 split() 정리

Java에서 문자열을 다룰 때 특정 구분자를 기준으로 문자열을 분리해야 하는 경우가 자주 발생한다. 이때 유용하게 사용할 수 있는 메서드가 split()이다. 본 글에서는 split()의 기본 문법, 특징, 다양한 예시, 주의사항을 정리한다. 1) split() 함수의 문법String[] result = 문자열.split(String regex);String[] result = 문자열.split(String regex, int limit);regex: 구분자를 정규표현식(Regular Expression)으로 지정한다.limit: 분리할 최대 개수를 지정한다.양수: 최대 limit 개수만큼 분리된다.0: 마지막 빈 문자열은 제거된다.음수: 제한 없이 모두 분리된다. 2) split() 함수의 특징구분자는..

Java/Java 2025.08.28

[Java] 코딩테스트에서 자주 쓰이는 String 함수 총정리

코딩테스트 문제를 풀다 보면 문자열 처리가 필수적으로 등장한다. Java에서는 문자열을 다루기 위한 다양한 String 메서드를 제공하고 있으며, 이를 잘 활용하면 문제를 훨씬 간단하게 해결할 수 있다. 본 글에서는 코딩테스트에서 자주 사용되는 String 함수들을 정의, 예시, 활용, 주의사항 순서로 정리한다. 1) indexOf 함수1-1) 정의문자열에서 특정 문자나 문자열이 처음 등장하는 위치(인덱스)를 반환한다.만약 존재하지 않으면 -1을 반환한다.1-2) 기본 사용 예시String str = "hello world";System.out.println(str.indexOf("o")); // 4System.out.println(str.indexOf("world")); // 6System.ou..

Java/Java 2025.08.20

[Java] Optional 활용 팁 & 실전 예제

Java 8에서 도입된 Optional 클래스는 null 처리를 보다 안전하고 명확하게 하기 위한 도구이다. nullPointerException(NPE)을 방지하고, 코드 가독성을 높이는 데 유용하게 사용된다. 이번 글에서는 Optional의 정의와 특징, 기본적인 사용 예제, 실무에서의 활용 예제까지 정리한다. 1) 정의와 특징1-1) 정의Optional은 '값이 있을 수도 있고 없을 수도 있는 컨테이너 객체'이다.null 대신 객체의 존재 여부를 명시적으로 표현할 수 있도록 도와준다.1-2) 특징값이 존재하는 경우와 존재하지 않는 경우를 명확하게 구분할 수 있다.null 체크를 대체하여 가독성을 높인다.map, filter, ifPresent 등 함수형 스타일 메서드를 제공한다.Optional은 필..

Java/Java 2025.08.19

[Java] Apache POI(XSSF)를 사용한 Excel(XLSX) 파일 처리

Apache POI는 Java에서 Microsoft Office 문서를 읽고 쓸 수 있게 해주는 라이브러리이다. 그중 XSSF는 Excel 2007 이상(xlsx) 포맷을 처리하는 구현체이다. 이번 글에서는 XSSF를 사용해 엑셀 파일을 생성, 읽기, 그리고 고급 기능을 활용하는 방법을 알아보자. 1) 환경 설정Apache POI를 사용하려면 Maven 또는 Gradle에 의존성을 추가해야 한다. org.apache.poi poi-ooxml 5.2.5// Gradle 설정implementation 'org.apache.poi:poi-ooxml:5.2.5' 2) 엑셀 파일 생성하기간단한 데이터로 XLSX 파일을 생성하는 예제이다.import org.apache.poi.xssf.usermod..

Java/Java 2025.08.11

[Java] Java 8의 주요 특징 정리

Java 8은 자바 언어에 함수형 프로그래밍 개념을 본격적으로 도입한 버전으로, 람다식, Stream API, Optional 클래스 등 코드의 간결성과 안정성을 높이는 다양한 기능들이 추가되었다. 특히 컬렉션 처리와 null 관련 문제 해결에 큰 도움이 되는 기능들이 포함되어 있어, 실무에서도 널리 사용되고 있다. 1) Java 8 주요 기능 목록람다식 (Lambda Expression)Stream APIOptional 클래스인터페이스의 default 및 static 메서드 2) 람다식 (Lambda Expression)2-1) 개요람다식은 익명 함수 형태로 간결한 함수형 코드를 작성할 수 있도록 해준다.익명 내부 클래스의 코드를 줄이고 가독성을 높여준다.2-2) 예시// 기존 방식Runnable r1..

Java/Java 2025.08.06

[Java] 자바 전역변수, 지역변수, static 변수란?

자바에서 변수는 선언 위치에 따라 전역변수와 지역변수로 나뉘며, static을 사용하면 객체 없이도 공유되는 클래스 변수로 사용할 수 있다.이번 글에서는 전역변수, 지역변수, static 변수에 대해 알아보자. 1) 전역변수1-1) 정의전역변수는 클래스 내부에서 선언된 변수로, 객체 전체에서 사용할 수 있다. 주로 필드(Field)라고 부른다. 1-2) 특징클래스의 모든 메서드에서 접근 가능객체가 생성될 때 메모리에 함께 올라감초기화를 하지 않아도 기본값이 자동으로 설정됨 1-3) 사용예시class Student { String name; // 전역변수 int age; // 전역변수 void printInfo() { System.out.println(name + "..

Java/Java 2025.07.11

[Java] XML Parsing 방식(DOM, SAX 방식)

최근에 대용량 데이터 처리에 대한 업무 개선을 위해,외부에서 받아서 처리하는 XML 데이터의 파싱 방식을 변경하는 작업을 진행했다.XML 데이터를 파싱하는 대표적인 방식으로 DOM 방식과 SAX 방식이 있는데,각각의 장단점과 방식을 변경한 이유에 대해 설명해보겠다. 1) XML 파싱(XML Parsing)1-1) XML Parsing? : XML(eXtensible Markup Language)은 데이터를 저장하고 전송하기 위한 표준화된 형식이고, XML 파싱은 이러한 XML 문서를 읽고 그 구조와 내용을 프로그램에서 사용할 수 있는 형태로 변환하는 과정이다.1-2) XML 문서의 구조 : XML 문서의 구조를 아래 예시를 통해 알아보자.XML 문서 예시 귤 과일 ..

Java/Java 2025.04.18

[Java] javax.servlet import 에러 해결 방법

HttpServlet을 사용하기 위해 관련 패키지를 import하려고 하는데, 오류가 발생하였다.오류가 발생하는 이유는 이클립스 내 해당 프로젝트에 Server 라이브러리가 설정되어있지 않기 때문인데,이 오류를 해결하는 방법에 대해 알아보자.개발환경JDK: Java 1.8서버: Tomcat 9.0IDE: IntelliJ 먼저, 아래 이미지를 참고하여 프로젝트 우클릭 > Properties 를 선택한다. Java Build Path를 클릭하고, Add Library를 클릭한다. 서버 라이브러리를 추가해야하기 때문에, Server Runtime을 클릭한다. 각자 프로젝트 환경에 맞는 서버를 선택하고, Finish를 클릭한다. 위 과정을 거치면, 서버 라이브러리가 정상적으로 Build Path에 추가된 ..

[Spring/MyBatis] 페이징 처리, Pagination 구현하기

API를 개발할 때, 페이징처리는 서버의 부하를 위해 꼭 필요한 기능이다.Spring에서 제공하는 Pageable을 활용하여 페이징 처리(페이지네이션)를 하는 방법에 대해 알아보자. 1) Pagination(페이지네이션): 데이터를 정렬기준, 페이지 크기, 몇 번째 페이지인지를   토대로 정보를 전달해주는 것1-1) Pageable Interface: Spring에서 페이징 처리를 하기 위해서 사용하는 인터페이스이다.객체를 생성할 때는 구현체인 PageRequest 를 사용하는데,PageRequest 생성자를 보면 page, size, sort 가 있다.[ PageRequset.class ]API를 호출할 때, 몇 번째 페이지인지에 대한 정보(page)와한 페이지당 보여줄 데이터의 개수(size)를 함께..

[Spring Data JPA] JPA 기본 Annotation 정리

Spring JPA에서 객체를 entity로 사용하기 위해 @Entity 어노테이션을 사용해야한다.이처럼 JPA를 사용할 때 필요한 Annotation에 대해 몇 가지 알아보자.  아래의 Member Entity를 예시로 들어보자.1) @Entity: entity 어노테이션은 DB 테이블과 1:1로 매칭되는 객체로, entity 객체의 인스턴스 하나가 테이블에서 하나의 레코드 값을 의미한다.따라서 각 레코드를 구분하기 위한 유일한 키값을 가지는데, 이것이 테이블의 PK(Primary Key)와 같은 의미를 가지며, @Id 어노테이션으로 정의한다. 2) @GeneratedValue: PK 자동 생성 전략을 설정하는 어노테이션으로, 4가지가 있다.@GeneratedValue(strategy = {기본키값 생..