Hydra 기본 예제 — @hydra.main으로 앱 만들기
Hydra 기본 예제 — @hydra.main으로 앱 만들기
Hydra를 처음 쓸 때는 @hydra.main 데코레이터로 앱을 감싸는 것부터 시작해요. 이 데코레이터가 설정 파일을 자동으로 로드해서, 함수 인자 cfg로 계층적 설정 객체를 넘겨줘요. 여기에 명령줄 오버라이드까지 더하면 "설정을 코드 없이 바꾸는" Hydra의 힘이 드러나요.
출처: https://hydra.cc/docs/tutorials/basic/your_first_app/defaults/
설치
안정 버전은 이렇게 설치해요.
pip install hydra-core --upgrade
기본 예제
먼저 설정 파일을 만들어요.
# conf/config.yaml
db:
driver: mysql
user: omry
pass: secret
그다음 앱 코드를 작성해요.
import hydra
from omegaconf import DictConfig, OmegaConf
@hydra.main(config_path="conf", config_name="config")
def my_app(cfg: DictConfig) -> None:
print(OmegaConf.to_yaml(cfg))
if __name__ == "__main__":
my_app()
config_path="conf"는 설정이 있는 디렉토리, config_name="config"는 기본 설정 파일 이름이에요. 실행하면 config.yaml이 자동으로 로드돼요.
$ python my_app.py
db:
driver: mysql
pass: secret
user: omry
명령줄에서 값 덮어쓰기
Hydra의 강력한 기능은 명령줄 오버라이드예요. 실행할 때 설정 값을 직접 덮어쓸 수 있어요.
$ python my_app.py db.user=pons db.pass=1234
db.user=pons처럼 점으로 경로를 지정해 값을 바꿔요. 코드를 고치지 않고도 실행마다 다른 설정을 줄 수 있죠.
더 알아보기
설정을 파일·명령줄 양쪽에서 다루는 전체 튜토리얼은 공식 Your First Hydra App 문서에서 이어서 볼 수 있어요.