BLOG ARTICLE 정부 | 1 ARTICLE FOUND

  1. 2007.03.04 비스타가 하위호환이 안되는 실체적 이유#1 (14)

Prolog

비스타가 출시되기 이전부터 비스타에서 구동되지 않은 프로그램이나 게임의 목록이 블로그들을 타고 돌기 시작했다. 정부기관의 ActiveX 문제 역시 기존 ActiveX가 비스타에서 호환되지 않은 이유로 정부가 MS에 도움을 요청했다는 굴욕사실때문에 뜨거운 이슈로 급부상했다. 아직까지 비스타를 써본 적이 없었는 필자는 무슨 문제 때문에 호환되지 않는지가 매우 궁금했으나, 구체적인 이유가 기술된 글들을 찾지 못해 두리뭉실한 느낌으로 ACL문제와 웹브라우저의 보안문제 등이 문제일 꺼라고 생각하고 있던 차에 오늘 우연히 Windows ME 시스템을 Windows Vista Home Edition에 migration해달라는 부탁을 받고 처음으로 비스타의 문제에 직면했다. (본 문제는 하위호환이 안되는 많은 문제중에 하나이기 때문에 넘버링을 했다. 문제를 찾을 때마다 포스팅할 예정이다.)

비스타의 하위호환문제 #1

이번에 발견한 문제는 ACL에 관련된 문제인데, 비스타(최소한 홈에디션)에서는 프로그램이 OS 루트 홀더의 파일 생성 및 저장의 권한을 가지지 못한다. XP의 최신 OEM버전에서도 이런 세팅이 있었지만, 안전모드에 administrator로 들어가서 루트+하위홀더의 권한을 유저나 원하는 계정에 부여해주면 해결되었다. 하지만, 비스타에서는 루트의 모든 권한을 해당 유저나 USERS 그룹등에 부여한다해도 파일을 생성할 수 없었다.(짧은 시간 리뷰였기 때문에 방법이 존재할 수도 있습니다. 아시는 분이 계신다면 리플 부탁드립니다.) 필자가 마이그레이션하던 프로그램은 BDE(Borland Database Engine)을 사용한 어플리케이션이었는데, BDE의 기본 DB인 Paradox에서는 DB파일의 네트워크 엑세스를 위하여 C:\에 PDOXUSRS.NET이라는 파일을 생성하는데 이 파일이 생성되지 않기 때문에 프로그램이 작동하지 않았다.

두개의 해결방안

이 문제는 해결하는 방법은 2가지가 있는데, 첫째는 BDE Administrator를 통하여 NET Directory를 변경하는 방법이 첫번째인데, 간단한 방법이기는 하나 어플리케이션에 따라 BDE Confiuration을 자체적으로 가지고 있는 넘들에게는 해결이 안되는 단점이 있다. 두번째는 단축아이콘 옵션에서 프로그램에 Administrator의 권한을 부여해주는 것이다. 확실한 방법이지만 역시 단점이 있는데, 시작할때 매번 이 프로그램의 권한은 Administrator로 실행하겠냐는 질문에 답을 해줘야한다. (끌 수 있는 옵션이 없다)


비스타의 새로운 정책을 꼬집은 Apple의 ad. 비스타를 써 봤다면 300% 공감이 가능하다.

애플광고에서 썬글라스 아저씨의 Cancel or Allow. 겨우 2시간 봤는데 짜증이 무럭무럭 났다;;


누구를 탓할 것인가

그럭저럭 문제를 해결하고나서 XP가 설치된 내 작업 노트북의 C루트를 보니 보안 ActiveX, 게임 런쳐 ActiveX,  웹하드 ActiveX 등등이 남긴 로그파일들이 쌓여있었다;; 비스타에서 이 모든 프로그램들은 구동중 OS 루트 홀더의 권한을 얻지 못하여 죽을 것이 뻔하다.. 자 그럼 누구를 탓할 것인가? 개발자가 무책임하게 가장 만만한 루트에 로그를 남긴 것을? 아님 ActiveX를 남용한 국내 사이트 제작자들? 아님 정부의 정책?

문제의 핵심은 무엇일까

아직까지 모든 비스타의 호환문제를 겪어본 것이 아니라 속단하기는 이르지만, 이 문제는 언젠가는 짚고 넘어가야할 Windows라는 OS의 문제였지 ActiveX의 문제라던가 정부정책의 문제를 수면으로 끌고 올라올 문제는 아니라는 생각이 든다. (주. ActiveX에서 호환문제가 더 커지는 것은 Stand-alone Application이 아니기 때문에 권한 설정이 불가능하고 Exception발생시 프로그램이 죽을 확률이 더 높기 때문이다.)한 회사의 솔루션을 정부 사이트에 적용해버린 부분의 문제는 이 문제와는 별개란거다. 시간을 거슬러 처음 NT기술이 일반 사용자에게 접목된 2000, 혹은 XP가 나올때 MS는 일반 사용자에게는 걸맞지 않은 NT 기술의 ACL을 도대체 어떻게 사용하기 쉽게 펼쳐놓을지를 고민했을 것이 분명하다. 하나의 홀더안에서도 파일의 성격에 따라 다른 권한을 주는 복잡다단한 OS가 될 것인가, 아니면 모든 파일이 관리자소유이고 모든 사용자가 관리자인 단순한 OS가 될 것인가의 갈림길에서 MS는 과감히 후자를 택했고, 그 이후로 대부분의 우리는 파일의 권한관리와는 담을 쌓고 살아왔다.

비스타의 하위 호환문제의 핵심은 새로운 "기능(function)"이 아니라 새로운 "정책(policy)"이다.

이미 가지고 있는 기능이지만 사용자의 편의를 위해서 죽여놨던 기능들을 허술한 보안체계의 OS라는 불명예를 씻어버리기 위해 부활시킨 것 뿐이다. 다만 그 과정에서 예고없이 강화한 많은 "정책"들이 기존 프로그램들의 호환성을 떨어뜨린 것뿐이다. 물론 개발자가 루트 홀더에 마구잡이로 파일을 생성한 것은 잘못된 것이지만, 그것이 이후 하위호환성을 떨어뜨릴 수 있다고 경고하지 않은 것은 M$다.
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST
  1. 인게이지 2007.03.04 05:13  댓글주소  수정/삭제  댓글쓰기

    경고는 충분하지 않았나요 ActiveX가 MS가 자체적으로도 비권장하는 기술에 들어가 있었고

    비스타의 초기 RC 버전이 나올때부터 해당문제가 지속적으로 보고되었는데 우리나라의 대처가 늦은것뿐이죠.

    • 미니미 2007.03.04 05:40  댓글주소  수정/삭제

      제가 말한 요지는,

      1. 비스타 호환성과 ActiveX 사용과는 직접적 상관관계가 희박하다. (ActiveX 기술 자체 때문에 에러가 나는게 아니라 비스타의 바뀐 정책으로 인하여 생긴 문제에 ActiveX, 어플모두 문제가 발생한다)

      2. 언급하신대로 비스타의 초기 RC 버전이 나올때부터 해당문제가 지속적으로 "보고"된 것이 문제라고 지적한 것입니다. 외부 개발자나 애널리스트들의 "보고"가 아닌 M$의 오피셜한 마이그레이션 가이드라인이 마련되어 있어야 했었다는 점이죠. (제가 문제 해결을 위해 MSDN과 TechNet에서 찾아본 결과, 프론트에 나와있는 마이그레이션 가이드라인은 없었습니다. 지엽적인 문제 해결 아티클 조차도 #1 문제 해결에 도움이 되지 못했습니다. (결국 외부 개발포럼에서 정보를 얻고서 해결되었죠.)

      입니다. 요는 "비스타가 출시될때까지 정부나 개발자들은 뭐했냐?"류의 주장에는 M$의 책임도 추가되어야 한다는 것이고, "ActiveX쓰더니 결국 비스타에서 문제가 불거져 나왔군"라는 부분에서는 ActiveX이기 때문에 문제가 불거져 나오는 것이 아니라는 거죠.

      기존 블로거님들의 주장과 상충되기 때문에 조심스러운 부분이 있고, 제가 비스타를 경험해본 기간 자체가 짧기 때문에 이의를 제시해주시면 감사히 받겠습니다. ^^

    • 인게이지 2007.03.04 08:17  댓글주소  수정/삭제

      ActiveX뿐만 아니라 루트 권한을 요구하는 모든 프로그램이 오류를 낸다는 의미군요. ActiveX의 문제라는게 사실 웹표준론자들에 힘입어 과대선전되는 점이 있는거군요.

      확실히 마이그레이션에 대한 지원 부족은 M$가 책임져야하는부분이죠. 그 정도로 안일하게 대처하고 있었는 줄은 몰랐습니다.

  2. Channy 2007.03.04 13:52  댓글주소  수정/삭제  댓글쓰기

    저는 비스타의 호환성 이슈는 NT와 2000, XP를 거쳐서 점진적으로 향상되어 왔다고 생각합니다. 만약 이게 MS의 OS 보안 정책에 대한 홍보의 문제라면 전 세계적으로 한국과 똑같은 혼란이 빚어져야 마땅 합니다. 왜 우리만 이렇게 혼란 스럽습니까? 정부가 당분간 비스타 쓰지말라고 하는 권고가 나오고 왜 이런 우리 문제만 이렇게 슬래스닷되고 해외 뉴스 토픽감이 되어야 하느냐는 말이죠.

    결국 한국 MS의 홍보 부족 탓인가요?

    외국의 어플리케이션은 XP의 일반 사용자도 구동할 수 있도록 프로그램을 작성합니다. 우리 나라 윈도우 개발자만 사용자가 관리자라고 판단하고 모든 프로그램을 작성하는 거 아닐까요? 제가 지적하는것은 다양한 고려 사항을 검토하지 않고 손쉽게 만들는 기술 방식을 채택하는 PM들과 그걸 종용하는 값싼 문화가 이걸 다 만든게 아닌가 하는 점입니다.

    • 미니미 2007.03.04 14:52  댓글주소  수정/삭제

      Channy님의 좋은 지적 감사드립니다.

      제가 포커싱한 부분은 Channy님께서 말씀하신 비스타의 호환성을 "비판"하려는 것도 "결국" 한국 MS의 홍보 부족 탓이라는 얘기도 아닙니다.

      제가 얘기하고자 하는 부분은 많은 블로거님들이 언급하신 "결국~" 결론에 첨획이 필요하다는 것입니다.

      이 글에서 제기한 문제 #1의 경우 주먹구구식 개발문화의 산물로 나올 수도 있지만, 앞서 설명한 BDE같이 말씀하신 외국 개발 회사(여기선 Borland겠죠)에서 개발한 모듈에서도 문제가 발생할 수 있습니다. 더불어, 루트 홀더에 로그 파일을 남기는 사례는 MS의 scandisk에서도 찾아보실 수 있습니다. (c:\scandisk.log) 문제 #1에 있어선 "루트 홀더 파일 생성=무분별한 개발철학의 산물"이라고 볼 수 없다는거죠.

      ActiveX의 무분별한 사용 부분은 "인게이지"님과의 댓글을 보시면 충분히 이해하시라 봅니다.

      비스타 출시를 계기로 국내 S/W 개발관행이나 MS 기술 의존형 국내 웹서비스의 문제를 비판하는 것은 좋은 현상이라고 생각됩니다. 하지만, 개발자분들의 세밀한 가이드가 없이 주제가 흘러간다면 "결국 주먹구구식 개발문화가 이런 문제를 낳았어" 또는 "ActiveX의 무분별한 사용이 정부가 MS에 도움을 요청하는 비극을 낳았어"라는 문제를 일반인들은 단편적이고 시사적인 문제로 받아들이게 된다는 것입니다. (제 글이 그 단편적인 생각에 작은 오차보정계수가 됐으면 하는 바램입니다.)

      p.s. 제가 개발자님들 블로그를 보면서 무엇보다 아쉬웠던 점은 "비스타에서 해보니까 뭐뭐뭐가 안돼. 이건 \"결국\" 뭐가 문제야"라는 식의 글이 대다수였다는 점입니다.(정보부족으로 좋은 글을 놓쳤을 가능성은 충분합니다!) 비스타 초기에 당황할 유저들을 고려한다면 정확한 문제의 원인이 무엇인지 해결방안은 무엇인지를 묵상하는 자세도 필요한 것이 아닐까 생각해 봅니다.

    • 미니미 2007.03.04 14:58  댓글주소  수정/삭제

      참, 혹시나해서 문제#1은 결국 일반 사용자 권한으로 프로그램을 돌렸을 때의 문제가 아닙니다. 글을 보시면 아시겠지만, 권한과 상관없이 프로그램이 C루트 홀더를 Administrator 권한 없이 액세스하는 것이 불가능하다는 것입니다. (비슷한거 같지만 전혀 다릅니다. 대부분의 XP에서 C루트는 일반 유저액세스가 가능합니다. 유저 사용자 권한으로 XP에서 돌아가는 프로그램이라도 C루트에 파일을 액세스한다면 비스타에선 안 돌아가는거죠.)

  3. 미디어몹 2007.03.05 09:09  댓글주소  수정/삭제  댓글쓰기

    minime 회원님의 상기 포스트가 미디어몹에 링크가 되었습니다.

  4. 신희섭 2007.03.05 12:31  댓글주소  수정/삭제  댓글쓰기

    마땅히 그래야 될 것이 vista에 이르러서야 그렇게 됐는데, 그걸 마치 전적으로 MS의 잘못인양 서술하는 건 언어도단입니다. 국내의 수준 낮고 기형적인 인터넷 환경이 근본 문제입니다. vista의 출시 이전부터 오랜 기간을 두고 배포된 CTP등을 통해 호환성 문제를 해결할 수 있었을텐데 말입니다. 그리고, 글에서 지적하신 드라이브루트에 임시파일을 저장토록 한 각종 어플리케이션이 근본 문제 아닙니까? 그런 프로그램을 개발한 정신머리 없는 개발자가를 탓해야할 문제로 보이는데요...

    • 미니미 2007.03.05 15:06  댓글주소  수정/삭제

      MS의 문제에 대해서 저는 "전적으로"나 "결국"류의 논조가 아닙니다. (제가 위에 올려놓은 댓글을 참고하세요.)
      지적하신 근본문제에 대해선 저도 개발자 출신으로 통감하고 있습니다. 숲을 보는 지혜가 중요하죠. 제가 지적하는 부분은 숲을 보는 거시적 시점은 하단에서 발생하는 미시적 문제들의 집합체라는 것을 간과해서는 안된다는 겁니다. 쉬운말로 결론은 화살표로 한 원인을 가르키면서 "얘가 문제야"라는 식은 아니라는 거죠.

      거듭 말씀드리지만 비스타출시를 통하여 국내 개발 관행과 MS에 의존적인 국내 웹환경을 성토하고 반성하는 계기가 되는 것은 바람직합니다만, "국내 웹사이트가 비스타에서 비호환=국내의 수준 낮고 기형적인 인터넷 환경"은 아닙니다. 외국 2대 개발사(MS와 Boland)가 만든 프로그램도 비스타의 호환장벽에 막히는데 그저 C 루트에 로그를 만드는 ActiveX(물론 호환되지 않는 이유는 더 있습니다.)가 비스타에서 돌아가지 않는 것이 100% 국내 개발 관행의 문제라고 할 수 있을까요? 이 문제 외에도 다른 미시적문제(제가 언급한 MS 마이그레이션의 문제, 개발자들의 안일한 로그 파일 생성의 문제, 단일 기술의존적인 국내 웹의 실정 등)를 언급하지 않고 "숲"을 바라보진 말자는 결론인거죠.

  5. 지나가며 2007.03.16 13:04  댓글주소  수정/삭제  댓글쓰기

    이쯤되면 보통 사람을 위한 홈 컴퓨팅과 기업이나 정부에서 사용되기 위한 비즈니스 컴퓨팅이 분리될 때가 왔다고 보여집니다. 홈 컴퓨팅 영역은 플레이스테이션3처럼 mp3면 mp3, 게임실행이면 게임실행, 딱 되는 것만 되고 유저에게는 제한된 권한만 가능하게 하므로써 전체 시스템의 안전성을 강화하는 방향으로 나아가고 비즈니스 컴퓨팅 영역은 초기 NT시절처럼 운영체제 제작사는 ACL과 같은 기본적인 메커니즘만을 제공하고 나머지 운영의 문제는 사용자에게 넘기는 체제로 돌아가야 합니다. 초기 NT시절만 해도 유저가 ACL에 대한 기본개념만 확고하면 얼마든지 시스템을 훌륭하게 운영해 나가는 것이 가능했습니다. 다만 이 시기에 유저들이 운영체제의 보안 메커니즘을 배울 의지가 전혀 없었고 '아 씨밤 NT 왜일케 불편해'라고 했기 때문에 마소가 XP에서 모든 것이 '관리자' 아니면 '일반 사용자'로 갈리는 단순한 체제를 만들었고(일반 사용자는 어플 설치/삭제가 안 되기 때문에 모든 PC제조업체가 디폴트 값을 관리자로 셋팅하기 시작했고) 여기서부터 단추가 잘못 채워지기 시작한 거죠. XP에서 한 번 단추가 잘못 채워졌고 비스타에서 한 번 더 잘못 채워지니까 이제 겉잡을 수 없이 된 거 아닌가요?

    초기 NT시절처럼 운영체제 제작사는 보안 매커니즘만을 제공하고 운영의 문제는 사용자에게 넘겼더라면 지금과 같은 비스타 대란은 없었을 것이라고 생각합니다. 저는 XP SP2와 같은 시도는 너무나 코메디적인 시도라고 생각합니다. 브라우저로 다운 받는 모든 exe파일에 대해 '예, 아니오'를 한 번 더 묻게 한 거 밖에 마소는 한 게 없습니다. 그리고 비스타에서는 모든 중요한 작업에 대해서 '이 작업을 시도한 게 최준열이 맞니?'라는 질문을 한 번씩 더 던지지요. 젠장, 이 방엔 나 밖에 없는데...일본에 있는 고이즈미가 했을지도 모른다는 건가?

    운영체제를 만들다 보면 위험부담을 어느 정도는 사용자에게 넘겨야 하는 부분도 있는데 마소는 너무 모든 것을 강하게 통제하는 운영체제를 만들려 하다가 비스타라는 실패적인 결과물을 내 놓은 것으로 보입니다. 그리고 비스타는 그런 보안정책 측면 말고도 다른 면에서도 실패작이라고 생각합니다.

    • 미니미 2007.03.18 01:20  댓글주소  수정/삭제

      명쾌한 해설 감사합니다!

      윈도우의 정책(policy)에 대한 부분은 말씀하신대로 상당한 혼선이 있어왔죠. End-user에 대한 정책이란게 짧은 안목으로 만들어서는 안되는 것이죠. 하지만 일반 유저들이 ACL을 조정할 능력이 될지는 조금 의구심이 듭니다. (일반유저라함은 3살부터 80+세까지 컴퓨터를 사용하는 유저겠죠.) exe 실행에 대한 부분은 100%공감합니다. MS의 정책결정부서에서는 한번 더 물어보면 mal-ware를 실행할 확률이 현저히 줄어든다는 "통계"결과에 의거해서 이런 결정을 했을런지는 모르나(추측), 상식적으로 불필요한 절차가 맞죠. 비스타에서 su authentication은 개인적으로 잘한게 맞다고 생각합니다. 이런게 없으면 관리자권한을 유저가 갖고싶게 만들죠. (OS X나 Linux GUI들에서도 찾아볼 수 있는 기능이죠.)

  6. 지나가며 2007.03.16 13:05  댓글주소  수정/삭제  댓글쓰기

    쩝...그런데 댓글을 달면서 홈페이지 난에 제 블로그 주소를 적으니까 차단된 사용자라서 댓글을 달 수가 없다고 나오네요.

    나름대로 이유가 있으셔서 차단했을 거라고 보여집니다. 특별히 불평은 하지 않겠습니다.

    • 미니미 2007.03.18 01:22  댓글주소  수정/삭제

      이상하네요..저는 광고가 아니면 차단한 경우가 없는데..아무래도 테터툴 Plug-in중에서 통합차단기능에서 걸리는 거 같습니다. 블로그 주소를 주시면 제가 재차 확인해보겠습니다.

  7. 아크몬드 2007.07.22 01:46  댓글주소  수정/삭제  댓글쓰기

    확실히 이번 Windows, Vista는 UAC를 통해 계속 [질문]을 하고 [허락]을 얻으려고 하는 모습을 보입니다.

    오히려 기술적인 측면에서 어떻게 할 순 없었을까 하는 아쉬움이 많이 남더군요.