{"id":15741207,"url":"https://github.com/dongju-na/java-reflection-study","last_synced_at":"2026-03-01T20:31:40.979Z","repository":{"id":254205155,"uuid":"845800103","full_name":"DongJu-Na/java-reflection-study","owner":"DongJu-Na","description":"리플렉션 쉽게 이해하기!","archived":false,"fork":false,"pushed_at":"2024-08-22T01:23:24.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-13T09:39:13.540Z","etag":null,"topics":["example-code","java","korea","reflection","study"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DongJu-Na.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-22T00:27:02.000Z","updated_at":"2024-08-25T23:55:36.000Z","dependencies_parsed_at":"2024-08-22T02:40:02.222Z","dependency_job_id":"40db6c44-eaa5-40f7-a9c4-8424452a90ee","html_url":"https://github.com/DongJu-Na/java-reflection-study","commit_stats":null,"previous_names":["dongju-na/java-reflection-study"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DongJu-Na/java-reflection-study","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DongJu-Na%2Fjava-reflection-study","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DongJu-Na%2Fjava-reflection-study/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DongJu-Na%2Fjava-reflection-study/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DongJu-Na%2Fjava-reflection-study/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DongJu-Na","download_url":"https://codeload.github.com/DongJu-Na/java-reflection-study/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DongJu-Na%2Fjava-reflection-study/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29983148,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T16:35:47.903Z","status":"ssl_error","status_checked_at":"2026-03-01T16:35:44.899Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["example-code","java","korea","reflection","study"],"created_at":"2024-10-04T03:00:23.433Z","updated_at":"2026-03-01T20:31:40.963Z","avatar_url":"https://github.com/DongJu-Na.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 자바 리플렉션 예제\n\n이 프로젝트는 자바의 리플렉션 기능을 활용하여 클래스, 메서드, 필드에 동적으로 접근하는 다양한 방법을 소개합니다. 코드는 객체지향적으로 설계되어 있어 리플렉션의 개념을 쉽게 이해할 수 있도록 구성되어 있습니다.\n\n## 자바 리플렉션이란?\n\n자바 리플렉션은 프로그램이 실행 중일 때 클래스, 메서드, 필드 등을 동적으로 조회하고 조작할 수 있게 해주는 기능입니다. 이를 통해 런타임에 클래스의 구조를 알아내고, 객체의 메서드를 호출하거나 필드의 값을 수정할 수 있습니다.\n\n## 프로젝트 구조\n\n이 프로젝트는 다음과 같은 구조로 되어 있습니다.\n\n\n\n```\njava-reflection-study/\n│\n├── src/\n│   ├── Main.java\n│   ├── com/\n│   │   └── example/\n│   │       ├── examples/\n│   │       │   ├── ClassInfoExample.java\n│   │       │   ├── FieldAccessExample.java\n│   │       │   ├── MethodInvocationExample.java\n│   │       └── interfaces/\n│   │       │   └── ReflectionExample.java\n│   │       ├── utils/\n│   │       │   └── ReflectionUtils.java\n│   │       ├── MyClass.java\n│   │       ├── Person.java\n│   │       └── ExampleRunner.java\n│\n└── README.md\n```\n\n\n\n## 주요 클래스 및 인터페이스 설명\n\n- **`interfaces/ReflectionExample.java`**: 리플렉션 예제들을 위한 공통 인터페이스입니다. 모든 리플렉션 예제 클래스는 이 인터페이스를 구현해야 합니다.\n\n- **`examples/ClassInfoExample.java`**: 클래스의 정보를 출력하는 예제입니다. 클래스의 이름, 메서드 목록, 필드 목록 등을 출력합니다.\n\n- **`examples/MethodInvocationExample.java`**: 객체의 메서드를 동적으로 호출하는 예제입니다. 메서드 이름과 인자를 통해 메서드를 호출합니다.\n\n- **`examples/FieldAccessExample.java`**: 객체의 필드 값을 동적으로 접근하고 수정하는 예제입니다. 필드 이름과 값을 통해 필드를 수정합니다.\n\n- **`utils/ReflectionUtils.java`**: 리플렉션 관련 유틸리티 메서드를 제공하는 클래스입니다. 클래스 정보 출력, 메서드 호출, 필드 접근 등의 기능을 구현하고 있습니다.\n\n- **`ExampleRunner.java`**: 다양한 리플렉션 예제들을 실행하는 클래스입니다. 예제들을 리스트에 추가하고, 이를 순차적으로 실행합니다.\n\n- **`Main.java`**: 프로그램의 진입점입니다. `ExampleRunner`를 사용하여 모든 리플렉션 예제를 실행합니다.\n\n## 예제 실행 방법\n\n1. 이 저장소를 클론합니다.\n2. 선호하는 IDE(예: IntelliJ IDEA, Eclipse 등)에서 프로젝트를 엽니다.\n3. `Main.java` 파일을 실행합니다. 그러면 `ExampleRunner`가 다양한 리플렉션 예제를 차례로 실행하여 결과를 콘솔에 출력합니다.\n\n## 학습 목표\n\n이 프로젝트를 통해 자바 리플렉션의 기본 개념을 익히고, 리플렉션을 사용하는 다양한 방법을 학습할 수 있습니다. 객체지향 설계를 통해 코드의 유지보수성과 확장성을 높이는 방법도 배울 수 있습니다.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdongju-na%2Fjava-reflection-study","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdongju-na%2Fjava-reflection-study","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdongju-na%2Fjava-reflection-study/lists"}