자바 - 패키지: 코드 구성의 친절한 가이드

안녕하세요, 미래의 자바 슈퍼스타! ? 오늘은 자바 패키지의 세계로 흥미진진한 여정을 떠날 거예요. 패키지를 깔끔하게 정리된 상자로 생각해보세요. 우리의 코드를 저장하는 곳입니다. 이 튜토리얼을 끝내면, 자바 코드를 깔끔하고 효율적으로 정리할 준비가 되신 패키지 전문가가 될 거예요!

Java - Packages

자바 패키지란 무엇인가요?

새 집으로 이사갈 때를 상상해봅시다. 모든 물건을 하나의 큰 방에 던지시지 않을 거예요, right? 물론 그렇죠! 다른 방과 옷장에 나누어서 정리하겠죠. 이것이 바로 자바 패키지가 우리의 코드에게 해주는 일입니다.

자바에서 패키지는 관련된 클래스와 인터페이스를 단일 단위로 정리하는 메커니즘입니다. 컴퓨터에서 파일을 정리하기 위해 다른 폴더를 만드는 것과 마찬가지입니다.

왜 패키지를 사용합니까?

  1. 정리: 패키지는 관련된 클래스를 함께 그룹화하는 데 도움이 됩니다.
  2. 이름 충돌: 클래스 간의 이름 충돌을 방지합니다.
  3. 접근 제어: 패키지를 통해 클래스에 접근을 제어할 수 있습니다.

자바 패키지의 유형

자바에서는 두 가지 주요 유형의 패키지가 있습니다:

  1. 내장 패키지: 이들은 자바와 함께预装됩니다. 예를 들어, java.lang, java.util 등.
  2. 사용자 정의 패키지: 우리가 직접 만드는 패키지입니다.

이제 실제로 재미있는 부분인 사용자 정의 패키지에 집중해봅시다!

자바 패키지 만들기

패키지를 만드는 것은 쉽습니다. 다음과 같이 하면 됩니다:

  1. 패키지 이름을 결정합니다 (예: com.mycompany.myproject).
  2. 자바 파일의 맨 위에 패키지 선언을 추가합니다.
  3. 패키지 이름과 일치하는 디렉토리 구조에 자바 파일을 저장합니다.

단순한 예제를 보여드리겠습니다:

package com.mycompany.myproject;

public class MyAwesomeClass {
public void sayHello() {
System.out.println("안녕하세요, 내 멋진 패키지에서입니다!");
}
}

이 예제에서, com.mycompany.myproject는 우리의 패키지 이름이고, MyAwesomeClass는 이 패키지内的 클래스입니다.

자바 패키지의 디렉토리 구조

새 집으로 이사갈 때의 사례를 기억하시나요? 자바 패키지의 디렉토리 구조도 마찬가지입니다. 이렇게 보입니다:

src
└── com
└── mycompany
└── myproject
└── MyAwesomeClass.java

각 패키지 이름의 부분은 디렉토리가 되고, 자바 파일은 맨 끝에 위치합니다.

자바 패키지로 컴파일

우리의 패키지된 클래스를 컴파일하려면, javac 명령어에 -d 옵션을 사용해야 합니다. 이는 컴파일러에 컴파일된 .class 파일을 어디에 둘지 알려줍니다.

javac -d . MyAwesomeClass.java

이 명령은 필요한 디렉토리를 만들고 컴파일된 클래스 파일을 올바른 위치에 배치합니다.

자바 패키지 임포트

이제 우리는 패키지를 만들었으니, 다른 클래스에서 어떻게 사용합니까? 여기서 import 문이 유용합니다!

import com.mycompany.myproject.MyAwesomeClass;

public class PackageUser {
public static void main(String[] args) {
MyAwesomeClass mac = new MyAwesomeClass();
mac.sayHello();
}
}

wildcard *를 사용하여 패키지의 모든 클래스를 임포트할 수도 있습니다:

import com.mycompany.myproject.*;

자바 패키지 예제

이제 모든 것을 하나로 엮어 보겠습니다. com.petstore라는 패키지를 만들고, DogCat 두 가지 클래스를 포함하겠습니다.

먼저, Dog.java를 만들어 보겠습니다:

package com.petstore;

public class Dog {
public void bark() {
System.out.println("왈! 왈!");
}
}

이제, Cat.java를 만들어 보겠습니다:

package com.petstore;

public class Cat {
public void meow() {
System.out.println("야옹! 야옹!");
}
}

마지막으로, 이러한 클래스를 사용하는 PetStore 클래스를 만들어 보겠습니다:

import com.petstore.*;

public class PetStore {
public static void main(String[] args) {
Dog fido = new Dog();
Cat whiskers = new Cat();

System.out.println("우리의 애견 매장에 오신 것을 환영합니다!");
System.out.print("Fido가 말합니다: ");
fido.bark();
System.out.print("Whiskers가 말합니다: ");
whiskers.meow();
}
}

PetStore 클래스를 실행하면 다음과 같은 출력이 나옵니다:

우리의 애견 매장에 오신 것을 환영합니다!
Fido가 말합니다: 왈! 왈!
Whiskers가 말합니다: 야옹! 야옹!

멋지지 않나요? 우리는 성공적으로 만들고 사용한 자신의 패키지를 가지고 있습니다!

CLASSPATH 시스템 변수 설정

가끔 자바가 패키지를 찾는 데 어려움을 겪을 수 있습니다. 이때는 CLASSPATH가 필요합니다. 이는 자바에 코드를 찾을 수 있는 지도를 주는 것과 같습니다.

CLASSPATH를 설정하려면:

Windows에서:

set CLASSPATH=C:\path\to\your\classes

Unix/Linux에서:

export CLASSPATH=/path/to/your/classes

현재 디렉토리를 CLASSPATH에 포함하려면 점을 추가합니다:

set CLASSPATH=.;C:\path\to\your\classes

결론

축하합니다! 당신은 자바 패키지의 세계로 첫 걸음을 내딛었습니다. 패키지를 만들고, 컴파일하고, 임포트하고, 심지어 CLASSPATH를 설정하는 방법을 배웠습니다.

기억하세요, 연습이 만든 천재입니다. 자신의 패키지를 만들어 보고, 다양한 클래스 구조를 실험해 보면, 곧 자바 코드를 전문가처럼 정리할 수 있을 거예요!

코딩을 즐기세요, 미래의 자바 maestro! ??‍??‍?

Credits: Image by storyset