기술적인 관점에서 본 셧다운제(신데렐라법)

셧다운제(신데렐라법), 즉 심야(00시~06시) 때 청소년이 게임을 할 수 없도록 강제하는 법안 때문에 말이 많다. 최근에는 게임의 범위, 즉 온라인 게임 한정이라는 주장과 모든 게임을 대상으로 해야 한다는 주장이 싸우고 있는데 뭐 딱히 할 말은 없다. (한심하니까 -_-). 그냥 잠깐 기술적인 관점에서 '모든 게임에 셧다운제 적용' 에 대한 실효성에 대해 이야기를 해 볼까 한다.

적용 범위


일단 모든 게임이라 했지만 이건 정의하기가 좀 난감하므로 확실하게 정의해보자.

  • PC용 온라인 게임
  • PC용 패키지 게임
  • 콘솔용 온라인 게임
  • 콘솔용 패키지 게임
  • 핸드폰/스마트폰용 온라인 게임
  • 핸드폰/스마트폰용 패키지 게임

뭔가 많은 것 같은데 사실 온라인과 패키지 두 분류로 구분할 수 있겠다.

규제의 기술적인 이론


모든 온라인 게임

온라인 게임은 서버가 절대적인 힘을 가지고 있다. 따라서 서버 상에서 접속을 끊어버리기만 해도 구현이 가능한 사안이다.

물론 사용자에게 안내를 해야 할 필요성도 있으니 클라이언트도 일부 수정이 필요할 수도 있다. 온라인 게임에서 클라이언트가 수정되면 반드시 패치를 수행해야 정상적으로 플레이가 가능하므로 모든 사용자에게 적용이 가능하기도 하다.

그렇다면 셧다운제 적용 시에도 개발사의 고통이나 부담은 크지 않다고 판단된다. 셧다운제의 효율성은 가장 좋다고 판단된다.

온라인 게임의 경우 해외 제품 보다는 국내 제품의 점유율이 높은 편이므로 해외개발사가 협력하지 않는다 해도 효율성은 어느정도 확보되리라 생각된다.

패키지 게임 규제기술 #1


패키지 게임 자체에서 현재 시간을 측정해서 알아서 셧다운 시키는 방식. 가장 간단해 보이고 개발에 드는 비용도 많지는 않다.

하지만, 모든 패키지 게임 개발사가 출시한 모든 게임에 별도로 적용해야 한다는 점에서 구현 비용이 만만치 않다.

해외의 게임은 게임사전심의제 만큼이나 굉장한 구속력을 가져서 국내 출시가 물건너갈 가능성이 매우 높아지는 부작용도 있다.

패키지 게임 규제기술 #2


다른 하나는 OS 혹은 관리소프트웨어를 통해 게임을 강제로 셧다운 시키는 방법이다. 개별 패키지에 적용하는 것에 비해서 하나의 관리 소프트웨어를 통해 규제가 가능하기에 비용면에서는 훨씬 나은 편이다.

하지만, 모든 게임이라는 것을 판단하는 것은 굉장히 어려운 일이고 100% 확실하게 자동으로 구분해 낼 수도 없다. 거의 불가능한 방법에 가깝다는 말이다.

특히 콘솔이나 스마트폰의 경우 이런 소프트웨어를 강제하기가 쉽지 않다.

OS를 통해 제어하려는 것은 OS를 수정하거나 특정 기능을 추가해야 되는 작업인데, 사실상 국내 업체가 OS 자체를 개발하지 않기 때문에 강제하기가 쉽지 않은 방법이다. 특히 OS는 하드웨어를 제어하는데 가장 중요하고 세밀한 소프트웨어이기 때문에 기능을 추가한다는 것 자체가 굉장히 예민한 일이다. 따라서 OS 자체를 수정하는 건 불가능에 가깝다.

관리소프트웨어를 통한 방법이 그나마 가능성이 있어 보이지만 이걸 끼워넣는 것은 PC에나 가능한 상황이다. 콘솔의 경우 OS나 내장소프트웨어를 콘솔 내부에 펌웨어 형태로 가지고 있어서 개발사 만이 직접적으로 접근이 가능한 영역이다. 따라서 콘솔 개발사의 협력 없이는 불가능하다. 대한민국이라는 작은 나라 하나 때문에 이런걸 넣어주는 것은 비용 대비 효율이 굉장히 저조하다고 판단하고 된다.

스마트폰도 콘솔과 상황은 거의 비슷하지만 그나마 국내벤더가 출시하는 제품들은 어느 정도 협력해 줄 수도 있을거라 생각된다. 그렇다고 해도 관리소프트웨어 대초의 한계(게임을 어떻게 구분하느냐!) 때문에 완벽 규제는 불가능에 가깝다.

결론


  1. 셧다운제는 온라인 게임에서나 제위력을 발휘할 만한 법안이다.
  2. 패키지게임이나 콘솔/스마트폰용 게임에는 기술적으로 규제하기가 만만치 않다. 해외에서는 거의 협력해 주지 않을 것이다.


ps. 이상 개인적인 관점과 지식에 의한 글이었다... -_-;

댓글

이 블로그의 인기 게시물

버전(Version)을 제대로 이해하기

소수점 제거 함수 삼총사 ceil(), floor(), round()