ํจํค์ง
ํจํค์ง - ์์
๋งค์ฐ ๋ง์ ํด๋์ค๊ฐ ๋ฑ์ฅํ๋ฉด ๊ด๋ จ ์๋ ๊ธฐ๋ฅ๋ค์ ๋ถ๋ฅํด์ ๊ด๋ฆฌํ๊ณ ์ถ์ด ์ง๋ค.
์ปดํจํฐ๋ ๋ณดํต ํ์ผ์ ๋ถ๋ฅํ๊ธฐ ์ํด ํด๋, ๋๋ ํ ๋ฆฌ๋ผ๋ ๊ฐ๋
์ ์ ๊ณตํ๋ค. Java๋ ์ด๋ฐ ๊ฐ๋
์ ์ ๊ณตํ๋๋ฐ, ์ด๊ฒ์ด ๋ฐ๋ก ํจํค์ง๋ค.
* user
* User
* UserManager
* UserHistory
* product
* Product
* ProductCatalog
* ProductImage
* order
* Order
* OrderService
* OrderHistory
* cart
* ShoppingCart
* CartItem
* payment
* Payment
* PaymentHistory
* shipping
* Shipment
* ShipmentTracker
์ฌ๊ธฐ์ user, product ๋ฑ์ด ํจํค์ง์ด๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋น ํจํค์ง ์์ ๊ด๋ จ๋ Java ํด๋์ค๋ค์ ๋ฃ์ผ๋ฉด ๋๋ค.
ํจํค์ง(package)๋ ์ด๋ฆ ๊ทธ๋๋ก ๋ฌผ๊ฑด์ ์ด์กํ๊ธฐ ์ํ ํฌ์ฅ ์ฉ๊ธฐ๋ ๊ทธ ํฌ์ฅ ๋ฌถ์์ ๋ปํ๋ค.
ํจํค์ง ์ฌ์ฉ
ํจํค์ง ์์น์ ์ฃผ์ํด์ผ ํ๋ค.
pack.Data
package pack;
public class Data {
public Data() {
System.out.println("ํจํค์ง pack Data ์์ฑ");
}
}
- ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํญ์ ์ฝ๋ ์ฒซ ์ค์ package pack๊ณผ ๊ฐ์ด ํจํค์ง ์ด๋ฆ์ ์ ์ด์ฃผ์ด์ผ ํ๋ค.
pack.a.User
package pack.a;
public class User {
public User () {
System.out.println("ํจํค์ง pack.a ํ์ ์์ฑ");
}
}
โ๏ธ ์ฐธ๊ณ
์์ฑ์์ public์ ์ฌ์ฉํ๋ค. ๋ค๋ฅธ ํจํค์ง์์ ์ด ํด๋์ค์ ์์ฑ์๋ฅผ ํธ์ถํ๋ ค๋ฉด public์ ์ฌ์ฉํด์ผ ํ๋ค.
pack.PackageMain1
package pack;
public class PackageMain1 {
public static void main(String[] args) {
Data data = new Data();
pack.a.User user = new pack.a.User();
}
}
- ์ฌ์ฉ์์ ๊ฐ์ ์์น : PackageMain1๊ณผ Data๋ ๊ฐ์ pack์ด๋ผ๋ ํจํค์ง์ ์์๋์ด ์๋ค. ์ด๋ ๊ฒ ๊ฐ์ ํจํค์ง์ ์๋ ๊ฒฝ์ฐ์๋ ํจํค์ง ๊ฒฝ๋ก๋ฅผ ์๋ตํด๋ ๋๋ค.
- ์ฌ์ฉ์์ ๋ค๋ฅธ ์์น : PackageMain1๊ณผ User๋ ์๋ก ๋ค๋ฅธ ํจํค์ง๋ค. ์ด๋ ๊ฒ ํจํค์ง๊ฐ ๋ค๋ฅด๋ฉด pack.a.User์ ๊ฐ์ด ํจํค์ง ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ํฌํจํด์ ํด๋์ค๋ฅผ ์ ์ด์ฃผ์ด์ผ ํ๋ค.
ํจํค์ง - import
import
package pack;
import pack.a.User;
public class PackageMain2 {
public static void main(String[] args) {
Data data = new Data();
User user = new User();
}
}
์ฝ๋์์ ์ฒซ ์ค์๋ package๋ฅผ ์ฌ์ฉํ๊ณ , ๋ค์ ์ค์๋ import๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
import๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ํจํค์ง์ ์๋ ํด๋์ค๋ฅผ ๊ฐ์ ธ์์ ์ฌ์ฉํ ์ ์๋ค.
import๋ฅผ ์ฌ์ฉํ ๋๋ถ์ ์ฝ๋์์๋ ํจํค์ง ๋ช
์ ์๋ตํ๊ณ ํด๋์ค ์ด๋ฆ๋ง ์ ์ ์ ์๋ค.
ํน์ ํจํค์ง์ ํฌํจ๋ ๋ชจ๋ ํด๋์ค์ ํฌํจํด์ ์ฌ์ฉํ๊ณ ์ถ์ผ๋ฉด import ์์ ์ *(๋ณ)์ ์ฌ์ฉํ๋ฉด ๋๋ค.
ํจํค์ง ๋ณ(*) ์ฌ์ฉ
package pack;
import pack.a.*;
public class PackageMain2 {
public static void main(String[] args) {
Data data = new Data();
User user = new User();
User2 user2 = new User2();
}
}
ํด๋์ค ์ด๋ฆ ์ค๋ณต
ํจํค์ง ๋๋ถ์ ํด๋์ค ์ด๋ฆ์ด ๊ฐ์๋ ํจํค์ง ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถํด์ ๊ฐ์ ์ด๋ฆ์ ํด๋์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
pack.a.User
pack.b.User
๊ฐ์ ์ด๋ฆ์ ํด๋์ค๊ฐ ์๋ค๋ฉด import๋ ๋ ์ค ํ๋๋ง ์ ํํ ์ ์๋ค. ์ด๋๋ ์์ฃผ ์ฌ์ฉํ๋ ํด๋์ค๋ฅผ import ํ๊ณ ๋๋จธ์ง๋ฅผ ํจํค์ง๋ฅผ ํฌํจํ ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ์ ์ด์ฃผ๋ฉด ๋๋ค. ๋ฌผ๋ก ๋ ๋ค ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ์ ์ด์ค๋ค๋ฉด import๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋๋ค.
ํจํค์ง ๊ท์น
ํจํค์ง ๊ท์น
- ํจํค์ง์ ์ด๋ฆ๊ณผ ์์น๋ ํด๋(๋๋ ํ ๋ฆฌ) ์์น์ ๊ฐ์์ผ ํ๋ค. (ํ์)
- ํจํค์ง ์ด๋ฆ์ ๋ชจ๋ ์๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ค. (๊ด๋ก)
- ํจํค์ง ์ด๋ฆ์ ์๋ถ๋ถ์๋ ์ผ๋ฐ์ ์ผ๋ก ํ์ฌ์ ๋๋ฉ์ธ ์ด๋ฆ์ ๊ฑฐ๊พธ๋ก ์ฌ์ฉํ๋ค.
์๋ฅผ ๋ค์ด com.company.myapp๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋ค. (๊ด๋ก)- ์ด ๋ถ๋ถ์ ํ์๊ฐ ์๋๋ค. ํ์ง๋ง ์๋ง์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํจ๊ป ์ฌ์ฉ๋๋ฉด ๊ฐ์ ํจํค์ง์ ๊ฐ์ ํด๋์ค ์ด๋ฆ์ด ์กด์ฌํ ์ ์๋ค. ์ด๋ ๊ฒ ๋๋ฉ์ธ ์ด๋ฆ์ ๊ฑฐ๊พธ๋ก ์ฌ์ฉํ๋ฉด ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
- ๋ด๊ฐ ์คํ์์ค๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค์ด์ ์ธ๋ถ์ ์ ๊ณตํ๋ค๋ฉด ๊ผญ ์งํค๋ ๊ฒ์ด ์ข๋ค.
- ๋ด๊ฐ ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅธ ๊ณณ์ ๊ณต์ ํ์ง ์๊ณ , ์ง์ ๋ฐฐํฌํ๋ค๋ฉด ๋ณดํต ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค.
ํจํค์ง์ ๊ณ์ธต ๊ตฌ์กฐ
- a
- b
- c
๊ณ์ธต ๊ตฌ์กฐ์ a ํจํค์ง ํ์์ a.b ํจํค์ง์ a.c ํจํค์ง๊ฐ ์๋ค.
๊ทธ๋ฐ๋ฐ a ํจํค์ง์ a.b, a.c ํจํค์ง๋ ์๋ก ์์ ํ ๋ค๋ฅธ ํจํค์ง์ด๋ค.
๋ฐ๋ผ์ a ํจํค์ง์ ํด๋์ค์์ a.b ํจํค์ง์ ํด๋์ค๊ฐ ํ์ํ๋ฉด import ํด์ ์ฌ์ฉํด์ผ ํ๋ค. ๋ฐ๋๋ก ๋ฌผ๋ก ๋ง์ฐฌ๊ฐ์ง์ด๋ค.
์ ๋ฆฌํ๋ฉด ํจํค์ง๊ฐ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ด๋ฃจ๋๋ผ๋ ๋ชจ๋ ํจํค์ง๋ ์๋ก ๋ค๋ฅธ ํจํค์ง์ด๋ค.
๋ฌผ๋ก ์ฌ๋์ด ์ดํดํ๊ธฐ ์ฝ๊ฒ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ ํ์ฉํด์ ํจํค์ง๋ฅผ ๋ถ๋ฅํ๋ ๊ฒ์ด ์ข๋ค.
์ฐธ๊ณ ๋ก ์นดํ
๊ณ ๋ฆฌ๋ ๋ณดํต ํฐ ๋ถ๋ฅ์์ ์ธ์ธํ ๋ถ๋ฅ๋ก ์ ์ ๋๋ ์ง๋ค. ํจํค์ง๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.
ํจํค์ง ํ์ฉ
์ค์ ๋์ํ๋ ์ฝ๋๋ ์๋์ง๋ง, ํฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๋๋ต ์ด๋ฐ ์์ผ๋ก ํจํค์ง๋ฅผ ๊ตฌ์ฑํ๋ค๊ณ ์ดํดํ๋ฉด ๋๋ค.
์ฐธ๊ณ ๋ก ์ด๊ฒ์ ์ ๋ต์ด ์๋๊ณ ํ๋ก์ ํธ ๊ท๋ชจ์ ์ํคํ
์ฒ์ ๋ฐ๋ผ์ ๋ฌ๋ผ์ง๋ค.
์ ์ฒด ๊ตฌ์กฐ๋
- com.helloshop
- user
- User
- UserService
- product
- Product
- ProductService
- order
- Order
- OrderService
- OrderHistory
- user
ํจํค์ง๋ฅผ ๊ตฌ์ฑํ ๋๋ ์๋ก ๊ด๋ จ๋ ํด๋์ค๋ ํ๋์ ํจํค์ง๋ก ๋ชจ์ผ๊ณ , ๊ด๋ จ์ด ์ ์ ํด๋์ค๋ ๋ค๋ฅธ ํจํค์ง๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์ข๋ค.
'Today I Learned(TIL) > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Java ๊ธฐ๋ณธํธ ๊ฐ์_final (2) | 2024.11.28 |
---|---|
Java ๊ธฐ๋ณธํธ ๊ฐ์_์ ๊ทผ ์ ์ด์ (1) | 2024.11.28 |
Java ๊ธฐ๋ณธํธ ๊ฐ์_์์ฑ์ (0) | 2024.11.26 |
Java ๊ธฐ๋ณธํธ ๊ฐ์_๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ (0) | 2024.11.26 |
Java ๊ธฐ๋ณธํธ ๊ฐ์_๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ (0) | 2024.11.26 |