NeoDEEX 4.1.3 버전이 정식 릴리스 되었습니다. 이번 버전의 주요 변경 사항은 FoxTaskProxy, Fox DB Profile 관련 버그 수정과 Fox DB Profile의 문제 진단을 위한 기능 추가 입니다.새로운 버전으로의 업그레이드 하기 위해서는 구입처에 문의하시기 바랍니다. 무료 버전의 경우에는 이 사이트 혹은 NuGet을 통해 업그레이드가 가능합니다.

버전 정보

어셈블리 버전: 4.1.0.0

파일버전: 4.1.3.000

설치패키지 버전: 4.1.3

설치 방법

4.1 버전부터 모든 에디션에 MSI 설치 패키지가 제공되며 Free 에디션은 기존 버전과 동일하게 NuGet 설치를 지원합니다.

Free/Standard/Enterprise Edition

다음과 같은 순서로 설치

1. 기존 버전이 이미 설치되어 있다면 먼저 Uninstall 합니다.
기존 버전 설치 여부는 제어판의 프로그램 추가/삭제에서 NeoDEEX 4.0 혹은 4.1이 존재하는지 확인하면 됩니다.

2. 배포된 Setup.exe 혹은 .msi 파일을 직접 수행하여 설치 합니다.

Free Edition (NuGet)

NuGet 패키지 관리자를 구동하여 NeoDEEX Free Edition을 검색하여 설치하거나 NuGet 패키지 콘솔을 이용하여 다음과 같이 명령을 수행합니다.

PM> Install NeoDEEX4.Free

NuGet 패키지가 자동으로 이전 버전을 Uninstall 하고 신규 버전을 Install 하게 됩니다.

주의) 4.0.0.011 버전을 사용하고 있는 경우 FoxConfiguration.config 파일의 내용을 백업 받은 후 4.1.3 버전을 설치해야 합니다.

주요 변경 사항

Breaking Changes

4.1.3 버전 이전에는 FoxTaskProxy 및 FoxTaskProxy<T> 클래스의 ExecuteAsync 메서드가 반환하는 Task가 Action 대리자의 호출을 나타냈었습니다. 따라서 이 Task에 대해 Wait 류의 작업을 수행하는 경우, Complete 대리자 호출이 시작되기 전이나 완료되기 전에 Task에 대한 Wait가 종료될 수 있었습니다.

다음 코드 예에서 코드 블록 #1과 코드 블록 #2의 수행 순서는 불분명합니다.

   1: var taskProxy = new FoxTaskProxy(view);
   2: taskProxy.Action = () => GetData();
   3: taskProxy.Complete = r => {
   4:     // Code Block #1
   5: };
   6: taskProxy.ExecuteAsync().Wait();
   7: // Code Block #2

4.1.3 버전부터는 Action 대리자 호출에 대한 Task는 기존 FoxTaskProxy.Task 속성이 나타내며(이전 버전과 동일) ExecuteAsync 메서드가 반환하는 Task는 Complete 대리자 호출을 나타내는 Task 입니다. 따라서 ExecuteAsync 메서드가 반환하는 Task에 대해 Wait 류의 작업을 수행하면 Complete 대리자 호출이 완료된 이후에 Wait 가 종료됩니다. 위 코드 예에서 코드 블록 #1이 종료된 이후에 코드 블록 #2가 수행됩니다.

비동기적으로 FoxTaskProxy 클래스를 사용하는 경우에는 이 변경 사항이 영향을 주지 않습니다. 하지만 위의 예제 코드처럼 동기적으로 FoxTaskProxy 클래스를 사용하는 경우, 경쟁 상태(race condition)가 발생할 수 있습니다(Bug 10415).

New Features

Fox DB Profile 진단 기능 (PBI 10319)

Fox DB Profile은 NeoDEEX의 Fox DB Access 기능과 Fox Query 기능을 통한 데이터베이스 액세스에 대한 상세한 정보(쿼리, 매개변수, 수행 시간 등)를 제공해 주는 기능입니다. Fox DB Profile은 e데이터베이스 액세스 성능에 영향을 주지 않으면서 다량의 정보를 기록해야 하기 때문에 별도의 스레드를 통해 비동기로 정보를 파일, DB 등에 기록합니다(로거 설정에 따라 다름).

Fox DB Profile이 비동기적으로 작동하며 프레임워크 내부에 구현된 기능이기 때문에, 이 기능이 정상적으로 작동하지 않을 때 원인을 파악하고 해결하기 어렵습니다. 이 문제를 완화시키기 위해 4.1.3 버전에는 Fox DB Profile 진단 기능이 추가되었습니다.

진단 기능 활성은 구성 설정을 통해 가능합니다. 기존 Fox DB Profile 구성 설정인 <dbProfile> 요소에 diagnostics 속성이 추가 되었으며, 이 값을 true로 지정하면 Fox DB Profile의 진단 기능이 활성화 됩니다.

<dbProfile loggerName="TheOne.Data.DbProfile"
enable="true" executionTime ="0" diagnostic="true"/>

Fox DB Profile 진단 기능이 활성화 되면, Fox DB Profile은 더 이상 비동기로 작동되지 않고 동기적으로 데이터베이스 액세스 정보를 로거에 기록합니다. 따라서, Fox DB Profile 기능 수행 도중 발생하는 예외 들이 throw 되어 호출자 코드에 전달되므로 문제 발생을 인식하고 원인 파악에 도움이 됩니다. 진단 기능이 활성화 되어 있지 않는 경우, 데이터베이스 액세스 정보를 기록하는 도중 발생하는 모든 예외는 무시됩니다. 단, DbException, FoxInvalidConfigurationException, ConfigurationException, FoxInvalidQueryException 및 이 예외 클래스에서 파생된 예외들은 SafeLogger에 그 내용이 기록됩니다.

주의) Fox DB Profile 진단 기능은 동기적으로 정보를 기록하므로 데이터베이스 액세스 성능에 문제를 유발할 수 있습니다. 따라서 이 진단 기능은 Fox DB Profile을 진단하고 그 원인을 찾는 용도로만 사용해야 하며 운영 서버에 이 기능을 활성화 해서는 안됩니다.

Bug Fixed

모든 에디션 공통

Bug 10313: 로깅 구성 설정 오류가 발생하지 않을 수 있음.

Standard/Enterprise 에디션

PBI 10319: Fox DB Profile 진단 기능 추가

Bug 10350: Fox DB Profile의 Inline Query에서 Output 매개변수 값이 표시됨.

Enterprise 에디션

Bug 10415: FoxTaskProxy의 ExecuteAsync가 반환하는 Task가 Complete의 완료를 나타내지 않음

--- 릴리스 노트 끝 ---


경고 : 이 글을 무단으로 복제/스크랩하여 타 게시판, 블로그에 게시하는 것은 허용하지 않습니다.