보안측면에서 어차피 해커가 내 서버의 실행파일과 App.config를 확인할 수 있다는 측면에서 이미 망한거니까 논할게 아니라고 생각합니다. 그보다 저는 '빌드하지 않고 환경을 바꿀 수 있다'를 장점으로 생각하는데요.
제가 App.config에 주로 담는 정보는
* 원격지 주소 (도메인 혹은 Ip)
* 남겨야 할 로그레벨
입니다.
만약 위와 같은 정보들이 코드에 박혀있을경우 코드를 바꾸고 빌드하고 재배포 해야겠죠.
서버가 10대정도라고 할 때 1,2,3번 서버는 DB A / 4,5,6번 서버는 DB B / 7,8,9,10번 서버는 DB C를 본다고 합시다.
서버에서는 아마도 서버의 id에 따라 DB주소가 다르게 들어가야 하는 '코드'가 입력되어 있겠죠?
게다가 몇몇 서버의 위치가 바뀌었을때는 실수가 없도록 코드를 수정해서 빌드하고 재배포 해야 할 것입니다. 실수 없도록요.
그런데 6번과 10번 서버에서 DB 접속에 실패했다고 칩시다.
그런데 릴리즈 빌드라서 상새한 트레이스 정보를 볼 수 없습니다.
그럼 프로그래머는 선택을 해야합니다. 6번과 10번만 상세 로그를 추가해서 다시 빌드해서 배포하던가, 모든 서버를 재 배포하던가.
일부만 배포해서 로그만 보면 될것같아 급히 수정하고 커밋한 뒤 빌드를 걸고 배포를 했는데 아뿔싸..
옆자리 프로그래머가 작업중이던 코드가 딸려갔습니다.
지금 서버는 6번과 10번만 다른 동작을 하고있게 됩니다.
음.. 써놓고보니 엉망징창에 헬이지만 충분히 있을법한 일입니다.
만약 App.config에 접속정보와 로깅정보가 쓰여있기만 해도 바이너리 수정 없이 restart만 해줘도 충분했을것을...
유저들은 '하루 종일 점검하냐'며 성화고, 사업부에서는 '지금 수천만원이 날아갔다!'며 재촉합니다.
아 App.config 좋지않습니까? ㅎ_ㅎ)>;;