Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 99클럽
- 코딩공부
- 정렬 알고리즘(sort algorithm)
- wil
- 항해99
- 코딩테스트 준비
- Til
- css
- aop
- cs 공부)준비
- 면접(java
- 개발자 취업
- 프로그래머스
- HTML
- GIT
- 메서드
- Entity
- 배열
- 회고
- 코딩
- 이진 탐색(binary search)
- Grafana
- Java
- github
- CS
- Spring
- 코딩문제
- 자바
- ArrayList
- 자료구조
Archives
- Today
- Total
hayu's 개발 일지
[TIL]240629 패키지(package)(1) 본문
공부한 내용
패키지(package)
- 컴퓨터는 보통 파일을 분류하기 위해 폴더, 디렉토리라는 개념을 제공한다. 자바에서 이런 개념을 제공하는 것이 패키지이다.
⇒ 클래스의 묶음으로 클래스를 용도별이나 기능별로 그룹화한 것을 말한다.
예시.
* user
* User
* UserManager
* UserHistory
* product
* Product
* ProductCatalog
* ProductImage
* order
* Order
* OrderService
* OrderHistory
* cart
* ShoppingCart
* CartItem
* payment
* Payment
* PaymentHistory
* shipping
* Shipment
* ShipmentTracker
- 패키지를 사용하는 경우 항상 코드 첫줄에 package pack과 같이 패키지 이름을 적어주어야 한다.
- 패키지는 클래스를 유일하게 만들어주는 식별자 역할을 한다.
- 같은 이름의 클래스 일지라도 서로 다른 패키지에 존재하는 것이 가능하므로,
- 자신만의 패키지 체계를 유지함으로써 충돌이 발생하지 않는다.
예시
package pack;
public class PackageMain1 {
public static void main(String[] args) {
Data data = new Data();
pack.a.User user = new pack.a.User();
}
}
// 실행 결과 :
// 패키지 pack Data 생성
// 패키지 pack.a 회원 생성
package 패키지명;
- 사용자와 같은 위치: 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(); //import 사용으로 패키지 명 생략 가능
}
}
// 실행 결과 :
// 패키지 pack Data 생성
// 패키지 pack.a 회원 생성
- 코드에서 첫줄에는 package 를 사용하고, 다음 줄에는 import 를 사용할 수 있다.
- import 를 사용하면 다른 패키지에 있는 클래스를 가져와서 사용할 수 있다.
- import 를 사용한 덕분에 코드에서는 패키지 명을 생략하고 클래스 이름만 적을 수 있다.
- 패키지 덕분에 클래스 이름이 같아도 패키지 이름으로 구분해서 같은 이름의 클래스를 사용할 수 있다.
→ 같은 이름이 있다면 import는 둘중 하나만 선택할 수 있다. 이때는 자주 사용하는 클래스를 import하고 나머지를 패키지를 포함한 전체 경로를 적어주면 된다. 물론 둘다 전체 경로를 적어준다면 import를 하지 않아도 된다.
패키지 - 규칙
- 패키지의 이름과 위치는 폴더(디렉토리) 위치와 같아야 한다. (필수)
- 패키지 이름은 모두 소문자를 사용한다. (관례)
- 패키지 이름의 앞 부분에는 일반적으로 회사의 도메인 이름을 거꾸로 사용한다. 예를 들어, com.company.myapp 과 같이 사용한다. (관례)
- 이 부분은 필수는 아니다. 하지만 수 많은 외부 라이브러리가 함께 사용되면 같은 패키지에 같은 클래스 이름이 존재할 수도 있다. 이렇게 도메인 이름을 거꾸로 사용하면 이런 문제를 방지할 수 있다.
- 내가 오픈소스나 라이브러리를 만들어서 외부에 제공한다면 꼭 지키는 것이 좋다.
- 내가 만든 애플리케이션을 다른 곳에 공유하지 않고, 직접 배포한다면 보통 문제가 되지 않는다.
회고
- 자바에 대한 공부기 부족하다는 사실을 깨닫고 다시한번 차근차근 공부하기로 했다.
참고 자료
- https://velog.io/@hyun_ha/JAVA-%ED%8C%A8%ED%82%A4%EC%A7%80Package
'기술 > java' 카테고리의 다른 글
[TIL]240701 접근 제어자(1) (0) | 2024.07.01 |
---|---|
[TIL]240630 패키지(package)(2) (0) | 2024.06.30 |
99클럽 코테 스터디 24일차 TIL + this (0) | 2024.06.13 |
99클럽 코테 스터디 23일차 TIL + 캡슐화 (0) | 2024.06.12 |
99클럽 코테 스터디 21일차 TIL + 애너테이션(Annotation) (0) | 2024.06.10 |