## 문제 상황
- Java 9 이상에서 JavaFX 프로젝트를 만들고 TableView에 데이터를 표시하려고 할 때, 다음과 같은 오류 발생
Caused by: java.lang.IllegalAccessException: module javafx.base cannot access class employee.Employee (in module com.example.worktimetracker) because module com.example.worktimetracker does not open employee to javafx.base
- 또는 TableView의 각 컬럼에서 `Can not retrieve property ...` 오류가 발생.
## 원인
- Java 9 이상의 모듈 시스템(JPMS) 환경에서는 TableView의 `propertyValueFactory`나 FXML 로딩이 내부적으로 리플렉션을 사용한다.
- 리플렉션으로 접근하려면, 해당 패키지를 `Modulue-info.java`에서 `open`으로 열어줘야 한다.
## 해결 방법
1. module-info.java 파일 열기
대게 프로젝트의 src/main/java/module-info.java 로 위치해 있다.
2. opens 지시문 추가
```java
module com.example.worktimetracker {
requires javafx.controls;
requires javafx.fxml;
// ...
opens employee to javafx.base, javafx.fxml;
//본인은 employee 패키지가 해당되었고 이를 open시켜 주었음
}
```
- `open 해당패키지 to javafx.base, javafx.fxml;`
→ 패키지를 TableView와 FXML에서 리플렉션으로 접근할 수 있게 연다.
## 결과
- TableView, FXML, PropertyValueFactory 관련 리플렉션 오류가 모두 해결되었고, 데이터가 정상적으로 TableView에 표시됨.