--- description: globs: alwaysApply: true --- # 아키텍처 가이드 ## 전체 아키텍처 이 애플리케이션은 전형적인 Spring MVC 3-tier 아키텍처를 따릅니다: - **Presentation Layer**: JSP + jQuery (Frontend) - **Business Layer**: Spring Controllers + Services (Backend Logic) - **Data Access Layer**: MyBatis + PostgreSQL (Database) ## 패키지 구조 ``` src/com/pms/ ├── controller/ # Spring MVC Controllers (@Controller) ├── service/ # Business Logic (@Service) ├── mapper/ # MyBatis XML Mappers ├── common/ # 공통 유틸리티 및 설정 ├── salesmgmt/ # 영업관리 모듈 └── ions/ # 특수 모듈 ``` ## 주요 컴포넌트 ### Controllers 모든 컨트롤러는 [BaseService](mdc:src/com/pms/common/service/BaseService.java)를 상속받습니다. - URL 패턴: `*.do` (예: `/admin/menuMngList.do`) - 주요 컨트롤러: [AdminController](mdc:src/com/pms/controller/AdminController.java) ### Services 비즈니스 로직을 처리하는 서비스 계층입니다. - 예시: [AdminService](mdc:src/com/pms/service/AdminService.java) - MyBatis SqlSession을 직접 사용하여 데이터베이스 접근 ### MyBatis Mappers SQL 쿼리를 XML로 정의합니다. - 위치: `src/com/pms/mapper/` - 예시: [admin.xml](mdc:src/com/pms/mapper/admin.xml) ### JSP Views JSP 뷰 파일들은 `WebContent/WEB-INF/view/` 디렉토리에 위치합니다. - InternalResourceViewResolver 사용 - prefix: `/WEB-INF/view`, suffix: `.jsp` ## 데이터베이스 설정 - JNDI DataSource 사용: `plm` - PostgreSQL 연결 - 초기 데이터: [ilshin.pgsql](mdc:db/ilshin.pgsql) ## 설정 파일 위치 - Spring 설정: [dispatcher-servlet.xml](mdc:WebContent/WEB-INF/dispatcher-servlet.xml) - 로깅 설정: [log4j.xml](mdc:WebContent/WEB-INF/log4j.xml) - 웹 설정: [web.xml](mdc:WebContent/WEB-INF/web.xml)