{"action":"opened","issue":{"url":"https://api.github.com/repos/kyukyukyu/ugproj-detector/issues/18","labels_url":"https://api.github.com/repos/kyukyukyu/ugproj-detector/issues/18/labels{/name}","comments_url":"https://api.github.com/repos/kyukyukyu/ugproj-detector/issues/18/comments","events_url":"https://api.github.com/repos/kyukyukyu/ugproj-detector/issues/18/events","html_url":"https://github.com/kyukyukyu/ugproj-detector/issues/18","id":99331608,"number":18,"title":"프로그램 실행에 필요한 매개변수 값을 설정 파일에 기록하여 관리하기","user":{"login":"kyukyukyu","id":1587211,"avatar_url":"https://avatars.githubusercontent.com/u/1587211?v=3","gravatar_id":"","url":"https://api.github.com/users/kyukyukyu","html_url":"https://github.com/kyukyukyu","followers_url":"https://api.github.com/users/kyukyukyu/followers","following_url":"https://api.github.com/users/kyukyukyu/following{/other_user}","gists_url":"https://api.github.com/users/kyukyukyu/gists{/gist_id}","starred_url":"https://api.github.com/users/kyukyukyu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kyukyukyu/subscriptions","organizations_url":"https://api.github.com/users/kyukyukyu/orgs","repos_url":"https://api.github.com/users/kyukyukyu/repos","events_url":"https://api.github.com/users/kyukyukyu/events{/privacy}","received_events_url":"https://api.github.com/users/kyukyukyu/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/kyukyukyu/ugproj-detector/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"kyukyukyu","id":1587211,"avatar_url":"https://avatars.githubusercontent.com/u/1587211?v=3","gravatar_id":"","url":"https://api.github.com/users/kyukyukyu","html_url":"https://github.com/kyukyukyu","followers_url":"https://api.github.com/users/kyukyukyu/followers","following_url":"https://api.github.com/users/kyukyukyu/following{/other_user}","gists_url":"https://api.github.com/users/kyukyukyu/gists{/gist_id}","starred_url":"https://api.github.com/users/kyukyukyu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kyukyukyu/subscriptions","organizations_url":"https://api.github.com/users/kyukyukyu/orgs","repos_url":"https://api.github.com/users/kyukyukyu/repos","events_url":"https://api.github.com/users/kyukyukyu/events{/privacy}","received_events_url":"https://api.github.com/users/kyukyukyu/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2015-08-06T01:17:10Z","updated_at":"2015-08-06T01:17:10Z","closed_at":null,"body":"이 프로젝트에서 사용하는 알고리즘에는 여러 가지 매개변수들이 있다. 여기에는 [cascade classifier](http://docs.opencv.org/modules/objdetect/doc/cascade_classification.html) file의 경로 또한 포함된다. 매개변수의 값에 따라서 실행 결과가 달라질 가능성이 있다.\r\n\r\n지금까지는 command line을 통해서 일부 매개변수를 입력 받았다. 이런 인터페이스 때문에 실행 환경을 일관되게 유지하고, 매개변수 값을 달리했을 때의 결과를 확인하기가 어려웠다.\r\n\r\n그래서 앞으로는 **설정 파일**을 사용하고자 한다. 설정 파일은 프로젝트에서 사용하는 알고리즘에 입력되는 파라미터들과 그 값이 기록된 파일이다. 프로젝트의 빌드 결과로 생성된 프로그램을 실행할 때, 설정 파일의 경로가 command line을 통해 실행 옵션으로 입력된다. 이렇게 하면 앞에서 언급한 문제점들을 해결할 수 있을 것이다.\r\n\r\n설정 파일의 포맷으로는 [YAML 1.2](http://www.yaml.org/spec/1.2/spec.html)가 적당하다고 생각한다. 사람이 알아보기 쉽고, C++로 작성된 YAML 1.2 파서인 [jbeder/yaml-cpp](https://github.com/jbeder/yaml-cpp)를 통해 파싱을 쉽게 구현할 수 있기 때문이다.\r\n\r\n따라서, 우리는 현재 프로젝트에서 사용하는 알고리즘의 매개변수들이 무엇인지 파악해야 한다. 먼저, 파악한 결과를 이 이슈의 커멘트로 작성하자. 이 작업을 완료하면 설정 파일을 파싱하여 매개변수를 사용하는 기능을 구현하자."}}