Expert One-on-One J2EE Design and Development 번역 정리
2023, Feb 23
1. **J2EE Architectures**
- J2EE는 많은 아키텍처를 제공한다. J2EE는 또한 많은 컴포넌트 타입들을 제공한다.(servlet이나 ejb, jsp page, servlet filter등) 그리고 J2EE 어플리케이션 서버는 많은 추가 서비스들을 제공한다.
- 이러한 옵션들은 문제해결에 최고의 선택을 할 수 있게도 하고 또는 위험한 결과를 초래하게 하기도 한다.
- J2EE 개발자는 선택지가 많아서 좋을 수도 있지만, 잘못된 선택으로 부적절하게 적용할 수도 있다.
- 이 챕터에서 J2EE 아키텍처를 개발할 때 좋은 최상위 요건에 대해 논의하고 어떻게 실상황에 녹일 수 있는지 논의하도록 한다.
- 분산 어플리케이션과 비분산(non-distributed) 어플리케이션 중 어떤 모델이 적합한지 선택하는 방법
- EJB 2.0 변화와 웹 서비스의 등장이 J2EE 설계에 미치는 영향
- EJB를 사용하는 시점
- J2EE 어플리케이션 Data access 전략들
- 4개의 J2EE 아키텍처 중 선택하는 방법
- 웹 티어 디자인
- 이식성 문제
Enterprise Architecture 목표
- 견고하다
- J2EE를 통해 버그가 없을 것을 기대할 수 있다.
- 성능과 확장 가능성(scalable)
- 객체 지향 디자인의 이점을 가진다
- 불필요한 복잡성은 배제한다
- 유지보수성과 확장 가능성(extensible)
- 제 시간에 배포
- 테스트하기 용이하다
- 재사용성을 높힌다.
Enterprise Architecture 목표
- 견고하고 버그 없는 소프트웨어 제공
- 높은 성능과 확장성 제공
- 객체 지향 설계 원칙 활용
- 불필요한 복잡성 회피
- 유지 보수 및 확장성 증대
- 제때 배포
- 쉬운 테스트 지원
- 코드 재사용을 촉진
비즈니스 요구 사항에 따라 다음과 같은 목표를 충족해야 할 수도 있습니다.
- 다중 클라이언트 유형 지원
- 이식성 제공
분산 아키텍처 사용 여부 결정
- J2EE는 분산 아키텍처를 구현하기에 뛰어난 지원을 제공하지만, 분산 모델이 필수적인 것은 아니다.
- 분산 모델은 많은 클라이언트를 지원하고 어플리케이션 구성 요소를 물리적 서버에 분산 배치하여 로드 밸런싱을 할 수 있으나, 이는 성능 문제와 복잡성 문제를 야기한다. 따라서 분산 모델 대신 단일 JVM에서 어플리케이션 컴포넌트를 클러스터링하여 배치하는 것이 성능 측면에서 유리할 수 있다. 또한, 분산 모델은 객체 지향 설계를 제약하고 개발, 디버깅, 배포, 유지보수가 어렵다는 문제점도 있다. 따라서, 분산 모델은 가능하면 피하고 단일 서버에서 실행할 수 있는 방법을 고려하는 것이 좋다.
EJB를 사용하는 경우
- J2EE 애플리케이션을 설계할 때 가장 중요한 결정 중 하나는 EJB를 사용할 지 여부입니다. EJB는 J2EE의 핵심으로 인식되는 경우가 많지만, 모든 애플리케이션에 필수적인 기술은 아닙니다.
- EJB는 분산 아키텍처가 필요하거나 RMI/IIOP가 자연스러운 원격 프로토콜인 경우 유용하지만, 그렇지 않은 경우에는 EJB 사용 여부를 결정하는 것이 어렵습니다. EJB는 J2EE에서 가장 복잡한 기술 중 하나이며, 잘못된 이유로 사용될 수 있습니다. 따라서 EJB를 사용할 때 고려해야 할 중요한 사항들에 대해 살펴볼 필요가 있습니다.