패키지 사용

Java의 데이터 타입과 예외

Jim White

Java Developer

Java 패키지란?

  • 패키지는 Java 코드를 조직합니다
    • 패키지는 파일 폴더/디렉터리와 유사
    • 관련 Java 코드(클래스, 인터페이스, enum 등)를 묶음
  • 파일 폴더처럼
    • 각 패키지에는 이름이 있습니다

Java 패키지는 코드를 정리하는 파일 폴더와 서랍장과 같습니다

1 Image from https://commons.wikimedia.org/wiki/File:File_Cabinet.jpg
Java의 데이터 타입과 예외

패키지의 종류

  • 기본 제공 패키지
    • Java의 일부
    • 이름이 "java" 또는 "javax"로 시작
  • 사용자 정의 패키지
    • 우리가 정의한 패키지
    • 서드파티에서 가져온 패키지
Java의 데이터 타입과 예외

패키지 이름

  • 패키지명 규칙
    • 모두 소문자
    • 부분은 마침표(.)로 구분
  • 기본 제공 패키지
    • java 또는 javax로 시작
    • 나머지 이름은 용도를 나타냄
  • 사용자 정의 패키지명
    • 조직 도메인의 역순으로 시작
    • 나머지 이름은 기능을 나타냄
  • 기본 제공 패키지 예

    java.security
    java.time
    
  • 사용자 정의 패키지명 예

    com.mycompany.myproject
    com.mycompany.myproject.account
    com.mycompany.myproject.controller
    com.mycompany.myproject.ui
    
Java의 데이터 타입과 예외

기본 제공 패키지

자주 쓰는 기본 제공 패키지

Package Contains/Provides
java.lang 기본 언어 지원 클래스
java.io 입출력 작업
java.util.logging 로그 프레임워크
java.math 정밀 정수/소수 산술
java.net 네트워킹 작업
java.util 날짜/시간, 연결 리스트·사전 등 자료구조와 지원
java.security 보안 프레임워크
Java의 데이터 타입과 예외

java.math

  • java.math는 산술용 클래스를 제공합니다
    • 암호, 과학, 통화/금전 애플리케이션에 사용
  • 큰 정수를 위한 BigInteger
    • intlong을 초과하는 정수 처리
    • 자리수에 사실상 제한 없는 정수 처리용
  • 매우 크거나 작은 부동소수용 BigDecimal
    • floatdouble의 반올림 오류를 처리
Java의 데이터 타입과 예외

패키지 사용

  • 상단에 import + 패키지명을 사용
import java.math.BigInteger;
public class HelloWorld {
  BigInteger acct = new BigInteger("123");
}
  • 패키지는 많은 타입을 포함할 수 있습니다.
    • *로 패키지의 모든 타입을 가져옵니다
import java.math.*;
public class HelloWorld {
  BigInteger acct = new BigInteger("123");
  BigDecimal pi = new BigDecimal("3.14");
}
Java의 데이터 타입과 예외

java.math의 BigInteger & BigDecimal

  • BigInteger, BigDecimal은 큰 수를 다루는 래퍼입니다
  • String 또는 숫자로 생성합니다
  • add, subtract, multiply, divide 메서드 제공
  • 거듭제곱용 pow 등 추가 메서드 제공
// import는 클래스 상단에 위치
import java.math.BigInteger;
import java.math.BigDecimal;

// String으로 BigInteger/BigDecimal 생성
BigInteger big = new BigInteger("1000");
BigInteger ten = new BigInteger("10");
BigDecimal pi = new BigDecimal("3.14");
// primitive로 BigDecimal 생성
BigDecimal one = new BigDecimal(1.0);
BigInteger x = big.add(ten); // = 1010
BigDecimal y = pi.add(one); // = 4.14
BigInteger bigSqr = big.pow(2); // = 1000000
BigDecimal piCubed = pi.pow(3); // = 30.959144
Java의 데이터 타입과 예외

BigInteger와 BigDecimal 메서드

Method Description
abs() 정수의 절댓값
add(x) 정수 또는 실수에 x를 더함
divide(x) 정수 또는 실수를 x로 나눔
multiply(x) 정수 또는 실수에 x를 곱함
negate() 정수 또는 실수의 부호 반전
pow(int x) 정수 또는 실수의 x제곱
subtract(x) 정수 또는 실수에서 x를 뺌
1 See https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html and https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html
Java의 데이터 타입과 예외

Import가 필요 없는 경우

  • 중요: java.lang 패키지는 자동으로 import됩니다.
    • java.lang의 항목은 import가 필요 없습니다
  • java.lang에는 System, String, 래퍼 클래스, Exception이 포함됩니다.
    • 기본 언어 요소를 import 없이 사용하는 이유입니다.
Java의 데이터 타입과 예외

연습해 봅시다!

Java의 데이터 타입과 예외

Preparing Video For Download...