자이닉스 개발부 블로그에, 얼마 전에 자이닉스에 합류한 남정현 씨의 첫 포스트가 올라왔네요. :)
Internet Explorer 11의 Breaking Changes(자이닉스 개발부 블로그)
UserAgent 문자열에서 MSIE를 뺐다는 건, 요즈음의 웹프론트 개발 트렌드를 따르겠다는 모양으로 보이고, W3C의 표준 DOM API를 잘 따르겠다는 선언의 의미로 보입니다.
비슷한 전례로 이미 Windows 8의 메트로 모드 IE(Modern UI IE?)와 데스크톱 모드 IE를 User-Agent 문자열만으로 구분할 수 없도록 한 바가 있죠. User-Agent 문자열을 이용하여 브라우저 종류와 버전을 알아낸 후에 이건 IE용 코드고 저건 크롬용 코드라는 식으로 코드를 작성하지 말고, 관심있는 특정 기능의 사용 가능 여부에 따라서 그 기능이 사용가능할 때의 통상 코드와 사용 불가능할 때의 예외 상황 코드를 작성하라는 가이드를 제시한 바가 있습니다.
HTML5/CSS3 시대가 되면서 요 근래에는 특정 기능의 사용 가능 여부를 확인해서 로직을 분기하는 것을 권장하는 분위기입니다. 그런 분위기 속에서 특정 기능의 사용 가능 여부를 쉽게 확인할 수 있게 해주는 Modernizr 라는 라이브러리가 인기를 끌고 있죠.
MS의 결정이 일단 표준 준수 쪽으로 향하고 있고, 웹 개발 분야의 트렌드를 수용하는 방향으로 가고 있으니 기대가 됩니다.
한편으로 실제 개발 상황에서는 예를 들면 메트로 모드 IE라서 실버라이트 지원이 안되는건지, 데스크톱이긴 한데 실버라이트 플러그인 설치를 안해서 그런건지 구분하고 싶어했던 예를 떠올려볼 수 있겠네요. 상세 개발 레벨에서는 결국 User-Agent에서 Trident 라는 문자열을 검사해서 IE11을 구분해 내려는 유혹이 상당히 있지 않을까 싶긴 합니다. 아예 Gecko 엔진 같은 걸로 갈아탔으면 호환성도 높아지고 Firefox 프로젝트를 살려주는 공익적인 성격도 있어 더 높을 것 같은데 말이죠. (MS가 그런 선택을 할리가 없겠지만요)