๐Ÿ“ฆJava Package

Cpp์— ๋น„ํ•˜๋ฉด ์„ ๋…€๋‹ค

1 minute read

ํŒจํ‚ค์ง€

  • ํด๋ž˜์Šค๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ
  • ํด๋ž˜์Šค๋“ค์„ ๊ตฌ๋ถ„์ง“๋Š” ๋””๋ ‰ํ† ๋ฆฌ
  • ํŒจํ‚ค์ง€์˜ ๋ฌผ๋ฆฌ์ ์ธ ํ˜•ํƒœ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋””๋ ‰ํ† ๋ฆฌ
  • ๋‹จ์ˆœํžˆ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ธฐ๋Šฅ๋งŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํด๋ž˜์Šค์˜ ์ผ๋ถ€๋ถ„์ด๋‹ค.

๋ชฉ์ 

  • C++์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์ฒ˜๋Ÿผ ํด๋ž˜์Šค ์ด๋ฆ„ ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•œ๋‹ค.

์‹คํ–‰

$ java {ํŒจํ‚ค์ง€/ํŒจํ‚ค์ง€/ํด๋ž˜์Šค๋ช…}  
  • Java๋Š” ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์‹คํ–‰ํ•˜๊ธฐ๋กœ ์•ฝ์†์ด ๋˜์–ด์žˆ๋‹ค.
  • ์ง์ ‘ cd๋กœ ๋””๋ ‰ํ† ๋ฆฌ์— ๋“ค์–ด๊ฐ€์ง€๋ง๊ณ  ์œ„์ฒ˜๋Ÿผ ํŒจํ‚ค์ง€๋ช…์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์‹คํ–‰์‹œํ‚ค์ž.
  • ํŒจํ‚ค์ง€ ๋ช…๊ณผ ์œ„์น˜ํ•œ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ด๋ฆ„์€ ๊ฐ™์•„์•ผํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์œ„์™€ ๊ฐ™์€ ๋™์ž‘์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ทœ์น™

  • Package ์„ ์–ธ์€ ์ตœ์ƒ๋‹จ์— ํ•˜๋‚˜๋งŒ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • java๋กœ ํŒจํ‚ค์ง€๋ช…์ด ์‹œ์ž‘ํ•  ์ˆ˜ ์—†๋‹ค.
  • ์–ด๊ธธ๊ฒฝ์šฐ java.lang.SecurityException์ด ๋ฐœ์ƒํ•œ๋‹ค.
  • ํŒจํ‚ค์ง€ ์ด๋ฆ„์€ ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š”๊ฒŒ ๊ตญ๋ฃฐ์ด๋‹ค.

Package์˜ ์‹œ์ž‘์ด๋ฆ„

  • java : ์ž๋ฐ”๊ธฐ๋ณธํŒจํ‚ค์ง€, java ๋ฒค๋”์—์„œ ๊ฐœ๋ฐœ
  • javax : ์ž๋ฐ”ํ™•์žฅํŒจํ‚ค์ง€, java ๋ฒค๋”์—์„œ ๊ฐœ๋ฐœ
  • org : ์˜คํ”ˆ์†Œ์Šค ๋“ฑ ๋น„์˜๋ฆฌ๋‹จ์ฒด์˜ ํŒจํ‚ค์ง€ (ex) org.apache.xxx
  • com : ์˜๋ฆฌ๋‹จ์ฒด์˜ ํŒจํ‚ค์ง€

import static

  • Java 1.5๋ฒ„์ „๋ถ€ํ„ฐ import static์ด๋ผ๋Š”๊ฒƒ์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.
  • import static c.javapackage.sub.AnyClass.staticmethod;
  • ์œ„์™€ ๊ฐ™์ด ์„ ์–ธํ•˜๋ฉด ์ผ๋ฐ˜์ ์ธ import์™€ ๋‹ค๋ฅด๊ฒŒ static method, field๋ฅผ ํŒจํ‚ค์ง€ ๋ฐ ํด๋ž˜์Šค๋ช… ์—†์ด ์ ‘๊ทผ๊ฐ€๋Šฅํ•˜๋‹ค.

FQCN

  • ํŒจํ‚ค์ง€์™€ ํด๋ž˜์Šค๋ฅผ ๋ชจ๋‘ ๊ธฐ์ˆ ํ•˜๋Š” ๊ฒƒ์„ FQCN(Fully Qualified Class Name)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • ์ด๋ฆ„์ด ๋™์ผํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ์–ด์ฉ” ์ˆ˜ ์—†์ด ํ•œ์ชฝ์€ FQCN์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.
  • c.javapackage.sub.AnyClass anyClass = new c.javapacakge.sub.AnyClass();
  • import static c.javapackage.sub.AnyClass.*;๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

import๋ฅผ ์•ˆํ•ด๋„ ๋˜๋Š” ๊ฒฝ์šฐ

  • java.lang ํŒจํ‚ค์ง€ (Built-in package๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค)
  • ๊ฐ™์€ ํŒจํ‚ค์ง€ (hierarchy์™€๋Š” ์ƒ๊ด€์ด ์—†๋‹ค. ํ•˜๋‚˜๋ผ๋„ ๋‹ค๋ฅด๋ฉด ๋‹ค๋ฅธ๊ฑฐ๋‹ค.)

์ ‘๊ทผ์ง€์ •์ž

  • Package๋Š” ์ ‘๊ทผ์ง€์ •์ž์™€๋„ ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค.

package-private

  • ์•„๋ฌด ์ ‘๊ทผ ์ œ์–ด์ž๋„ ์ ์ง€ ์•Š์œผ๋ฉด, ๋””ํดํŠธ๋กœ package-private ์ ‘๊ทผ์ง€์ •์ž๊ฐ€ ๋œ๋‹ค.
  • ๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด์— ์žˆ์„๋•Œ private์—๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

ํด๋ž˜์Šค ์„ ์–ธ๊ณผ ์ ‘๊ทผ์ง€์ •์ž

  • ์ ‘๊ทผ์ง€์ •์ž๋Š” ํด๋ž˜์Šค ์„ ์–ธ์—๋„ ๋ถ™์„ ์ˆ˜ ์žˆ๋‹ค.
// ์ด ๊ฒฝ์šฐ ํŒŒ์ผ๋ช…์€ ๋ฐ˜๋“œ์‹œ AAA.java์ด์–ด์•ผ ํ•œ๋‹ค  
public class AAA {  
  
}  
  • java ํŒŒ์ผ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํด๋ž˜์Šค๊ฐ€ ์žˆ๋Š” ๊ฒƒ์€ ์ƒ๊ด€์—†์ง€๋งŒ
  • ํ•˜๋‚˜์˜ java ํŒŒ์ผ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ public class๋Š” ์žˆ์„ ์ˆ˜ ์—†๋‹ค.

  • [1] ์ด์ƒ๋ฏผ, 9์žฅ โ€œ์ž๋ฐ”๋ฅผ ๋ฐฐ์šฐ๋ฉด ํŒจํ‚ค์ง€์™€ ์ ‘๊ทผ ์ œ์–ด์ž๋Š” ๊ผญ ์•Œ์•„์•ผ ํ•ด์š”โ€, ์ž๋ฐ”์˜็ฅž 2nd Edition
    [2] ์ƒํ™œ์ฝ”๋”ฉ, ํŒจํ‚ค์ง€ - ์ƒํ™œ์ฝ”๋”ฉ