2013년 10월 17일 목요일

부실한 공유문화를 지배하는 개발자의 심리 (개발문화 시리즈2)

본 글은 CNet 코리아에 기고한 칼럼입니다. (http://www.cnet.co.kr/view/25939)

본격적으로 소프트웨어 개발 문화에 대해서 얘기해보자.  첫번째는 ‘공유의 문화’다.

 회사마다  차이는 있지만  소프트웨어  회사에서  부실한  공유 문화는  많은  부작용의  원천이다. 여러 사람과 정보를 공유하는 것에 따른 장점은 여러가지다.  다양한 시각을 가진 이들의 의견이 반영되면서 프로젝트 리스크가 감소되는 건 물론 개발자는 자신이 해왔던 과거업무의 속박에서 벗어날 수 있다.

반대로 공유문화가 부실한 회사는 왜곡된 의사결정으로 프로젝트 리스크가 커지고, 아키텍쳐나 제품은 뒤죽박죽이 되는 경우가 많다. 개발자는 자신이 과거부터 해온 일들에 발목이 잡혀 고참이 되도 유지보수에 바쁘고 신참에게 일 시키기도 어렵다. 본인 스스로 고급개발자로 성장하기 어려운 구조라고 하겠다.

개발자가 수백명, 수천명인 회사나 개발자가 10명인 회사나 효율적인 공유없이 각자 일하는 것은 매한가지이다. 개발자가 수천명인 회사내부에서는 팀이 수백개가 아니고 회사가 수백개 있는 것 같은 현상이 벌어지기도 한다. 팀 내부 인원끼리는 서로 내용을 좀 아는데 다른 팀과는 공유가 매우 어렵다. 이를 개선하고자 개발 프로세스를 점점 복잡하게 만들기도 하지만 문화와 균형을 이루지 않은 개발 프로세스는 형식적으로 작동해서 효율도 떨어지고 개발자들에게는 짐이 될 뿐이다.

 겉으로는 공유를 주장하면서도 속으로는 공유를 꺼리는 개발자가 은근히 많다. 개발 내부의 아키텍처 문제나 골치 아픈 이슈들을 숨기고 시한폭탄으로 놔두는 경우도 있고, 바쁘다는 핑계로 또는 다른 사람은 이해하지 못할 정도로 어렵다는 이유를 대고 정보를 꼭 쥐고 있는 경우도 있다.

 전반적으로 공유문화가 부실하게 된 것은 현재 개발자들의 책임은 아니다. 원래 문화라는게 우리의 선조, 선배들이 만들어 놓은 것을  따르면서 아주 약간씩 바뀌는 것이다. 개발문화도 그렇다. 지금까지 선배들이 그런 환경에서 그렇게 일해 왔기 때문에 그런 문화가 형성되었고 우리도 거기에 적응해서 일하고 있는 것이다.

 문화가 바뀌기 어려운 이유는 나 혼자 노력해서는 안되기 때문이다. 다른 사람들은 공유를 위해서 노력하지 않고 나 혼자 애를 쓰면 나만 두배로 손해를 본다. 이는 ‘죄수 딜레마’와 비슷하다.

두 명의 사건 용의자가 체포되어 서로 격리되어 심문을 받으면 서로 간의 의사소통은 불가능하다. 이들은 자백 여부에 따라 다음의 선택이 가능하며 용의자들은 이를 알고 있다.

둘 중 하나가 배신하여 죄를 자백하면 자백한 사람은 즉시 풀어주고 나머지 한 명이 10년을 복역해야 한다.
둘 모두 서로를 배신하여 죄를 자백하면 둘 모두 5년을 복역한다.
둘 모두 죄를 자백하지 않으면 둘 모두 6개월을 복역한다.
 이 경우 서로를 믿고 협동하면 서로 이익이 되지만 대부분 서로 배신을 선택함으로써 나쁜 결과를 초래한다. 공유문화도 마찬가지다. 혼자서 공유한다고 애를 써도 다른 사람이 공유를 하지 않으면 혼자 고생만 하는 것이기 때문에 결국 서로 공유를 하지 않음으로써 서로 손해를 보는 결과를 선택한다는 것이다.

 공유문화는 소프트웨어 개발에 너무 중요하기 때문에 포기할 수는 없다. 그렇다고 노력하지 않고 효율적인 공유문화를 가질 수는 없다. 그냥 흘러가는 대로 놔두면 ‘죄수딜레마’는 어김없이 찾아온다. 개발자 입장에서는 능동적이고 주도적으로 공유문화를 만들어가기 어렵다. 일단은 습관이 되지 않은 상태에서 공유를 하려면 매우 어렵고 혼자만 공유를 잘하면 개발에 있어서 자신에 대한 의존도가 떨어지기 때문에 고민을 하기도 한다.

반대로 공유를 안하면 자신에 대한 의존도는 높아지지만 본인이 한 일에 발목이 잡혀서 성장이 어렵다. 여기까지 생각하는 개발자는 그리 많지 않다. 경영진이나 개발자나 모두 서로를 위해서 필요성을 깨닫고 제도적으로 의식적으로 오랫동안 각고의 노력을 해야 한다. 일단 문화가 자리잡고 나면 의식하지 않아도 저절로 공유를 하게 된다.

그러면 이제부터 많은 사람들이 왜 노력을 해도 공유에 실패를 하는지 2% 차이는 무엇인지 알아보자.

 첫째, 말로 하는 것보다 글로 적는데 익숙해져야 한다.

말로 대화하면서 개발하는 것이 더 효율적이라고 믿는 사람이 많지만 필자는 글로 적는 것이 더 효율적이라고 믿고 있다. 말은 오해도 많고 매번 다른 사람에게 다시 설명해야 하고 시간이 지나면 잊어버린다. 글로 써야 많은 사람에게 공유가 되고 리뷰가 가능하며 도움을 받을 수 있다. 글로 하는 커뮤니케이션은 기본적으로 공유의 준비가 다 되어 있는 것이다.

대화는 가장 비싼 수단이며 휘발성이 강하다. 대화가 아니면 해결하기 어려운 꼭 필요할 때와 대화가 가장 효율적일 때만 사용해야 한다. 글을 쓰는데 익숙하지 않은 개발자는 무조건 장황하게 쓰거나 개발자만 아는 어려운 용어를 사용해서 다른 사람이 이해하기 어렵게 만든다. 또 외계인의 언어처럼 도저히 이해가 안되는 문장구조를 사용하기도 한다.

처음부터 글쓰는 것은 거부하기도 한다. 개발문서는 소설처럼 감동을 줘야 하는 것이 아니기 때문에 잘만 훈련하면 개발자도 충분히 잘 쓸 수 있다. 신입 때부터 문서를 작성하는데 익숙해지면 된다. 그런 기회 없이 이미 고참이 되었다면 지금이라도 시작하면 된다. 깨닫는 것이 어렵지 지금이라도 노력하면 충분히 가능하다.

 둘째, 과도한 프로세스는 오히려 독약이다.

 대기업에서 많이 벌어지는 일인데, 현재 역량이나 문화수준을 훨씬 뛰어넘는 과도한 시스템과 프로세스를 도입해서 강요하곤 한다. 이런 경우 겉으로는 규칙을 지키고 비싼 시스템을 착실히 쓰는 것 같지만 속을 보면 형식적으로 따르고 흉내만 내서 효율은 오히려 더 떨어진다. 이런 일이 벌어지는 이유는 스스로의 역량이나 문화 수준을 과대평가 하기 때문이기도 하다.

제대로 된 CTO의 부재도 한몫 한다. 실전 경험이 부족한 SW 프로세스팀은 밑져야 본전 식으로 프로세스를 복잡하게 만들고 많은 문서를 요구하곤 한다. SW 프로세스팀도 이렇게 밖에 할 수 없는 많은 고충이 있다. 많은 문서 중에서 프로젝트에 실질적으로 필요한 문서는 한두개에 불과한 경우가 대부분이지만 회사에서는 나머지를 쉽게 포기하지 못한다. 이러다 보니 개발자들은 문서 따로 개발 따로 진행을 하고 문서는 개발에 별 도움도 안되고 공유의 목적으로도 의미가 없게 된다. 이런 식으로 문제가 발생하면 프로세스를 더 복잡하게 만드는 악순환이 진행된다.

 해결책은 스스로의 역량과 문화 수준을 정확하게 진단하는 것이다. 그리고 거기에 걸맞는 시스템, 프로세스를 도입해야 한다. 역량에 비하여 프로세스가 단순한 것은 큰 문제가 안되지만 반대의 경우는 더 비효율적이다. 지금처럼 과도한 프로세스를 계속 발전시키면 악순환에서 벗어나지 못하고 결국에는 10배 비효율적으로 개발을 해야 한다. 결코 프로세스로 모든 것을 해결할 수 없다는 것을 명심하자.

 셋째, 개발자 보고 알아서 잘 해보라고 하면 안된다.

 풀뿌리식으로 개선이 될 수 있는 사안이 아니다. 시스템과 프로세스도 필요하고 경영진의 의지와 후원이 절대적이다. 가장 중요한 것은 공유문화를 이끌 리더가 필요하다는 것이다. CTO급의 인물이 있어서 흐지부지 되기 쉬운 공유 문화 개혁에 꾸준한 추진력을 실어줄 수 있어야 한다. 역량 수준에 따라서 여러가지 시스템도 필요하다.

이슈관리시스템, 형상관리시스템, 코드리뷰도구, 위키, 지식관리시스템, 정보포털 등 여러가지가 있지만 모두 필요한 것은 아니다. 그리고 꼭 비싼 제품이 좋은 것은 아니다. 회사의 규모와 개발하는 소프트웨어의 성격에 따라서도 적절한 시스템이 다르다.

전문가의 도움을 받아서 가장 효율적인 프로세스와 시스템을 도입하는 것이 좋다. 프로세스와 시스템이 있다고 다 되는 것은 아니다. 임직원들의 마인드를 바꾸기 위해서 노력도 해야 하고 공유에 익숙하지 않은 직원들에게 효율적인 공유방법을 꾸준히 교육을 시키고 코칭을 해야 한다. 이는 매우 오래 걸리는 일이고 그래서 내부에 공유 문화 리더가 필요한 것이다.

 넷째, 나중에 몰아서 공유하면 실패한다.

 일기를 몰아서 쓰듯이 공유도 몰아서 하면 실패한다. 공유를 위해서 문서를 만들고 시스템에 기록을 하는 것이 목적이 되면 안된다. 이것들은 소프트웨어를 개발하는 과정이고 이렇게 개발을 해야 가장 빨리 효율적으로 개발할 수 있기 때문에 문서를 만들고 공유를 하는 것이다.

공유를 위해서 숙제를 하듯이 정리를 해서 시스템에 지식을 올리고 공유하는 것보다 매 순간 필요한 것들을 즉시 등록하는 것이 좋다. 공유할 것, 물어 볼 것, 의논해야 할 것들을 일단 적당한 시스템에 올려 놓고 진행을 하는 것이다. 그러면 자연스럽게 과정이 공유가 된다. 즉, 공유는 개발의 과정이고 일부이지 산출물, 부산물들이 아니다.

공유를 위해서 산출물을 만들어야 한다고 생각하는 순간 공유는 실패하고 산출물도 제대로 만들어 질리가 만무하다. 이렇게 만들어진 문서는 나중에 유지보수 시에도 활용도가 뚝 떨어진다. 공유목적으로도 실패한 것이다. 개발과정이 자연스러운 공유의 과정이 되도록 해야 한다.

 다섯째, 모든 사람이 다 너무 바쁘면 안된다.

 모든 개발자가 호떡집에 불난 것 같이 바쁜 회사가 많다. 가끔은 신입 개발자는 한가하고 고참들이 더 바쁜 경우도 있다. 이런 회사는 대부분 공유에 실패한다. 불 끄느라고 정신이 없어서 나머지는 눈에 들어오지도 않는다. 시니어 엔지니어가 될수록 시야도 넓어지고 생각도 많이 하고 여기저기 관여도 많이 해야 하기 때문에 정신없이 바쁘면 안된다.

손이 바쁘면 뇌는 느려진다. 코딩하느라고 바쁜 신입 개발자는 많아도 큰 문제가 없지만 고참들은 창의적인 생각도 많이 하고 타부서의 프로젝트도 파악하고 회사의 비즈니스도 알아야 하기 때문에 충분한 시간적 여유가 있어야 한다.고참 개발자는 공유를 가장 많이 하기도 하고 공유의 수혜자이기도 하다. 모든 사람이 모든 정보를 다 알 수는 없다. 자신의 레벨에서 공유하고 알아야 할 정보가 다르다. 고참 개발자의 손이 한가해지려면 이전에 공유를 잘 해왔어야 한다. 즉, 공유의 선순환이 필요하다.

 여섯째, 보안보다 공유가 우선이다.

 소프트웨어는 설계도면이 핵심이 아니다. 구성원들의 지식 공동체가 핵심이며 문서, 시스템, 경험, 지식의 복합체가 소프트웨어 회사 기술의 실체이다. 대부분의 SW회사는 HW분야에서 설계도면 빼돌리 듯 기술을 빼돌릴 수가 없다. 우리나라에서는 빈약한 공유문화 속에서 소수의 개발자가 거의 모든 정보를 독점하기 때문에 종종 기술을 빼돌리는 일이 벌어진다. 이런 상황에서는 보안을 아무리 강조해도 기술이 새나가는 것을 막을 수는 없다.

드물게 보안이 더 중요한 SW회사도 있기는 하지만 극소수에 불과하다. 보안에 대한 과도한 우려 때문에 공유를 너무 불편하게 하는 회사가 의외로 많다. 보안이 별 이슈도 아닌 회사도 공유에 거부감이 있는 직원의 주장에 넘어가서 공유를 포기한 회사도 많다. 훌륭한 오픈소스가 판치는 마당에 소프트웨어 회사에서는 숨길 것이 그렇게 많지 않다. 특수한 분야의 몇몇 회사를 제외하고는 모든 직원에게 모든 정보를 오픈해도 별 문제가 안된다. 보안을 과도하게 강조하여 공유에 제약을 가하기 시작하면 공유는 반쪽짜리가 되어서 효율은 엄청나게 떨어지게 된다.

 공유문화라는 것이 단어는 다들 잘 알고 있으면서 잘 안되는 대표적인 개발문화이다. 경험해보지 않으면 무엇을, 어떻게, 얼마나 자세히, 누구에게 공유하는데 잘 감이 잡히지 않는다. 위 여섯가지 가이드도 실전 적용을 해보고 자세히 들어가보면 아리송한 부분들이 많을 것이다. 그래도 시작이 반이라고 일단 시작을 해보자. 너무 큰 욕심은 경계하자.

회사에서는 꾸준히 투자를 해야 하며 처음에는 제도적으로 시작을 했다가 점점 습관화를 해 나가야 한다. 오래 걸리는 일이니 너무 근시안적으로 보지 말고 꾸준히 노력해야 한다.

2013년 10월 1일 화요일

왜 적은 인원으로 빨리 개발하나…개발문화의 비밀 (개발문화 시리즈 1)

우리나라에서 소프트웨어 개발이 3D 취급을 받는 이유는 여러가지다. 끝을 모를 야근과 낮은 대우 등도 포함되겠지만 좀더 근본적인 이유는 따로 있다.  낮은 생산성 때문이다. 소프트웨어를 개발해서 회사가 돈을 많이 벌고 세계적으로 성공하는 소프트웨어가 많이 나온다면 생산성의 핵심인 개발자에게 당연히 높은 대우를 해주게 마련이다.

하지만 우리나라에서는 크게 성공한 소프트웨어 회사가 많지 않다. 그리고 소프트웨어 회사의 수익률이 별로 높지 않기 때문에 소프트웨어 개발자에게 좋은 대우를 해줄 수 없다. 결국 이런 소프트웨어 개발에 대한 낮은 대우를 극복하기 위해서는 성공하는 소프트웨어, 성공하는 회사가 많이 나와야 한다.

 그럼 성공하는 소프트웨어 회사와 그렇지 못한 회사를 가르는 결정적인 차이는 무엇일까? 판단의 요소는 기술적인 것 외에도 많다. 좋은 아이디어, 적절한 타이밍, 경영, 마케팅 등이 더 중요하지만 이런 것들은 내가 논할 주제는 아니다. 나는 같은 조건에서도 성공하기도 하고 실패하기도 하는 차이가 무엇인지 알아보고자 한다. 성공하는 회사의 특징을 가진 회사가 많다면 성공하는 소프트웨어가 더 많이 나오고 우리나라에서도 소프트웨어 개발이 좀더 좋은 대우를 받을 수 있을 것이다.

 하지만 회사마다 제품이 다르고 환경이 달라서 직접적인 비교는 매우 어렵다. 같은 제품을 만드는 회사라도 다른 요소로 인해서 성공과 실패가 갈렸을 수도 있다. 그런데 필자가 알고 있는 비교하기 좋은 사례가 하나 있어 이를 소개한다.

미국의 유명한 글로벌 소프트웨어 업체가 하나 있다. 이 회사는 여러 나라에 지사를 설립했다. 물론 한국에도 지사를 설립해서 개발자를 채용했다. 한국에서 채용한 개발자들은 본사의 서비스를 지역화(Localization)하거나 한국에 특화된 서비스를 개발했다. 미국 본사에서는 한국에서도 소프트웨어를 개발할 때 본사의 프로세스를 따르도록 종용했으나 한국 개발자들은 이를 따르지 않았다. 한국의 개발자들이 보기에 본사 프로세스는 너무 복잡해 보였다.

이와 관련해 처음에는 본사와 한국 개발자들간 충돌이 있었으나 상황은 곧 바뀌었다고 한다. 본사에서 한국 개발자들의 놀라운 개발 속도에 깜짝 놀라서 더 이상 본사의 프로세스를 강요하지 않았다. 초기에는 척척 빠른 속도로 개발을 하다보니, 모든 상황이 좋았다고 한다. 그런데 몇 년이 지나자 완전히 상황이 또 바뀌었다고 한다. 개발이 너무 느려진 것이다. 그 당시 본사는 호주에도 지사가 있었는데, 한국 지사와 비슷한 일을 하고 있었다.

한국 지사는 호주 지사보다 10배 가까운 개발자를 보유하고 있었고, 개발자들이 야근을 거듭해도 호주지사의 개발속도를 따라가지 못했다고 한다. 자세히 파헤쳐보면 더 많은 사연들이 있겠지만 맥락만 봐도 우리나라에서 소프트웨어를 개발하는 방식의 낮은 생산성을 짐작하게 한다.

 물론 모든 회사가 문제가 있다는 것이 아니다. 우리나라에도 좋은 개발문화를 가진 회사가 많다. 상대적으로 그렇지 않은 회사가 많기 때문에 제기하는 문제로 이해해 줬으면 하는 바람이다.

나는 한국지사의 개발자들이 본사의 개발 프로세스를 따르지 않은 것이 문제의 주된 원인이라고 생각하지 않는다. 이렇게 대응한 한국의 개발자들을 비난하려는 것이 아니다. 한국 개발자들은 몸에 베어 있는 개발문화 때문에 본사 프로세스를 따르기도 쉽지 않다. 그런 개발문화와 습관을 익히게 된 우리의 개발 환경이 문제인 것이다.

한국에서 개발을 하다가 실리콘밸리 소프트웨어 회사에 취직을 한 개발자 중에는 개발 문화와 프로세스에 적응하는데 힘들어하는 사람들이 많다. 하지만 문화란 원래 작은 부분이 큰 부분에 흡수되듯이 한 개인은 모든 사람이 공통으로 행동하는 개발문화에 흡수되기 마련이다. 반대로 실리콘밸리의 아무리 뛰어난 개발자라도 우리나라에 오게 되면 꼼짝없이 한국식 개발문화에 적응해야 한다. 본인의 방법으로는 더 이상 어찌해볼 수 없는 상황이 된다.

필자는 한국적인 개발문화부터 실리콘밸리의 개발문화와 관료화된 거대 개발프로세스까지 직간접적으로 다양한 경험을 한 덕에 이를 서로 비교할 수 있다. 그래서 앞으로 효율적인 개발문화에 대해서 구체적으로 얘기를 해보고자 한다.

문화란 한 사회의 구성원들의 주요한 공통된 행동 양식이다. 개발문화는 소프트웨어를 개발하는 구성원들의 공통된 생각과 행동 양식이다. 프로세스처럼 명문화되어 있지는 않지만 대체로 그렇게 행동을 하는 것을 말한다. 우리나라의 개발문화는 형편없다고 주장하려는 것이 아니다. 우리나라의 문화가 더 훌륭한 부분도 있고 장점도 많다. 사실 문제가 되는 부분은 2%에 불과할 수도 있다.

이런 결정적인 결과의 차이를 만들어내는 주요 개발문화의 차이를 비교해보자.

개발 프로세스와 개발문화는 서로 보완적이며 개발문화 없이 효율적인 개발프로세스를 만들기 어렵다. 개발문화가 있다고 개발 프로세스가 필요 없는 것도 아니다. 반대로 아무리 정교한 개발 프로세스가 있어도 개발문화가 뒷받침되지 않으면 개발프로세스는 방해만 될 뿐이다. 그만큼 개발문화는 개발 프로세스보다 중요하다.

그럼 이런 차이를 만드는 개발 문화에는 어떤 것들이 있을까? 지금은 하나씩 나열만 해보고 다음 회부터 각각의 사항에 대해 좀더 자세히 풀어볼까 한다.

첫째, 공유 문화의 부족이다.

사실 우리나라에도 공유문화가 없는 것은 아니다. 하지만 결정적인 차이가 있다. 그 차이를 앞으로 얘기해보겠다.

둘째, 빨리빨리 문화다.

장기적인 고려 없이 무조건 빨리 하는 것은 단기적으로는 빠른 성과를 낼 수 있어도 장기적으로는 몇배 더 느려진다. 다른 산업분야에서는 톡톡히 효과를 봤어도 소프트웨어는 워낙 복잡한 지식 산업이라 빨리빨리 문화가 종종 큰 문제를 야기한다.

셋째, 전문가 vs. 만능 개발자이다.

소프트웨어 산업에서는 전문가에 대한 인식이 떨어진다. 뭐든지 잘하는 만능 개발자를 선호하며 그러다 보니 뛰어난 개발자도 본연의 업무인 개발에 집중하지 못하고 다른 일에 휘둘리다보니 회사는 효율이 떨어지고 개인의 캐리어는 발전하지 못한다.

넷째, 사람 중심 vs. 시스템 중심이다.

다른 분야도 마찬가지이지만 사람 중심의 개발은 리스크를 증가시키며 대체도 어렵게 만든다. 대체 못하는 개발자는 회사와 개발자 서로가 서로의 발목을 잡는 상황이 된다.

다섯째, 규칙 준수 문화 부족이다.

사회 전반의 문제지만 소프트웨어 회사에서는 규칙을 무시하는 사람들이 많다. 특히 조직의 윗선에서 이러한 현상이 더 심각해진다.

여섯째, 서열 중심 문화이다.

전통적으로 수직적인 조직문화가 소프트웨어 개발에는 문제가 된다. 어떻게 해야 이를 극복할 수 있을지 알아보겠다.

일곱째, 낙후된 토론 문화이다.

요즘은 토론 위주의 교육에 신경을 많이 쓰면서 개선되고 있지만 여전히 토론문화는 많이 부족하다.

우선 생각나는 것은 이 정도이며 앞으로 이것들을 포함하여 개선해야 할 여러 개발문화 대해서 하나하나 구체적으로 얘기를 해보고자 한다. 새로운 내용이 있으면 계속 추가해 나갈 계획이다.

그런데 이런 얘기를 시작하면 종종“우리도 해봤는데 안되더라는 얘기를 많이 듣는다. 우리도 공유해보려고 했는데 잘 안 안된다. 우리와는 안맞는다, 그렇게 피해의식을 가진 선배개발자들이 많아서 새로운 시도가 처음부터 막히는 경우가 많다. 대부분은 잘못 시도했거나 의지가 부족해서 실패한 경우가 많다. 이렇게 피해의식이 가득찬 회사는 바뀌기 어렵고 그 끝은 뻔하다. 그렇지 않고 개발문화를 조금씩 바꿔가고 싶은 사람들에게는 도움이 되길 바란다.

개발문화는 조직 전체를 바꿔야 하는 것이기 때문에 한명의 개발자가 몸부림친다고 쉽게 바뀌지는 않는다. 경영자나 중간관리자가 움직여줘야 한다. 회사를 움직일 수 있는 경험과 힘이 있어야 변화를 시켜 나갈 수 있다. 이런 분들에게도 많이 공유가 되면 좋겠다.

워낙 광범위한 주제이기 때문에 독자 여러분들과 많은 의견을 나누면서 얘기를 발전시켜나가면 좋겠다. 구체적인 얘기가 시작될 다음 칼럼에도 많은 관심 부탁드린다.

CNET 코리아에 기고한 칼럼입니다. (http://www.cnet.co.kr/view/25148)