70 lines
1.9 KiB
Plaintext
70 lines
1.9 KiB
Plaintext
---
|
|
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)
|