Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CHAPTER 14 자바 모듈 시스템 #21

Open
kyupid opened this issue May 27, 2023 · 2 comments
Open

CHAPTER 14 자바 모듈 시스템 #21

kyupid opened this issue May 27, 2023 · 2 comments

Comments

@kyupid
Copy link
Member

kyupid commented May 27, 2023

14.1 압력 : 소프트웨어 유추 @Soojae
14.2 자바 모듈 시스템을 설계한 이유 @leesangwon231

14.3 자바 모듈 : 큰 그림 @jellyb3ar
14.4 자바 모듈 시스템으로 애플리케이션 개발하기 @jellyb3ar

14.5 여러 모듈 활용하기 @qkrtpgh5033

14.6 컴파일과 패키징 @reddevilmidzy
14.7 자동 모듈 @reddevilmidzy

14.8 모듈 정의와 구문들 @leeyj4470
14.9 더 큰 예제 그리고 더 배울 수 있는 방법 @leeyj4470

이번에는 14.3, 14.7, 14.9 와 같이 분량이 한장이거나 한장도 안되어서
좀 나누어 담당하기가 애매한 부분들을 합쳤습니다.

@Soojae
Copy link
Contributor

Soojae commented Jun 3, 2023

14 .1

하지만 자바 9 이전까지는 클래스와 패키지가 의도된 대로 공개 되었는지를 컴파일러로 확인할 수 있는 기능이 없었다.

https://raspberrylounge.medium.com/%EC%9E%90%EB%B0%94%EC%97%90%EC%84%9C-%ED%8C%A8%ED%82%A4%EC%A7%80-package-%EC%99%80-%EB%AA%A8%EB%93%88-module-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-16b2eda177b4
의 5번째 문단

클래스를 숨길 수는 있지만 공개 또는 비공개 둘 중 하나만 선택할 수 있어 여러 패키지에서 공용으로 사용할 클래스를 외부에 대해 숨길 수 없다. 공용으로 사용할 클래스를 공개해 버리면 라이브러리 내부 뿐만 아니라 외부에서도 자유롭게 사용할 수 있다. 클래스는 패키지 내부로 숨길 수 있지만 패키지는 숨겨 두고 내부에서만 사용할 방법이 없다.

를 보시면

  1. 클래스는 공개, 비공개 둘중에 하나 밖에 선택하지 못합니다. 그래서 공개로 설정하면 외부에 숨기고 싶어도 외부에 대해 숨길 수 없습니다.
  2. 클래스는 패키지를 내부로 숨길 수 있지만, 패키지는 숨겨두고 내부에서 사용하고 싶은데 사용할 방법이 없습니다.

위 경우들 모두 모듈 도입 전에는, 사용자의 의도와 맞지 않게 동작 해도 컴파일러로 의도된 대로 공개 되었는지는 확인할 방법이 없다는 뜻 같습니다.

결론: 의도된 대로 동작하지 않았다.

@kyupid
Copy link
Member Author

kyupid commented Jun 3, 2023

코멘트 감사합니다. 덕분에 모듈과 패키지에 대해 더 잘 이해하게 됐어요 ㅎㅎ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants