Skip to content

Conversation

@bluejick
Copy link

@bluejick bluejick commented Sep 17, 2025

개요

전자정부 표준프레임워크의 세계화를 위한 국제화 작업 및 현대적인 설정 관리 방식 도입

기여 목표

전자정부 표준프레임워크의 글로벌 접근성 향상 및 개발자 경험 혁신을 통한 세계화 기여

설정 자동화 시스템

  • YAML 설정만으로 프로퍼티 관리
  • DB 타입 변경만으로 자동 데이터소스 전환
  • 네이밍 컨벤션 : YAML(kebab-case) ↔ Java(PascalCase) 자동 변환

국제화 지원

  • 이중 언어 : 모든 주석과 문서에 한글-영문 병행 표기
  • 글로벌 표준 : Spring Boot 권장 사항 준수
  • 심플 백엔드 호환 : 기존 전자정부 프로젝트와 일관성 확보

현대적 아키텍처

  • 중앙 집중 관리 : 모든 설정이 application.yml에서 관리
  • 확장성 : 새 기능 추가 시 YAML만 수정

수정 사유 Reason for modification

소스를 수정한 사유가 무엇인지 체크해 주세요. Please check the reason you modified the source. ([X] X는 대문자여야 합니다.)

  • 버그수정 Bug fixes
  • 기능개선 Enhancements
  • 기능추가 Adding features
  • 기타 Others

수정된 소스 내용 Modified source

검토자를 위해 수정된 소스 내용을 설명해 주세요. Please describe the modified source for reviewers.

첫 번째 커밋: 기본 국제화 및 YAML 변환

  • application.properties → application.yml 변환
  • README.md 한글-영문 병행 표기로 국제화
  • Spring Boot 권장 YAML 형식 적용
  • 한글-영문 병행 주석으로 글로벌 접근성 향상

두 번째 커밋: 프로퍼티 자동화 시스템 구축

  • EgovConfigProperties.java 완전 자동화 구현
  • Apache Commons Text CaseUtils 활용한 kebab-case → camelCase 자동 변환
  • YAML 프로퍼티 추가만으로 Java 코드 수정 없이 확장 가능
  • context-properties-convert.md 문서 자동화 방식으로 업데이트

세 번째 커밋: Globals 방식 및 다중 DB 지원

  • "심플 백엔드 프로젝트" 호환 Globals.* 구조로 프로퍼티 체계 통일
  • kebab-case → PascalCase 자동 변환 (Globals.page-unit → Globals.PageUnit)
  • EgovConfigDatasource.java에 MySQL, Oracle 동적 지원 추가
  • DB 타입별 프로퍼티 자동 매핑 및 커넥션 풀 설정
  • 모든 문서를 Globals 방식으로 업데이트

JUnit 테스트 JUnit tests

테스트를 완료하셨으면 다음 항목에 [대문자X]로 표시해 주세요. When you're done testing, check the following items.

  • JUnit 테스트 JUnit tests
  • 수동 테스트 Manual testing

테스트 브라우저 Test Browser

테스트를 진행한 브라우저를 선택해 주세요. Please select the browser(s) you ran the test on. (다중 선택 가능 you can select multiple) [X] X는 대문자여야 합니다.

  • Chrome
  • Firefox
  • Edge
  • Safari
  • Opera
  • Internet Explorer
  • 기타 Others

테스트 스크린샷 또는 캡처 영상 Test screenshots or captured video

테스트 전과 후의 스크린샷 또는 캡처 영상을 이곳에 첨부해 주세요. Please attach screenshots or video captures of your before and after tests here.

정상 스프링 구동 및 서비스 실행테스트만 진행.

설정내용
image

부팅실행로그
image

페이징 설정 변경 (HSQL, 15, 5)
image

MySql 동적 적용
image

- application.properties 파일 삭제
- application.yml 파일 신규 생성 (한글-영문 병행 주석)
- UTF-8 인코딩으로 다국어 완벽 지원
- README.md에 YAML 변환 내용 반영
- Spring Boot 권장 YAML 형식 적용

feat: Convert application.properties to application.yml and add internationalization comments
- Delete application.properties file
- Create new application.yml file (Korean-English bilingual comments)
- Perfect multilingual support with UTF-8 encoding
- Reflect YAML conversion content in README.md
- Apply Spring Boot recommended YAML format
- application.yml에 egov 프로퍼티 섹션 추가 (한글-영문 병행 주석)
- EgovConfigProperties.java를 자동화 방식으로 개선
- Apache Commons Text CaseUtils를 활용한 kebab-case → camelCase 자동 변환
- YAML에 프로퍼티만 추가하면 Java 코드 수정 없이 자동 등록
- context-properties-convert.md 문서를 자동화 방식으로 업데이트

feat: Implement YAML integration and automation for eGovFrame properties
- Add egov properties section to application.yml with bilingual comments
- Improve EgovConfigProperties.java with automated approach
- Implement automatic kebab-case → camelCase conversion using Apache Commons Text CaseUtils
- Enable automatic property registration by only adding properties to YAML
- Update context-properties-convert.md documentation with automation approach
@bluejick bluejick changed the title feat: application.properties를 application.yml로 변환 및 국제화 주석 추가 feat: 전자정부 프레임워크 국제화 및 YAML 기반 프로퍼티 자동화 구현 Sep 17, 2025
- application.yml을 심플백엔드 호환 Globals.* 구조로 변경
- EgovConfigProperties.java에서 Globals.* 프로퍼티 자동 변환 (kebab-case → PascalCase)
- EgovConfigDatasource.java에 MySQL, Oracle 동적 지원 추가
- Apache Commons Text CaseUtils 활용한 DB 타입별 프로퍼티 자동 매핑
- 기존 propertiesService 사용 부분을 Globals.* 키로 업데이트

feat: Improve eGovFrame properties to Globals approach and add multi-database support
- Change application.yml to simple-backend compatible Globals.* structure
- Implement automatic Globals.* property conversion in EgovConfigProperties.java (kebab-case → PascalCase)
- Add dynamic MySQL and Oracle support in EgovConfigDatasource.java
- Utilize Apache Commons Text CaseUtils for database-type-specific property mapping
- Update existing propertiesService usage to Globals.* keys
@eGovFrameSupport
Copy link
Contributor

[2025년 전자정부 표준프레임워크 컨트리뷰션 참가 기념품 발송안내]

안녕하세요
전자정부 표준프레임워크 센터입니다.

'25년 5월부터 전자정부 서비스 개발 표준 기반인 "전자정부 표준프레임워크" 개선에 민간 SW개발자의 아이디어와 의견을 반영하기 위해 "2025 전자정부 표준프레임워크 컨트리뷰션"을 개최하였습니다.
표준프레임워크 깃허브(github.com/egovframework)에 보내주신 귀하의 의견에 감사드리며, 전자정부 표준프레임워크 운영·개선 과정에서 유용하게 활용토록 하겠습니다.
본 설문에 응답 주시면 표준프레임워크에서 마련한 소정의 기념품을 발송 드릴 예정이오니, 문항에 빠짐없이 응답 해 주시기 바랍니다.
아래의 URL을 통하여 설문지로 이동, 항목에 응답 부탁드립니다.

https://forms.gle/RmYSLrasGMoy1diU8

앞으로도 전자정부 표준프레임워크에 지속적인 관심 부탁드립니다.

※ 센터에서 준비한 감사장과 표준프레임워크 오픈커뮤니티에서 소정의 기념품을 택배 배송 해 드립니다.
※ 컨트리뷰션 종료 후, 시상 관련하여 연락 갈 예정이오니, 꼭 통화 가능한 본인번호를 기재해 주시기 바랍니다.
※ 귀하께서 답변해 주시는 내용은 컨트리뷰션 참가 확인 및 기념품 발송 목적으로만 활용되며, 개인정보는 기념품 발송 후 즉시 영구 삭제처리 됩니다.

감사합니다.

</dependency>
-->
<dependency>
<groupId>org.apache.commons</groupId>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

다음과 같이 변경 바랍니다

<groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
(... 이하 동일)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mysql-connector-j 8.0.33 은 CVE-2023-22102 이슈로 인해 LTS 8.4.0으로 변경

Globals:
# 페이징 설정
# Pagination settings
page-unit: 15
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

최초 설정과 동일하게 page-unit는 10으로 변경 바랍니다.


# 데이터베이스 설정(hsql,mysql,oracle)
# Database settings
db-type: "mysql"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

디폴트 데이터베이스 타입은 mysql로 변경 바랍니다.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

기본값이었던 hsql을 말씀하시는 거겠죠?

- MySQL 커넥터 업데이트
  - mysql:mysql-connector-java:8.0.33 → com.mysql:mysql-connector-j:8.4.0
application.yml:
- 페이징 설정 변경
  - page-unit: 15 → page-unit: 10
  - page-size: 5 → page-size: 10
- 기본 DB 타입 변경
  - db-type: "mysql" → "hsql"
@eGovFrameSupport
Copy link
Contributor

표준프레임워크에 대한 지속적인 참여에
대단히 감사드립니다.

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

Successfully merging this pull request may close these issues.

2 participants