반응형

전자정부프레임워크 프로젝트 디렉토리 구조 이해

오늘은 전자정부프레임워크의 프로젝트 디렉토리 구조를 살펴보겠습니다. 이 구조는 프로젝트의 효율적인 개발과 관리에 필수적입니다. 디렉토리별 역할과 주요 파일들을 이해하면 개발과 협업이 훨씬 쉬워질 것입니다.


1. 프로젝트 디렉토리 구조 개요

전자정부프레임워크의 기본 디렉토리 구조는 아래와 같습니다.

eGovFrameProject/
├── src/
│   ├── main/
│   │   ├── java/             # 자바 소스 코드
│   │   ├── resources/        # 설정 파일 및 공통 리소스
│   │   ├── webapp/           # 웹 리소스 (JSP, CSS, JS 등)
│   │       ├── WEB-INF/      # 웹 설정 파일
│   │       ├── views/        # JSP 파일
│   └── test/                 # 테스트 코드
├── target/                   # 빌드된 파일 (WAR 등)
├── pom.xml                   # Maven 설정 파일
└── README.md                 # 프로젝트 설명 파일

2. 주요 디렉토리 및 파일 설명

2-1. src/main/java

자바 소스 코드가 저장되는 디렉토리입니다. 주요 구성 요소는 아래와 같습니다.

  • Controller
    • 사용자 요청을 처리하며, Service 계층과 통신합니다.
    • 예: egovframework.example.sample.web.SampleController
  • Service
    • 비즈니스 로직을 처리합니다.
    • 예: egovframework.example.sample.service.SampleService
  • DAO (Data Access Object)
    • 데이터베이스와의 통신을 담당합니다.
    • 예: egovframework.example.sample.service.impl.SampleDAO

2-2. src/main/resources

설정 파일과 공통 리소스가 저장되는 디렉토리입니다.

  1. Spring 설정 파일
    • egovframework/spring/context-*.xml
    • 데이터베이스, 트랜잭션, MyBatis 설정 등이 포함됩니다.
  2. 로그 설정 파일
    • log4j.xml: 로그 레벨 및 출력 설정.
  3. 메시지 파일
    • 다국어 지원을 위한 프로퍼티 파일(messages.properties).

2-3. src/main/webapp

웹 애플리케이션의 정적 및 동적 리소스가 포함됩니다.

  1. WEB-INF/
    • web.xml: 서블릿과 필터 설정이 포함된 파일.
    • dispatcher-servlet.xml: Spring MVC Dispatcher 설정 파일.
  2. views/
    • JSP 파일이 저장되며, 사용자에게 데이터를 표시하는 역할을 합니다.
    • 예: views/sample/sampleList.jsp

2-4. pom.xml

Maven 빌드 도구의 설정 파일입니다. 프로젝트에서 사용하는 라이브러리와 플러그인을 정의합니다.

pom.xml 주요 구성 예제

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>5.3.10</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
</dependencies>

3. 전자정부프레임워크의 계층 구조

전자정부프레임워크는 MVC(Model-View-Controller) 패턴을 기반으로 설계되었습니다.

계층 구조의 구성

  1. UI Layer (View)
    • 사용자와 직접 상호작용.
    • JSP, HTML, JavaScript 등을 사용합니다.
  2. Business Logic Layer (Controller, Service)
    • 사용자 요청을 처리하고 필요한 로직을 수행합니다.
  3. Data Access Layer (DAO)
    • 데이터베이스와 통신하여 데이터를 읽고 쓰는 역할을 합니다.

4. 샘플 코드로 살펴보기

Controller 예제: SampleController.java

@Controller
public class SampleController {

    @Resource(name = "sampleService")
    private SampleService sampleService;

    @RequestMapping("/sample/list.do")
    public String selectSampleList(Model model) throws Exception {
        List<SampleVO> sampleList = sampleService.selectSampleList();
        model.addAttribute("sampleList", sampleList);
        return "sample/sampleList";
    }
}

View 예제: sampleList.jsp

<table>
    <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
        </tr>
    </thead>
    <tbody>
        <c:forEach var="sample" items="${sampleList}">
            <tr>
                <td>${sample.id}</td>
                <td>${sample.name}</td>
            </tr>
        </c:forEach>
    </tbody>
</table>

5. 마무리

전자정부프레임워크 프로젝트의 디렉토리 구조와 구성 요소를 자세히 살펴보았습니다. 이 구조를 이해하면 프로젝트를 보다 효과적으로 관리하고 협업 시 생산성을 높일 수 있습니다.

다음 글에서는 데이터베이스 연결 설정 및 연동 방법을 다룹니다.

반응형

+ Recent posts