1. Aspectran 엔진과 Aspectow
Aspectow는 강력한 오픈소스 프레임워크인 Aspectran을 기반으로 구축된 엔터프라이즈 WAS ‘제품’입니다. Aspectran은 DI(Dependency Injection), AOP(Aspect-Oriented Programming), MVC와 유사한 요청 처리 흐름 등을 자체적으로 제공하는 All-in-One 프레임워크입니다.
Aspectow는 이러한 Aspectran의 핵심 개념을 활용하여 애플리케이션의 비즈니스 로직을 처리하고, 그 위에 WAS로서의 안정성, 성능, 관리 편의성 등의 가치를 더합니다. 즉, Aspectran이 애플리케이션의 ‘두뇌’라면, Aspectow는 그 두뇌가 최적으로 작동하도록 돕는 ‘몸체’이자 ‘환경’이라고 할 수 있습니다.
2. AOP 중심의 아키텍처: Translet
Aspectran이라는 이름에서 알 수 있듯이, Aspectow의 아키텍처는 AOP(관점 지향 프로그래밍) 를 핵심 철학으로 삼고 있습니다. 이는 시스템 전반에 흩어져 있는 공통 기능(Cross-Cutting Concerns)을 비즈니스 로직과 분리하여 코드의 모듈성과 재사용성을 극대화하는 것을 목표로 합니다.
Translet의 탄생
전통적인 MVC 패턴에서는 컨트롤러가 요청 처리, 비즈니스 로직 호출, 뷰 렌더링 등 여러 책임을 갖게 되어 코드가 복잡해지기 쉽습니다. Aspectran은 이러한 요청-응답 처리 과정 전체를 하나의 독립된 ‘관점(Aspect)’으로 바라보고, 이를 Translet이라는 개념으로 캡슐화했습니다.
Translet은 특정 요청에 대해 어떤 작업을 수행할지 정의하는 처리 규칙의 완전한 설계도입니다. 이를 통해 개발자는 순수한 비즈니스 로직에만 집중할 수 있으며, 트랜잭션, 보안, 로깅과 같은 공통 기능은 Aspect를 통해 Translet의 실행 전후에 투명하게 적용할 수 있습니다.
핵심 구성 요소
- Translet: 웹 요청(URL)과 매핑되어 어떤 작업을 수행할지 정의하는 규칙의 집합입니다.
- Activity: Translet에 정의된 규칙에 따라 실제 요청 처리 작업을 수행하는 실행 주체입니다.
- Action: Activity 내에서 실행되는 개별적인 작업 단위입니다. 예를 들어, 데이터베이스 조회, 비즈니스 로직 실행 등의 역할을 합니다.
이 구조는 요청 처리의 흐름과 실제 비즈니스 로직을 명확하게 분리하여, 기존 MVC 패턴의 단점을 보완하고 유지보수성을 크게 향상시킵니다.
3. WAS로서의 Aspectow
Aspectow는 위에서 설명한 AOP/Translet 코어 아키텍처를 기반으로, 엔터프라이즈급 WAS로서의 기능을 제공합니다.
3.1. 웹서버 통합
Aspectow는 JBoss의 Undertow 또는 Eclipse의 Jetty와 같은 고성능 내장 웹서버를 통합하여 제공합니다. 이를 통해 별도의 웹서버 설정 없이도 애플리케이션을 즉시 실행하고 웹 요청을 처리할 수 있습니다.
3.2. 서블릿 컨테이너 지원
- Enterprise Edition 및 Jetty Edition: Jakarta EE 10 기반의 서블릿 6.0 스펙을 완벽하게 지원하여, 기존 서블릿 기반의 웹 애플리케이션을 안정적으로 운영할 수 있습니다.
- Light Edition의 경량화 전략: 고성능 REST API 서비스에 최적화된 Light Edition은 서블릿 스펙을 의도적으로 제외하여 불필요한 오버헤드를 줄이고, 더 빠른 응답 속도와 낮은 리소스 사용량을 달성합니다.
4. 기술적 경쟁력 심화
Aspectow의 핵심 경쟁력들은 이러한 아키텍처 위에서 제공되는 강력한 기본 내장 기능들입니다.
- Redis 네이티브 고성능 세션 스토어:
Lettuce
클라이언트를 사용하여 Redis의 비동기 I/O 특성을 극대화한 고성능 세션 클러스터링을 제공합니다. - AppMon (내장 애플리케이션 모니터링): 별도의 외부 도구 없이 애플리케이션의 로그, 이벤트, 성능 지표를 실시간으로 모니터링합니다.
- XML 기반의 세밀한 서버 커스터마이징:
server.xml
을 통해 서버의 생명주기, 핸들러 체인 등 WAS의 핵심 동작을 Spring Boot의application.properties
방식보다 훨씬 강력하고 체계적으로 제어할 수 있습니다.
5. 배포 및 운영 모델
Aspectow의 유연한 아키텍처는 다양한 배포 및 운영 환경을 지원합니다.
5.1. 효율적인 리소스 관리 및 리로딩
Aspectran은 지정된 리소스 디렉토리의 JAR 파일을 temp
디렉토리로 복사하여 관리함으로써, 파일 락킹(File Locking) 문제 없이 리소스를 안전하게 리로딩할 수 있습니다. 이는 운영 중단 시간을 최소화하는 유연한 배포를 가능하게 합니다.
5.2. 운영 환경 배포 스크립트 제공
setup
디렉토리를 통해 설치, 서비스 등록/해제, 시작/종료 등 운영에 필요한 다양한 스크립트를 제공하여 배포 및 관리 오버헤드를 크게 줄여줍니다.
5.3. 데몬/쉘 환경 지원
웹 환경뿐만 아니라, Aspectran의 강력한 데몬 및 쉘 기능을 활용하여 백그라운드 서비스, 배치 작업, CLI 도구 등으로도 운영될 수 있습니다.