서버 기반 애플리케이션을 작성할 때는 필요성이 낮지만, 직접 외부로 배포되는 상용 애플리케이션을 개발할 때는 난독화 도구를 사용하는 것을 검토하는 경우가 많습니다.
이 때 사용해볼 수 있는 오픈 소스 버전의 난독화 도구인 Obfuscar가 있어 소개합니다.
이외에도 사용을 검토해볼 수 있는 난독화 도구로 오래전부터 Visual Studio에 무료로 탑재되어왔고, 지금도 Visual Studio Build Tools에 기본 포함되어있는 Dotfuscator Community Edition이 있습니다. 다만 Dotfuscator CE는 상업용으로는 사용이 불가합니다.
게임 클라이언트처럼 게임 비즈니스 로직이나 재화에 악영향을 줄 수 있는 악성 코드를 허용하면 안되는 크리티컬 애플리케이션들이라면 어쩔 수 없이 도입해야 하는 필요 악이라고 생각합니다.
이번에 나온 AOT 컴파일러처럼, 난독화 도구를 개발하는 곳에서는 난독화를 적용하기 전 개발자들을 위한 린터를 만들어주면 좋겠다는 생각이 듭니다. 얼른 예상되는 문제점만 생각해봐도, nameof 같은 연산자나 리플렉션 관련 기능들은 컴파일러 경계를 지나서 난독화 처리를 하는 경우 제대로 처리되지 않을 가능성이 높을 것 같습니다.