Fox Configruation Overview¶
Fox Configuration은 NeoDEEX와 어플리케이션에 대해 구성 설정 인프라를 제공합니다.
NeoDEEX 4.x 버전까지는 .Net Framework를 기반으로 하였기 때문에 .NET Framework의 XML 기반 구성 설정 API를 사용하여 구성 설정을 제공하였습니다. NeoDEEX 5.x 버전부터는 .Net Core를 기반으로 하기 때문에 JSON 파일로부터 구성 설정을 읽도록 기능을 제공합니다.
What's New & Features¶
-
구성 설정 변경 감지
Fox Configuration은 구성 설정 파일의 변경을 감지하여 구성 설정을 다시 읽어 들입니다. 예를 들어, 구성 설정 파일의 DB 연결 문자열을 변경하고 저장하면
FoxDbAccess
객체는 변경된 연결 문자열을 다시 읽어 사용합니다.Note
bizservice:modules
와 같은 일부 구성 설정 섹션은 변경된 구성 설정을 다시 읽어 들이더라도 효과가 없습니다. -
기본 구성 설정 파일 (Default Configuration File)
-
NeoDEEX 5.x 버전부터
app.config
혹은web.config
파일과 무관하게 별도의 구성 설정 JSON 파일을 사용합니다. 명시적인 설정이 없는 경우, Fox Configuration은 어플리케이션의 베이스 디렉터리에서neodeex.config.json
파일을 읽어 구성 설정을 초기화 합니다. -
FoxConfigurationManager.ConfigurationFileName
속성에 구성 설정 파일을 절대 경로 혹은 상대 경로로 명시할 수 있습니다.
-
-
베이스 구성 설정 (Base configuration file)
-
구성 설정 파일은 기본으로 사용할 베이스 구성 설정 파일을 명시할 수 있습니다. 베이스 구성 설정 파일이 지정되면 두 구성 설정은 병합됩니다. 다음 구성 설정에서
maxConnection
속성은base.neodeex.config.json
구성 설정의 값(존재하는 경우)을 오버라이드 합니다. -
여러 어플리케이션이 동일한 구성 설정하에 작동하는 환경에서 특정 어플리케이션 만 약간의 변경이 필요한 경우 유용하게 사용할 수 있는 기능힙니다.
Note
베이스 구성 설정 파일은 구성 설정 변경 감지 대상이 아닙니다. 베이스 구성 설정 파일이 변경되더라도 구성 설정을 다시 읽어들이지 않습니다.
-
-
JSON 기반 AppSettings
-
FoxConfigurationManager
클래스의AppSettings
속성은 JSON 경로를 key로 사용하여 복잡한 구성 설정을 손쉽게 읽을 수 있습니다. -
FoxConfigurationAppSettings
클래스가 제공하는GetValue<T>
메서드와Get<T>
메서드를 사용하여appSettings
설정을 특정 타입에 매핑할 수 있습니다.
-
Basic usage¶
Fox Configuration을 사용하기 위해서는 neodeex.config.json
파일을 작성하고 어플리케이션 디렉터리에 복사하기만 하면 됩니다. Fox Configuration은 어플리케이션이 구성 설정을 읽으려는 최초의 시도 시점에서 자동으로 구성 설정 파일을 읽습니다.
Note
Visual Studio를 사용하는 경우, 프로젝트에 neodeex.config.json
파일을 추가하고 속성 창에서 Copy o Output Directory
속성 값을 Copy if newer
로 설정합니다. 만약 CLI 인터페이스를 사용하는 경우, .csproj
파일에서 다음 속성을 추가합니다.
어플리케이션 설정을 읽기 위해서는 FoxConfigurationManager
클래스의 AppSettings
속성에 접근하거나, 어플리케이션 자체 구성 설정 섹션을 읽고 사용하기 위해 FoxConfigurationSection
클래스 혹은 FoxConfiguration<T>
클래스를 사용할 수도 있습니다. 상세한 내용 및 예제는 다음 문서를 참고 하십시요.
Important
Fox Configuration은 Fox Data Access 나 Fox Biz/Data Service와 같은 NeoDEEX의 다른 기능들에 의해 사용됩니다. 이 문서에서는 NeoDEEX의 다른 기능들의 구성 설정을 다루지 않습니다. 해당 기능의 문서에서 관련된 구성 설정이 설명될 것입니다.