Intro
종종 config.ini
와 같은 파일을 본 적이 있을 것입니다. 이러한 ini 파일은 보통 설정값들을 손쉽게 읽고 쓸 수 있도록 하기 위해 사용하는 파일입니다.
애플리케이션을 개발할 때 서비스의 여러 설정 정보들 (예를 들어 서빙 포트 번호나 DB 접속 정보와 같은 것들)을 소스 코드와 분리해 관리하는 것은 매우 중요합니다. 설정 정보를 코드 내에 하드코딩 하면, 추후 설정 변경 시마다 코드를 수정해야 하는 불편함이 생기므로, 설정을 담은 파일을 별도로 관리하죠.
이번 포스팅에서는 config.ini
설정파일을 작성하는 방법과 configparser
모듈을 이용해 소스코드와 분리된 설정파일에서 쉽게 설정값들을 불러와 사용하는 방법을 알아보도록 하겠습니다.
config.ini 파일
- config 파일은 섹션(section), 키-값 쌍, 주석 으로 구성됩니다.
항목 | 설명 |
---|---|
섹션 section |
- 대괄호 [] 로 섹션의 이름을 감싸서 정의한다.- 하나의 설정파일에서 관련이 있는 여러 설정값들을 그룹화하는 단위 - 여러 파일을 담은 폴더와 같은 느낌 - 섹션 아래에는 해당 섹션에 속하는 키-값 쌍들이 위치한다. |
키-값 쌍 key-value |
- 키 = 값 과 같이 작성한다.- 키 : 설정의 명칭, 이름 - 해당 설정의 값 |
주석 comment |
- 세미콜론(; ) 혹은 해시(# ) 기호로 시작하는 줄은 주석으로 처리됨 |
1
2
3
4
5
6
7
8
9
[fastapi]
bind=0.0.0.0
port=8080
timeout=30
[gemini.genai]
api.api_key=12523151
api.auth.user=user
api.auth.password=password
configparser
설치
- configparser 모듈은 파이썬 기본 내장 모듈입니다.
- 따라서 별도의 설치가 필요하지 않습니다.
사용
1
2
3
4
5
6
7
import configparser
config = configparser.ConfigParser()
config.read('path/of/config.ini')
serving_url = f'http://{config["fastapi"]["bind"]}:{config["fastapi"]["port"]}'
gemini_api_key = config['gemini.genai']['api.api_key']
Comments