- 본 GitHub 저장소 생성 목적은 표준프레임워크 포털에서 제공하고 있는 DokuWiki 가이드 문서를 간단하고 직관적인 Markdown 형식의 문서로 변환하여 기여받는 것입니다.
- 이 프로젝트의 목적은 쉽게 접근 가능한 Markdown 형식의 문서를 통해 사용자와 개발자들이 표준프레임워크를 더욱 편리하게 활용할 수 있도록 돕는 것입니다.
- 이 프로젝트의 특징은 기여자가 문서 및 이미지를 기여하면 그 즉시 자동으로 배포되어 웹사이트를 통해 결과를 확인할 수 있는 것입니다.
- 2025년 표준프레임워크 가이드 컨트리뷰션 범위는 개발환경, 실행환경, 실행환경 예제, 공통컴포넌트입니다(2024년도에는 실행환경 문서로 한정).
프론트매터 작성 방법을 참고해 주시기 바랍니다.
- Github의 egovframe-docs 레포지토리를 Fork합니다.
- Fork하여 생성된 개인 레포지토리를 clone하여 로컬에 코드를 받아옵니다.
git clone {Fork하여 생성된 개인 레포지토리의 URL}
- upstream으로 egovframe-docs 레포지토리를 연결합니다.
git remote add upstream https://github.com/eGovFramework/egovframe-docs.git
- 정상적이라면
git remote -v
명령시 origin에는 개인 repository URL이, upstream에는https://github.com/eGovFramework/egovframe-docs.git
이 설정되어 있습니다.
- 작업 시작 전에 upstream인 egovframe-docs 레포지토리의 main 브랜치와 싱크를 맞춥니다.
git fetch upstream main
- 내 로컬의 메인 브랜치(main)로 체크아웃 합니다.
git checkout main
- upstream과 병합합니다(또는 리베이스).
- 병합 :
git merge upstream/main
- 리베이스 :
git rebase upstream/main
- 병합 :
- 충돌이 발생한다면 해결합니다.
- (선택)내 origin에도 동기화를 해둡니다.
git push origin main
- 작업을 진행합니다.
- 변경사항을 스테이징한 후 커밋합니다.
git add .
git commit -m "커밋 메시지 작성"
- push 하기 전에 upstream인 egovframe-docs 레포지토리의 main 브랜치와 다시 한 번 싱크를 맞춥니다(충돌 방지 및 자동 배포 목적).
git fetch upstream main
- upstream과 병합합니다(또는 리베이스).
- 병합 :
git merge upstream/main
- 리베이스 :
git rebase upstream/main
- 병합 :
- 충돌이 발생한다면 해결합니다.
- 충돌난 파일을 열어서 수정
- 수정된 파일을 스테이징 :
git add .
또는git add {file}
- 병합(또는 리베이스) 완료
- 병합 :
git commit
# 자동으로 머지 커밋 메시지가 설정됨 - 리베이스 :
git rebase --continue
- 병합 :
- 병합(또는 리베이스)을 원복하려면
- 병합 취소(원복) :
git merge --abort
- 리베이스 취소(원복) :
git rebase --abort
- 병합 취소(원복) :
- 내 origin에 push 합니다.
git push origin main
- Github에서 내 개인 레포지토리(egovframe-docs를 포크한 레포지토리) 페이지로 이동합니다.
- “Compare & pull request” 버튼을 클릭합니다.
- 제목과 설명 입력 후 “Create pull request” 버튼을 클릭합니다.
- 작성자가 남긴 PR이 자동으로 Merge가 성공했다면,egovframe-docs의 PR탭에서 본인이 남긴 PR이 closed 처리됩니다.
- 그 후 자동으로 빌드 및 배포과정이 진행됩니다. 이 과정은 egovframe-docs의 Actions탭에서 확인 가능합니다.
- 잠시 후 본인의 PR에 대한 배포가 완료되면, egovframe-docs 사이트에서 작업 결과를 확인하실 수 있습니다.
- 작성자가 남긴 PR이 자동으로 Merge가 실패했다면,egovframe-docs의 PR탭에서 본인이 남긴 PR이 여전히 open 상태로 남아 있습니다.
- 다시 위 "작업 완료" 부분에
git fetch upstream main
부터 실행하여git push origin main
까지를 완료합니다. - 그러면 추가적인 PR을 작성하지 않더라도, 본인이 이전에 남긴 PR에서 자동으로 새로운 commit이 추가되고, 다시 자동 Merge 과정을 거칩니다.
- 자동으로 Merge 성공시, 위 "PR 자동 Merge 성공시"에 서술된 프로세스가 진행됩니다.
-
현재 개발가이드와 유사하게 구성되어 있습니다.
-
문서 파일과 관련 리소스는 다음과 같은 디렉토리 구조를 따릅니다.
-
모든
_index.md
파일과 아래 코드블럭에서 표시된 MD파일은 identifier 값을 갖고 있습니다(egovframe-runtime 제외). 프론트매터의 url, parent 등을 작성할 때 아래 디렉토리 구조를 참고 부탁드립니다.
/common-component 공통컴포넌트
├── /collaboration 협업
│ ├── /address.md 주소록/명함록
│ ├── /board.md 게시판
│ ├── /community.md 커뮤니티
│ ├── /edsm.md 전자결재
│ ├── /schedule.md 일정관리
│ └── /sms.md 문자메세지
├── /digital-asset-management 디지털 자산관리
│ └── /knowledge-map.md 지식맵
├── /elementary-technology 요소기술
│ ├── /calendar.md 달력
│ ├── /cookie-session.md 쿠키/세션
│ ├── /external-components.md 외부 추가 컴포넌트
│ ├── /formatter-util.md 포맷/계산/변환
│ ├── /interface.md 인터페이스/화면
│ ├── /message-process.md 메시지 처리
│ ├── /new-components-v3.2.md 신규 컴포넌트(v3.2)
│ ├── /print.md 인쇄/출력
│ ├── /system.md 시스템
│ └── /webeditor.md 웹에디터
├── /intro 개요
├── /security 보안
│ └── /authority-management.md 권한관리
├── /statistics-reporting 통계/리포팅
├── /system-management 시스템관리
│ ├── /batch-manage.md 배치관리
│ ├── /common-code-manage.md 공통코드관리
│ ├── /error-manage.md 장애관리
│ ├── /log-manage.md 로그관리
│ ├── /menu-manage.md 메뉴관리
│ ├── /program-manage.md 프로그램관리
│ └── /system-manage.md 시스템관리
├── /system-service-linkage 시스템/서비스연계
├── /user-authentication 사용자디렉토리/통합인증
│ └── /login.md 일반 로그인
└── /user-support 사용자지원
├── /information-provided.md 정보제공/알림
├── /member-manage.md 사용자관리
├── /online-help.md 온라인헬프
├── /online-practice.md 온라인참여
├── /personalization.md 개인화
└── /terms-manage.md 약관관리
/egovframe-development 개발환경
├── /configuration-management-tool 형상 관리 도구
│ ├── /change-management.md Change Management
│ └── /configuration-management.md Configuration Management
├── /deployment-tool 배포 도구
│ └── /build-tool.md Build Tool
│ ├── /docker.md 컨테이너 가상화(Docker) 빌드
│ ├── /gradle.md 개인빌드(Gradle)
│ └── /maven.md 개인빌드(Maven)
├── /development-etcdevtool-guide 활용 가이드
├── /implementation-tool 구현 도구
│ ├── /editor.md Editor
│ ├── /batch-IDE.md Batch IDE
│ ├── /code-generation.md Code Generation
│ ├── /code-inspection.md Code Inspection
│ ├── /dbio-editor.md DBIO Editor
│ ├── /server-connection-management.md Server Connection Management
│ ├── /uml-editor.md UML Editor
│ └── /debug.md Debug
├── /individual-install-guide 구성 가이드
├── /install-guide 설치 가이드
├── /intro 소개
├── /operation-guide 운영 가이드
└── /test-tool 테스트 도구
├── /test-automation.md Test Automation
└── /unit-test.md Unit Test
/egovframe-runtime 실행환경
├── /batch-layer 배치처리
├── /business-logic-layer 업무처리
├── /foundation-layer-core 공통기반 핵심
├── /foundation-layer 공통기반
├── /integration-layer 연계통합
├── /intro 실행환경 소개
├── /persistence-layer 데이터처리
└── /presentation-layer 화면처리
/runtime-example 실행환경 예제
├── /integrated-example 실행환경 통합 예제
│ └── /intro 개요
│ └── /integrated-example-intro.md 통합예제 개요
│ └── /installation.md 설치법
| └── /usage 사용법
│ └── /member.md 회원 관리
│ └── /board.md 게시판 관리
│ └── /category.md 카테고리 관리
│ └── /product.md 품목 관리
│ └── /bid.md 입찰 관리
│ └── /delivery.md 납품 관리
└── /individual-example 실행환경 개별 예제
├── /batch-layer 배치처리 예제
├── /business-logic-layer 업무처리 예제
├── /foundation-layer 공통기반 예제
├── /foundation-layer-core 공통기반 핵심 예제
├── /integration-layer 연계통합 예제
│ └── /cloud-data-stream.md Cloud Data Stream
├── /persistence-layer 데이터처리 예제
└── /presentation-layer 화면처리 예제
- 각 문서는 다음과 같은 구조와 템플릿을 따릅니다.
# [문서 제목]
## 개요
문서의 목적과 주요 내용을 간략히 설명합니다.
## 주요 개념
### [개념 1]
개념 1에 대한 설명을 제공합니다.
### [개념 2]
개념 2에 대한 설명을 제공합니다.
## 관련 문서
- [문서 제목 1](링크)
- [문서 제목 2](링크)
## 설명
문서의 주요 내용을 상세히 설명합니다. 필요 시 하위 섹션을 추가하여 내용을 체계적으로 나눕니다.
### IoC Container of Spring Framework
#### BeanFactory
BeanFactory 인터페이스와 관련된 내용을 설명합니다.
#### ApplicationContext
ApplicationContext 인터페이스와 관련된 내용을 설명합니다.
## 참고자료
- [참고자료 1](링크)
- [참고자료 2](링크)
- 헤더
- 문서의 제목과 섹션 제목은 각각
#
와##
,###
로 구분합니다.
- 문서의 제목과 섹션 제목은 각각
- 개요
- 문서의 목적, 중요성, 다룰 내용을 간략히 소개합니다.
- 주요 개념
- 문서에서 다룰 주요 개념을 상세히 설명합니다.
- 관련문서
- 관련된 외부 문서나 추가 자료의 링크를 제공합니다.
- 설명
- 문서의 핵심 내용을 구체적으로 설명합니다.
- 필요에 따라 하위 섹션으로 나눕니다.
- 참고자료
- 문서 작성 시 참조한 자료나 독자가 추가로 참고할 수 있는 자료의 링크를 제공합니다.
- 파일명은 설명하는 내용을 간결하게 나타내도록 하며, 소문자와 하이픈(-)을 사용합니다.
- 예)
ioc-container.md
- 예)
- 이미지 파일은 작성하는 폴더의 하위에 위치한 'images' 폴더에 저장하고, 문서에서

형식을 사용합니다.- 예)

- 예)
- 코드 예시는 삼중 백틱
(```언어명```)
으로 감싸서 표시합니다.
public class Example {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
- 외부 링크는 절대 경로를 사용하고, 내부 링크는 상대 경로를 사용합니다.
- 예)
[Spring Framework Documentation](https://docs.spring.io/spring-framework/docs/5.3.27/reference/html)
- 예)
- 문체
- 일관된 공식 문체를 사용하며, 기술 용어는 첫 사용 시 정의합니다.
- 문장은 격식을 유지하고, 신뢰감을 줄 수 있도록 작성합니다.
- 문장은 명확하고 간결하게 작성합니다. 복잡한 개념은 짧은 문장으로 나누어 설명하며, 가능한 한 간단하게 표현합니다.
- 일관된 용어와 표현을 사용하며, 문서 전체에서 동일한 어휘와 문체를 유지합니다.
- 어조
- 주관적인 의견을 피하고, 사실에 근거한 정보를 제공하며, 명확하고 중립적인 어조를 유지합니다.
- 내용을 잘 이해할 수 있도록 교육적이고 안내하는 어조를 사용합니다.
- 예시
- "Inversion of Control(역제어)은 객체의 생성 및 생명주기 관리를 개발자가 아닌 컨테이너가 담당하는 것을 의미한다."
- "Spring Framework의 IoC Container는 다양한 기능을 제공하며, 이를 통해 애플리케이션의 유연성과 확장성을 향상시킬 수 있다."
- "의존성 주입(Dependency Injection)은 빈 설정 정보를 바탕으로 컨테이너가 클래스 간의 의존 관계를 자동으로 연결해주는 방법이다."