자바의 유용한 패키지

자바의 유용한 패키지(Java Useful Packages)는 개발자들에게 다양하고 강력한 도구를 제공하는 라이브러리 모음입니다. 이 글에서는 자바에서 가장 중요하고 유용한 패키지들을 소개하고, 각 패키지의 핵심 기능과 사용법에 대해 상세히 알아보겠습니다. 예제 코드도 몇 가지 살펴볼 예정입니다.
1. java.util 패키지
java.util 패키지는 자바의 핵심 라이브러리로, 주로 컬렉션(Collection), 날짜 및 시간(Date and Time), 난수 생성(Random) 등 다양한 유틸리티 클래스와 인터페이스를 포함합니다.
- 컬렉션:
List, Set, Map 등의 인터페이스와 이를 구현하는 ArrayList, HashMap, HashSet 등 다양한 데이터 구조를 제공합니다. 컬렉션은 데이터를 저장하고 관리하는데 편리한 도구로 사용됩니다.
예제: ArrayList 사용하기
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
ArrayList<String> myList = new ArrayList<>();
myList.add("Hello");
myList.add("World");
System.out.println(myList.get(0)); // 출력: Hello
System.out.println(myList.get(1)); // 출력: World
}
}
- 날짜 및 시간:
Date, Calendar 클래스로 기본적인 날짜 및 시간 연산을 수행할 수 있으며, Java 8부터는 LocalDate, LocalTime, LocalDateTime 등의 클래스를 활용해 더욱 직관적이고 강력한 날짜 시간 연산을 수행할 수 있습니다.
예제: LocalDateTime 사용하기
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
System.out.println("현재 시간: " + now);
LocalDateTime afterTwoWeeks = now.plusWeeks(2);
System.out.println("이틀 후: " + afterTwoWeeks);
}
}
- 난수 생성:
Random 클래스를 통해 난수를 생성할 수 있습니다. 때에 따라서 다양한 종류의 난수를 생성할 수 있습니다.
예제: Random 사용하기
import java.util.Random;
public class RandomExample {
public static void main(String[] args) {
Random random = new Random();
int randomInt = random.nextInt(100); // 0 ~ 99 사이의 정수
System.out.println("무작위 정수: " + randomInt);
double randomDouble = random.nextDouble(); // 0.0 부터 1.0 사이의 실수
System.out.println("무작위 실수: " + randomDouble);
}
}
2. java.io 패키지
java.io 패키지는 파일 입출력(File I/O)과 관련된 기능들을 제공합니다. 이 패키지를 활용하면 파일 생성, 읽기, 쓰기 등 다양한 작업을 손쉽게 수행할 수 있습니다. 주요 클래스로는 FileReader, FileWriter, BufferedReader, BufferedWriter 등이 있습니다.
예제: 파일 읽기
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileExample {
public static void main(String[] args) {
try {
// 파일 위치 따라서 수정
String fileName = "/path/to/your/file.txt";
FileReader fileReader = new FileReader(fileName);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3. java.net 패키지
java.net 패키지는 인터넷 프로토콜과 소켓 프로그래밍, URL 처리 등 네트워크 관련 기능들을 제공합니다. 예를 들어, Socket, ServerSocket 클래스를 사용하여 클라이언트와 서버 간의 통신을 구현할 수 있습니다.
예제: 간단한 HTTP 요청 보내기
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpRequestExample {
public static void main(String[] args) {
try {
URL url = new URL("https://api.example.com/data");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
connection.disconnect();
System.out.println("API 응답: " + content.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
4. java.sql 패키지
java.sql 패키지는 자바에서 데이터베이스와 연동할 때 사용하는 JDBC(Java Database Connectivity) API를 제공합니다. 이 패키지를 사용하면 다양한 데이터베이스 시스템에 접근하여 데이터를 조회, 추가, 수정 및 삭제할 수 있습니다. 주요 클래스로는 DriverManager, Connection, PreparedStatement, ResultSet 등이 있습니다.
아래 예제는 데이터베이스 "myDatabase"의 "users" 테이블에서 모든 유저의 이름(name)을 조회합니다.
예제: JDBC를 이용한 데이터베이스 조회
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/myDatabase";
String username = "myUsername";
String password = "myPassword";
try {
Connection connection = DriverManager.getConnection(url, username, password);
String sql = "SELECT name FROM users";
PreparedStatement pstmt = connection.prepareStatement(sql);
ResultSet resultSet = pstmt.executeQuery();
while (resultSet.next()) {
System.out.println("User name: " + resultSet.getString("name"));
}
resultSet.close();
pstmt.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
이처럼 자바의 다양한 패키지들은 개발 작업을 보다 편리하게 할 수 있도록 합니다.