Releases

Aspectran 9.3 릴리즈 노트

이번 릴리즈는 핵심 IoC 컨테이너(bean 모듈)의 대대적인 개편을 특징으로 하는 주요 업데이트입니다. 빈(bean) 생성을 위한 강력한 새 기능이 도입되었고, 광범위한 리팩토링을 통해 안정성과 성능이 향상되었으며, 여러 중요한 버그가 수정되었습니다. 내부 변경의 규모가 크므로 업그레이드 후 충분한 테스트를 권장합니다.

✨ 새로운 기능

  • FactoryBean의 세분화된 스코프 제어: FactoryBean 인터페이스에 isSingleton() 메소드가 추가되었습니다. 이를 통해 팩토리가 생산하는 객체가 공유되는 싱글톤(기본값)일지, 아니면 요청마다 새로운 프로토타입 인스턴스일지를 세밀하게 제어할 수 있습니다.

🚀 개선 사항

  • 빈(Bean) 생성 및 생명주기:
    • FactoryBean 및 팩토리 메소드를 위한 빈 생성 내부 로직을 명확성과 견고성을 위해 리팩토링했습니다.
    • 더블 체킹 락(double-checked locking) 메커니즘을 사용하여 스레드에 안전한 싱글톤 생성을 구현했습니다.
    • 스레드에 안전한 싱글톤 빈 생성을 검증하기 위한 동시성 테스트를 추가했습니다.
  • 와일드카드 유틸리티:
    • 와일드카드 매칭 엔진을 새로운 WildcardEngine으로 로직을 중앙 집중화하여 가독성과 유지보수성을 위해 대폭 리팩토링했습니다.
    • 안정성을 보장하기 위해 포괄적인 새 데이터 기반 테스트 스위트를 추가했습니다.
  • AsEL (Aspectran Expression Language):
    • AsEL 평가 메커니즘을 토큰 파싱 및 아이템 평가 로직 개선을 포함하여 더 깔끔한 디자인과 확장성을 위해 리팩토링했습니다.
  • 성능 및 스레드 안전성:
    • 자료 구조와 반복을 최적화하여 AspectRegistry의 성능과 스레드 안전성을 개선했습니다.
    • CoreServiceHolder에서 ConcurrentHashMap을 사용하여 스레드 안전성을 강화했습니다.
  • 예외 처리:
    • 어스펙트 어드바이스의 예외 처리가 예외 체인을 순회하도록 개선하여, 핸들러가 근본 원인 예외를 잡을 수 있도록 했습니다.
  • 요청 처리:
    • 웹 요청의 기본 문자 인코딩을 최신 웹 표준에 맞춰 UTF-8로 변경했습니다.
  • 코드 품질 및 문서:
    • 개발자 경험을 향상시키기 위해 여러 핵심 모듈에 걸쳐 예외 메시지와 Javadoc을 개선했습니다.

🐞 버그 수정

  • FactoryBean/Factory-Method 생명주기: 팩토리 빈이 생산한 객체 대신 팩토리 빈 인스턴스 자체가 의존성으로 잘못 주입되던 치명적인 버그를 수정했습니다.
  • AsEL 런타임 평가: 런타임에 동적으로 파싱된 AsEL 토큰(예: #{field:...})이 평가되지 않던 치명적인 버그를 수정했습니다.
  • 와일드카드 이스케이프: 와일드카드 파서에서 이스케이프 처리된 문자(예: \*)가 리터럴로 올바르게 처리되지 않던 버그를 수정했습니다.
  • 요청 크기 제한: WebRequestBodyParser에서 멀티바이트 인코딩을 사용할 경우 요청 크기 제한을 우회할 수 있었던 버그를 수정했습니다.
  • 파일 파라미터 처리: FileParameter.getContentType()이 null을 반환할 수 있었던 문제를 수정했습니다.
  • ItemRule 속성 처리: ItemRule에서 Properties 값을 잘못 처리하던 버그를 수정했습니다.
  • RedirectRule: getExcludeEmptyParameters()가 잘못된 값을 반환하던 버그를 수정했습니다.

NEWS
Release

Archive