본문 바로가기
개발/Java

[Java] Properties 파일을 만들고 사용하는 법: 마법처럼 쉽게 배워보자!

by 쓸있쏜 2024. 12. 17.
728x90

안녕하세요, 여러분!
오늘은 Java에서 정말 유용하지만 왠지 모르게 조금은 생소한 Properties 파일을 다뤄볼 거예요.

"Properties 파일? 그게 뭐야?"라고 생각할 수도 있지만, 이건 정말 엄청난 녀석이에요. 마치 보물 상자 같죠. 한 번 알아두면 프로젝트에서 설정값이나 환경변수 관리가 깔끔해진답니다! 자, 우리 모두 호기심을 품고 마법처럼 알아봐요.


1. Properties 파일이란 무엇일까요?

간단하게 말해서 Properties 파일은 Key-Value 형태로 데이터를 저장하는 파일이에요. 주로 애플리케이션 설정 정보나 환경 설정 값 등을 저장하는 데 사용돼요. 확장자는 .properties로 끝나요.

이 파일이 왜 유용할까요?

  • 설정 변경이 편해요: 코드를 수정하지 않고 설정값만 바꿀 수 있어요.
  • 관리하기 쉬워요: 깔끔하게 Key-Value 형태로 정리되니까 읽기 쉽죠.
  • 환경에 맞게 적용할 수 있어요: 개발, 테스트, 배포 환경마다 다른 설정을 사용할 수 있답니다.

2. Properties 파일 만들기

먼저 myconfig.properties라는 파일을 만들어볼까요?
이 파일은 프로젝트의 resources 폴더에 넣어주세요.

# 데이터베이스 설정 정보
db.url=jdbc:mysql://localhost:3306/mydb
db.username=root
db.password=1234

# 애플리케이션 설정
app.version=1.0.0
app.name=MyAmazingApp

여기서 # 기호는 주석이에요. 설명을 적을 때 사용하면 돼요. 예쁘죠?


3. Properties 파일 읽기

이제 이 파일을 읽어서 Java 코드에 적용해봅시다. 정말 재미있어요!

Step 1: Properties 객체를 만들고 파일을 읽기

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class PropertiesExample {
    public static void main(String[] args) {
        Properties properties = new Properties();

        try (FileInputStream fis = new FileInputStream("src/resources/myconfig.properties")) {
            // 파일 읽기
            properties.load(fis);

            // Properties 값 출력
            String dbUrl = properties.getProperty("db.url");
            String dbUsername = properties.getProperty("db.username");
            String dbPassword = properties.getProperty("db.password");
            String appName = properties.getProperty("app.name");
            String appVersion = properties.getProperty("app.version");

            // 값 출력
            System.out.println("데이터베이스 URL: " + dbUrl);
            System.out.println("데이터베이스 유저: " + dbUsername);
            System.out.println("데이터베이스 비밀번호: " + dbPassword);
            System.out.println("앱 이름: " + appName);
            System.out.println("앱 버전: " + appVersion);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

설명:

  • Properties 객체를 생성해요.
  • FileInputStream으로 파일을 읽어요.
  • load() 메서드로 Properties 파일을 메모리에 로드해요.
  • getProperty()를 사용해서 값을 가져옵니다.

4. Properties 파일에 값 쓰기

"읽기만 하면 재미없죠? 값을 써보자!"
우리는 Properties 파일에 새로운 값을 추가하거나 수정할 수도 있어요.

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

public class WritePropertiesExample {
    public static void main(String[] args) {
        Properties properties = new Properties();

        try (FileOutputStream fos = new FileOutputStream("src/resources/myconfig.properties")) {
            // Properties에 값 설정
            properties.setProperty("db.url", "jdbc:mysql://localhost:3306/newdb");
            properties.setProperty("db.username", "admin");
            properties.setProperty("db.password", "securepassword");
            properties.setProperty("app.name", "MyUpdatedApp");

            // 파일에 저장
            properties.store(fos, "Updated configuration");

            System.out.println("Properties 파일이 업데이트되었습니다!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

포인트!

  • setProperty() 메서드를 사용해 값을 설정합니다.
  • store() 메서드로 값을 파일에 저장해요.
  • 주석("Updated configuration")은 파일 맨 위에 추가되요.

5. 실행 결과는 어떻게 될까요?

프로그램을 실행해보면 다음과 같은 결과가 나올 거예요.

데이터베이스 URL: jdbc:mysql://localhost:3306/mydb
데이터베이스 유저: root
데이터베이스 비밀번호: 1234
앱 이름: MyAmazingApp
앱 버전: 1.0.0

그리고 파일에 쓰기 코드도 실행하면, myconfig.properties 파일이 업데이트되겠죠?


6. 결론

어때요? 어렵지 않죠?
Java의 Properties 파일은 단순하면서도 강력해요. 환경 설정을 따로 관리하고 싶을 때 이 파일만큼 좋은 친구는 없어요.

이제 여러분도 자신있게 Properties를 사용해보세요. 프로젝트가 훨씬 더 깔끔해질 거예요!
궁금하거나 더 알고 싶은 게 있다면 언제든지 댓글로 남겨주세요. 우리 함께 공부해요! 😊


읽어주셔서 감사합니다! 다음에도 재미있고 유용한 글로 돌아올게요! 🌟

728x90

댓글