IRONSOFTWAREHOME
JAVA 도움말

Java에서 Math.random 사용하기

Curtis Chau
Curtis Chau
Updated: 2025년 6월 20일

자바에서 난수를 생성하는 것은 게임 개발 및 시뮬레이션부터 보안 및 머신 러닝에 이르기까지 많은 프로그래밍 시나리오에서 기본적인 작업입니다. Java는 이러한 숫자를 생성하는 두 가지 주요 방법을 제공합니다: 빠르고 간단한 작업을 위한 Math.random() 메서드와 더 전문화된 요구를 위한 Random 클래스가 있습니다. 프로그램에 예측 불가능성을 더하려는 초보자에게는 이러한 도구를 효과적으로 사용하는 방법을 이해하는 것이 매우 중요합니다. 또한 IronPDF Java용 라이브러리 와 PDF 생성에 난수를 활용하는 방법에 대해서도 이야기하겠습니다.

Math.random()의 기본 구문 및 Random 클래스

수학.랜덤()

Math.random() 메서드는 0.0 이상 1.0 미만의 유사 난수 double 값을 생성하는 정적 메서드입니다. 이는 지수, 로그, 삼각연산 등의 기본적인 수치 연산을 수행하기 위한 다양한 메서드를 제공하는 Math 클래스의 일부입니다. Math.random()의 단순성 덕분에 유사 난수를 빠르게 생성하는 것이 매우 쉬워졌습니다.

public class Main {
    public static void main(String[] args) {
        // Generate a random double value between 0.0 and 1.0
        double value = Math.random();
        System.out.println("Random double value: " + value);
    }
}
Java

이 예제는 무작위의 double 값을 생성하여 콘솔에 출력하는 방법을 보여줍니다.

랜덤 클래스

특정 범위 내에서 무작위 정수, boolean, 또는 부동 소수점 수를 생성하는 등 더 다양한 요구사항의 경우 java.util 패키지 내의 Random 클래스가 더 적합합니다. 이는 Random 클래스의 인스턴스를 만든 후, 그 메서드 중 하나를 호출하여 무작위 숫자를 생성해야 합니다.

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        // Create a Random object
        Random random = new Random();
        // Generates a random integer from 0 to 9
        int randomInt = random.nextInt(10);
        System.out.println("Random integer: " + randomInt);
    }
}
Java

이 코드 조각은 Random 객체를 생성하고 이를 사용하여 0과 9 사이의 무작위 정수를 생성합니다.

Math.random() 및 Random 클래스의 장점

단순함과 사용 편의성

Math.random()은 객체 생성이나 복잡한 설정이 필요 없을 정도로 매우 간단하여, 초보자에게 이상적이며 단일 무작위 double 값만 필요한 경우에 적합합니다.

유연성과 제어

Random 클래스는 nextInt(), nextDouble(), nextFloat(), nextLong(), nextBoolean()를 포함하여 무작위 숫자를 생성하기 위한 더 넓은 범위의 메서드를 제공하며, 생성된 무작위 숫자에 대한 더 큰 유연성과 제어를 제공합니다.

재현성

시드 값을 Random 클래스와 함께 사용하여 예측 가능한 유사 난수 시퀀스를 생성하는 것이 가능하며, 이는 디버깅 및 예측 가능성이 필요한 일부 애플리케이션에 매우 유용할 수 있습니다.

난수 생성의 실제 활용 사례

게임 개발: 주사위 굴리기

public class Main {
    public static void main(String[] args) {
        int max = 6; // Maximum face value of the die
        // Generate a random integer between 1 and 6
        int roll = (int) (Math.random() * max) + 1;
        System.out.println("You rolled a: " + roll);
    }
}
Java

콘솔 출력 예시: 주사위를 굴려 나온 숫자: 6

이 예제는 1과 6 사이의 무작위 정수를 생성하여 6면의 주사위 굴림을 시뮬레이션 합니다. Math.random()를 사용하여 특정 범위 내의 숫자를 생성하고 결과를 최대값으로 곱한 다음 0-5 범위에서 1-6 범위로 변환하기 위해 1을 더하는 방법을 보여줍니다.

시뮬레이션: 기상 조건 생성

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random random = new Random();
        // Generate a random temperature from -10 to 20 degrees Celsius
        int temp = random.nextInt(31) - 10;
        // Generate a random boolean to indicate raining condition
        boolean raining = random.nextBoolean();
        System.out.println("Today's temperature is: " + temp + "C, and it is " + (raining ? "raining" : "not raining"));
    }
}
Java

콘솔 출력 예시: 오늘의 기온은 8°C이고 비가 오고 있습니다.

이 코드 조각은 지정된 범위 내에서 임의의 온도를 생성하고 비가 오는지 여부를 나타내는 부울 값을 생성하여 날씨 조건을 시뮬레이션합니다. 이는 정수와 boolean 값을 생성하기 위한 Random 클래스의 사용을 보여줍니다.

머신 러닝: 데이터 섞기

import java.util.Collections;
import java.util.ArrayList;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        // Initialize an ArrayList with integers
        ArrayList<Integer> data = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
        // Shuffle the list to randomize element order
        Collections.shuffle(data);
        System.out.println("Shuffled data: " + data);
    }
}
Java

콘솔 출력 예시: 섞인 데이터: [5, 3, 1, 4, 2]

Math.random()Random 클래스를 직접 사용하지는 않지만, 이 예제는 머신 러닝 알고리즘을 위한 데이터 준비의 일반적인 작업인 정수 목록 셔플링을 보여줍니다. Collections.shuffle()은 내부적으로 요소를 셔플링하는 데 Random를 사용합니다.

Java용 IronPDF 소개

IronPDF Java용 는 Java 개발자가 애플리케이션에서 PDF 문서를 생성, 편집 및 읽을 수 있도록 해주는 라이브러리입니다. 이 프로그램은 HTML을 PDF로 변환하는 기능을 지원하며, HTML 원본의 서식이 PDF 출력물에서도 정확하게 유지되도록 합니다. IronPDF 는 Java 8 이상 버전을 위해 설계되었으며 Kotlin 및 Scala를 포함한 다양한 JVM 언어에서 사용할 수 있습니다.

이 프로그램은 콘텐츠 편집, PDF 병합, 분할, 양식 및 메타데이터 작업 등 PDF 조작을 위한 광범위한 기능을 제공합니다. Java 프로젝트에서 IronPDF 사용하려면 Maven 종속성을 통해 포함시키면 됩니다.

IronPDF for Java를 사용하는 맥락에서 Math.random()을 통합하여 난수를 기반으로 PDF의 콘텐츠를 동적으로 생성할 수 있습니다. 예를 들어, Java PDF Generation from HTML 내에 포함된 난수가 PDF로 변환되는 경우를 생각할 수 있습니다. 이렇게 하면 됩니다:

package ironpdf;

import com.ironsoftware.ironpdf.*;
import java.awt.print.PrinterException;
import java.io.IOException;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) throws IOException, PrinterException {
        // Set license key for IronPDF
        License.setLicenseKey("Key");
        // Generate a random number between 0 and 99
        int randomNumber = (int) (Math.random() * 100);
        // Create HTML content, embedding the random number
        String htmlContent = "<html><body><h1>Random Number</h1><p>" + randomNumber + "</p></body></html>";
        // Render HTML content to PDF
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf(htmlContent);
        // Save the PDF to a specified path
        pdf.saveAs(Paths.get("f:\\IronPdf\\random.pdf"));
    }
}
Java

이 예제는 제목과 본문에 무작위로 생성된 숫자를 표시하는 간단한 HTML 문자열을 생성합니다. Math.random() 함수는 0.0 이상 1.0 미만의 double 값을 생성한 다음, 이를 100으로 곱하고 정수로 캐스팅하여 0과 99 사이의 무작위 숫자를 얻습니다. 그런 다음 이 HTML 문자열은 IronPDF의 renderHtmlAsPdf 메서드를 사용하여 PDF 문서로 변환되고, 결과 PDF는 "random.pdf"라는 이름으로 저장됩니다.

산출

IronPDF 예제에서 생성된 PDF

결론

Java에서 Math.random() 메서드와 Random 클래스를 함께 사용하여 무작위 숫자를 생성하는 것은 프로그래머에게 강력한 도구입니다. 게임에 예측 불가능성을 더하는 것부터 실제 현상을 시뮬레이션하고 머신 러닝을 위한 데이터를 준비하는 것에 이르기까지, 난수 생성 방법을 이해하는 것은 필수적입니다. 제공된 예제를 살펴보고 직접 실험해 보면, 자바 애플리케이션에 난수 생성 기능을 효과적으로 통합하는 데 필요한 숙련도를 습득할 수 있습니다.

IronPDF 사용자가 구매를 결정하기 전에 기능을 살펴볼 수 있도록 무료 체험판을 제공합니다. IronPDF의 라이선스는 $999부터 시작합니다.

Curtis Chau
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

...
더 읽어보기

관련 기사

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.