| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Java JPA Entity 클래스를 자동으로 분석하여 데이터베이스 테이블 명세서와 DDL 스크립트를 생성하는 Python 도구
Spring Boot/JPA 프로젝트에서 Entity 클래스를 작성한 후, 별도로 테이블 명세서를 작성하는 것은 번거롭고 실수하기 쉬운 작업입니다. 이 도구는 Java Entity 클래스를 자동으로 분석하여 다음을 생성합니다:
Entity 코드가 곧 문서가 되어, 코드와 문서의 불일치를 방지하고 생산성을 높일 수 있습니다.
pip install pandas openpyxl mysql-connector-python또는 requirements.txt 사용:
pip install -r requirements.txtrequirements.txt:
pandas>=1.3.0 openpyxl>=3.0.0 mysql-connector-python>=8.0.0
python3 entity_spec_generator.py /path/to/your/spring-projectpython3 entity_spec_generator.py /path/to/your/spring-project \
--db-host localhost \
--db-port 3306 \
--db-user root \
--db-password yourpassword \
--db-name yourdatabasepython3 entity_spec_generator.py /path/to/your/spring-project \
-o ./output \
--db-host localhost \
--db-user root \
--db-password password \
--db-name mydbpython3 entity_spec_generator.py /path/to/your/spring-project \
--log ./debug.log| 옵션 | 설명 | 필수 | 기본값 |
|---|---|---|---|
| project_path | Spring 프로젝트 루트 경로 | ✅ | - |
| -o, --output | 출력 파일 저장 경로 | ❌ | . (현재 디렉토리) |
| --log | 로그 파일 경로 | ❌ | 자동 생성 |
| --db-host | MySQL 호스트 | ❌ | - |
| --db-port | MySQL 포트 | ❌ | 3306 |
| --db-user | MySQL 사용자명 | ❌ | - |
| --db-password | MySQL 비밀번호 | ❌ | - |
| --db-name | 데이터베이스명 | ❌ | - |
실행 후 다음 파일들이 생성됩니다:
-- 예시
ALTER TABLE `user` COMMENT '사용자';
ALTER TABLE `user` MODIFY COLUMN `user_id` bigint NOT NULL auto_increment COMMENT '사용자ID';
ALTER TABLE `user` MODIFY COLUMN `email` varchar(100) NOT NULL COMMENT '이메일 주소';
ALTER TABLE `user` MODIFY COLUMN `status` varchar(20) NOT NULL COMMENT '상태 [Enum:STRING]';@Getter
@NoArgsConstructor
@Entity
@Table(name="user")
@Description("사용자")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Description("사용자ID")
@Column(nullable=false)
private Long id;
@Description("이메일 주소")
@Column(nullable=false, length=100, unique=true)
private String email;
@Description("사용자명")
@Column(nullable=false, length=50)
private String userName;
@Description("상태")
@Enumerated(EnumType.STRING)
@Column(nullable=false, length=20)
private UserStatus status;
@Description("소속 팀")
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="team_id", nullable=false)
private Team team;
// 생략...
}본 도구는 "있는 그대로(AS-IS)" 제공되며, 사용으로 인해 발생하는 모든 결과에 대한 책임은 사용자에게 있습니다.
생성된 DDL 스크립트는 반드시 검토 후 실행하세요
파싱 오류 가능성
DB 연결 사용 권장
지원하지 않는 기능
보안
본 프로젝트는 MIT 라이센스 하에 배포됩니다.
MIT License Copyright (c) 2025 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
기여를 환영합니다! 다음과 같은 방법으로 참여할 수 있습니다:
# 저장소 클론
git clone https://github.com/yourusername/java-entity-spec-generator.git
cd java-entity-spec-generator
# 가상환경 생성 (선택사항)
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 의존성 설치
pip install -r requirements.txt
# 테스트 실행
python3 entity_spec_generator.py ./test-project이 프로젝트는 Spring Boot/JPA 프로젝트에서 Entity와 문서의 일관성을 유지하기 위해 시작되었습니다. 사용해주시고 피드백을 주시는 모든 분들께 감사드립니다.
Happy Coding! 🚀
| Back | FazBrowse Home | New Git URL |