반응형
전자정부 프레임워크는 국내 공공 정보화 사업의 효율성을 높이고 표준화된 소프트웨어 개발 환경을 제공하기 위해 설계된 프레임워크입니다. 전자정부 프레임워크로 개발을 진행할 때, 소스 구조를 이해하는 것이 필수적입니다. 아래에서 전자정부 프레임워크의 기본 소스 구조와 각 구성 요소를 상세히 설명합니다.
1. 전자정부 프레임워크 프로젝트 기본 구조
전자정부 프레임워크 프로젝트는 일반적으로 MVC 아키텍처를 따르며, 표준화된 디렉토리 구조를 가집니다. 주요 디렉토리는 다음과 같습니다:
📂 src/main/java
Java 소스 코드가 위치하는 기본 디렉토리입니다.
- controller: 사용자의 요청을 처리하고 비즈니스 로직을 호출하는 역할을 담당합니다.
- 예: 사용자 입력 검증, 비즈니스 로직과의 인터페이스 역할 수행.
- service: 비즈니스 로직을 구현하는 계층입니다.
- 트랜잭션 관리와 비즈니스 규칙을 처리합니다.
- repository (또는 dao): 데이터 접근 계층입니다.
- MyBatis, JPA 등의 ORM을 통해 데이터베이스와 상호작용합니다.
- domain (또는 model): 애플리케이션에서 사용하는 데이터 모델 클래스가 위치합니다.
- VO(Value Object), DTO(Data Transfer Object) 등이 포함됩니다.
📂 src/main/resources
애플리케이션 실행 시 사용되는 설정 파일과 리소스 파일이 포함된 디렉토리입니다.
- mapper: MyBatis의 XML 매퍼 파일이 위치.
- SQL 쿼리와 데이터베이스 매핑을 정의합니다.
- 예: UserMapper.xml
- config: 애플리케이션 전역 설정 파일 디렉토리.
- Spring 설정 파일, 데이터베이스 설정, 보안 설정 등이 포함됩니다.
- 예: application-context.xml, database-config.xml
- static: 정적 리소스 (이미지, CSS, JavaScript 등).
- 예: /css/style.css, /js/script.js
📂 src/main/webapp
웹 애플리케이션의 프론트엔드 관련 파일들이 위치하는 디렉토리입니다.
- WEB-INF: 웹 애플리케이션의 설정 파일과 JSP 파일이 포함.
- web.xml: 서블릿 설정, 필터, 리스너 등 정의.
- JSP 파일은 외부에 직접 노출되지 않도록 여기에 위치.
- resources: 외부 공개용 정적 리소스 디렉토리.
- CSS, JavaScript, 이미지 등 포함.
2. 주요 구성 요소와 역할
전자정부 프레임워크는 다음의 주요 구성 요소로 나뉘어져 있으며, 각각의 역할은 아래와 같습니다:
2.1 Controller
- 역할: 사용자 요청을 처리하고 응답을 생성하는 역할.
- 위치: src/main/java/com/example/controller/
- 주요 기능:
- URL 매핑 설정 (@RequestMapping).
- 입력 데이터 검증 (@Valid 또는 커스텀 Validator 사용).
- Service 계층 호출 및 결과 반환.
2.2 Service
- 역할: 비즈니스 로직을 처리하는 계층.
- 위치: src/main/java/com/example/service/
- 주요 기능:
- 트랜잭션 관리 (@Transactional).
- 비즈니스 규칙과 데이터 가공 처리.
2.3 Repository/DAO
- 역할: 데이터베이스와의 인터페이스를 제공.
- 위치: src/main/java/com/example/repository/
- 주요 기능:
- SQL 쿼리 실행 및 데이터 매핑.
- MyBatis 매퍼 또는 JPA 인터페이스 사용.
2.4 Domain/Model
- 역할: 애플리케이션에서 사용하는 데이터 모델 정의.
- 위치: src/main/java/com/example/domain/
- 주요 기능:
- VO(Value Object), DTO(Data Transfer Object) 정의.
- Getter/Setter, @Data 등으로 간결하게 작성.
2.5 Mapper
- 역할: SQL 쿼리와 데이터 모델 매핑.
- 위치: src/main/resources/mapper/
- 주요 파일:
- XML 기반 매퍼 파일 (.xml) 작성.
- 예: UserMapper.xml
3. 주요 설정 파일
전자정부 프레임워크에서는 여러 설정 파일이 존재하며, 애플리케이션의 전반적인 동작을 제어합니다.
📄 application-context.xml
- 역할: Spring 프레임워크의 기본 설정 파일.
- 주요 설정:
- Bean 정의 및 의존성 주입.
- 데이터 소스 및 트랜잭션 설정.
- 보안 및 AOP 설정.
📄 web.xml
- 역할: 웹 애플리케이션의 초기화 설정.
- 주요 설정:
- 서블릿 및 필터 매핑.
- 리스너 정의.
📄 database-config.xml
- 역할: 데이터베이스 연결 및 트랜잭션 설정.
- 주요 설정:
- 데이터 소스 정의 (<bean> 태그 사용).
- MyBatis 또는 JPA 설정.
4. Best Practices
- 계층 분리: Controller, Service, Repository를 명확히 분리하여 단일 책임 원칙(SRP)을 준수합니다.
- 리팩토링: 중복 코드를 제거하고 공통 기능은 별도의 유틸리티 클래스로 추출합니다.
- 테스트 작성: JUnit 또는 Mockito를 사용하여 유닛 테스트 및 통합 테스트를 작성합니다.
- 표준 코드 작성: 전자정부 프레임워크의 가이드라인에 맞는 코드 스타일을 유지합니다.
전자정부 프레임워크는 다양한 기능과 표준화된 구조를 제공하여 공공 정보화 프로젝트에서 생산성과 품질을 높이는 데 중요한 역할을 합니다. 각 디렉토리와 구성 요소의 역할을 명확히 이해하고 활용하면 효율적이고 유지보수 가능한 애플리케이션을 개발할 수 있습니다.
반응형
'개발 > 전자정부프레임워크' 카테고리의 다른 글
전자정부 프레임워크 하이브리드 앱 개발 방법 (0) | 2025.01.05 |
---|---|
전자정부 프레임워크: 서비스 계층 구현하기 (1) | 2025.01.05 |
RESTful API 인증 및 권한 관리: 심화 과정 (0) | 2025.01.03 |
RESTful API의 인증 및 권한 관리 구현:다음 단계 (0) | 2025.01.03 |
RESTful API의 인증 및 권한 관리 구현 (0) | 2025.01.03 |