개방에 대한 생각

Posted at 2010. 7. 7. 08:48 // in 잡담 // by Manner of Traveling


구글 안드로이드로부터 시작된 개방의 물결이 IT 전체로 번져나가고 있습니다.

Open IP-TV, 클라우드 컴퓨팅, 스마트폰 등 요즘에 개방(Open)을 포함하지 않고는 이야기가 안 되는 세상이 되었습니다. 혹자는 "Web 2.0 이후에 최고의 사기가 개방이다"라고 심하게 비꼬는 분들도 계십니다.

애플이나 구글처럼 뛰어난 기업이 독자적으로 모든 사용자의 욕구를 만족시키기는 어렵습니다. 따라서 개방 정책을 통해서 3rd Party의 도움을 받아서 상생하는 개방 정책을 상당히 좋은 접근 방법입니다.

그렇다면 "무엇을 어느정도로 개방해야만 좋은가?"하는 문제를 고민하게 됩니다.

꼬꼬마 전산쟁이의 드림월드에 "무엇이 개방이고 무엇이 폐쇄인가"라는 포스팅을 보시면 개방에 대한 또 다른 시각을 접하실 수 있습니다.

애플은 iOS를 아이폰과 아이패드에서만 사용할 수 있도록 제한하는 폐쇄적인 정책을 사용하고 있지만, 그 동안과는 비교할 수 없을 만큼의 넓은 울타리를 제공한다. 대부분의 사용자들은 이 울타리 안에서 자유롭게 모든 것을 할 수 있다.
반면에, 구글 안드로이드는 모든 것을 개방하지만, 이는 역설적으로 이통사와 제조사가 맘대로 입맛에 맞게 변형할 수 있다는 것을 의미한다. 안드로이드는 제조사와 이통사들이 울타리를 다시 칠 수 있는 자유를 제공한다.
결과적으로, 사용자 입장에서는 오히려 애플이 개방적이고 구글은 폐쇄적이 될 수 밖에 없다.

모든 것을 개방했을 때, 성공하는 것은 아니다. 리눅스(Linux)는 안드로이드처럼 철저하게 개방 정책을 사용하고 있다. 누구나 무료로 사용할 수 있다. 그러나, 리눅스의 OS 점유율을 그리 높지 못합니다. "왜 리눅스는 무료이고 철저하게 개방되었음에도 성공하지 못했는가?"에 대해서 한번 고민해봐야 할 것입니다.

답은 언제나 고객에게 있는 것 같습니다.



유튜브(YouTube) 동영상 버퍼링과 DNS 설정은 무슨 관련이 있는가?

Posted at 2010. 5. 20. 21:42 // in 네트워크 // by Manner of Traveling

트위터에서 유튜브 동영상 버퍼링 해결 방법이라고 소개된 것이 DNS 서버 주소를 구글 Public DNS(8.8.8.8, 4.4.4.4) 로 변경하는 것이었습니다.

저는 기술적으로 봤을 때, 저 이야기는 전혀 근거가 없다고 생각합니다. 다만, 실제로 사용자들이 그렇게 체감을 하기 때문에 사실 자체를 부인할 수는 없습니다. 그래서 몇 가지 확인한 결과와 제 의견을 말씀드리겠습니다.

먼저 유튜브(YouTube) 사이트에서 동영상을 플레이를 하면 다음과 같은 절차를 따르게 됩니다.

1. 실제로 동영상 콘텐츠를 가진 캐쉬(Cache) 서버의 도메인 이름(Domain Name)을 알려줍니다. 동영상 콘텐츠마다 캐쉬 서버가 서로 다릅니다. 따라서, 유튜브 동영상이라도 콘텐츠에 따라서 버퍼링에 차이가 날 수 있습니다. 제가 특정 콘텐츠를 보면서 Wireshark로 패킷을 확인한 결과 다음과 같은 도메인 이름을 넘겨줍니다.
v21.lscache3.c.youtube.com

2. 그러면, 사용자 단말(PC, 노트북, 아이폰, 안드로이드폰)은 해당 도메인에 대한 IP 주소를 DNS 서버에 질의합니다.
v21.lscache3.c.youtube.com: type A, class IN

3. DNS 서버는 사용자 단말이 질의한 도메인에 대한 IP 주소를 사용자 단말에게 알려줍니다.
v21.lscache3.c.youtube.com: type CNAME, class IN, cname v21.lscache3.l.google.com
v21.lscache3.l.google.com: type A, class IN, addr 74.125.107.30

위의 내용을 잘 보시면, 실제로 유튜브 캐쉬 서버는 구글의 캐쉬 서버로 연결된다는 것을 알 수 있습니다. 그리고 실제 IP 주소는 74.125.107.30 입니다.

4. 이제 사용자 단말은 DNS 서버로부터 받은 74.125.107.30 캐쉬 서버로부터 동영상을 다운로드 받아서 플레이하게 됩니다.
 
위의 내용을 기반으로 과연 DNS 서버에 따라서 어떤 차이가 있는지 확인해 봤습니다.

먼저, PC에서 DNS 서버를 바꿔가면서 유튜브 캐쉬 도메인에 대해서 어떤 IP를 알려주는지를 확인했습니다.

파란색 부분이 KT의 DNS 서버인 168.126.63.1을 사용한 경우입니다.
KT DNS가 알려준 주소 : 74.125.107.30

빨란색 부분이 구글의 첫번째 Public DNS 서버인 8.8.8.8을 사용한 경우입니다.
구글의 첫번째 Public DNS가 알려준 주소 : 74.125.15.158


녹색 부분이 구글의 두번째 Public DNS 서버인 4.4.4.4를 사용한 경우입니다.
구글의 두번째 Public DNS는 응답을 하지 않았습니다. 장애가 발생했거나 서비스를 하지 않는 것 같습니다.



두번째, PC에서 두개의 IP에 대해서 경로를 추적해봤습니다. tracert를 사용해서 몇 홉(hop)이나 걸리는지를 확인해봤습니다.

tracert 74.125.107.30

tracert 74.125.15.158

결과에서 보시는 바와 같이 KT DNS가 알려준 IP 주소보다 구글 Public DNS가 알려준 IP 주소가 4개 정도의 라우터를 더 경유합니다. 쉽게 말해서, 네트워크 상에서 좀 더 멀리 있다 생각하시면 됩니다. 여기서 한가지 집고 넘어가겠습니다. 네트워크를 아시는 분들에게는 당연한 이야기이지만, 4개 정도 라우터를 더 경유한다는 것은 사실상 인터넷 속도나 품질에는 큰 차이가 없습니다.

혹시나 RTT(Round Trip Time)를 보시고 "구글의 Public DNS가 알려준 IP 주소가 더 나쁘지 않냐?"라고 생각하실 수도 있지만, 여기서의 RTT는 서버가 응답하는 것이 아니라 서버로 가는 경로에 있는 라우터가 응답을 하는 것이기 때문에 실제 서버와의 RTT와는 차이가 발생할 수 있습니다.

실제로 두개의 IP에 대한 Ping 결과를 보면 구글의 Public DNS가 알려준 캐쉬 서버가 RTT가 2배이상 빠릅니다. 사실 이것도 정확한 것은 아닙니다. L4 스위치의 VIP(Virtual IP)를 사용해서 로드밸런싱을 한다면, 이 응답도 사실 L4스위치가 응답하는 것입니다.


세번째, 아이폰에서 Nice Trace 앱을 사용해서 두개의 IP에 대해서 경로 추적을 해봤습니다. 3G와 WiFi에서 각각 테스트를 했는데 WiFi는 당연히 PC에서 확인한 것과 동일합니다.

다음은 3G를 통해서 확인한 내용입니다.

74.125.107.30


74.125.15.158


3G에서 확인한 결과, PC에서 확인한 것보다 2 홉이 줄었습니다. 그러나, 앞서 말씀드렸듯이 이것은 별로 중요하지 않습니다.

제가 여기까지 확인하고 내린 결론은 이렇습니다.

1. KT DNS와 구글 Public DNS는 동일한 캐쉬 도메인에 대해서 서로 다른 IP 주소를 알려준다.

2. KT DNS를 사용할 경우에 네트워크상에서 보다 가까운 캐쉬 서버의 IP 주소를 알려준다.

3. 그러나, 구글 Public DNS를 설정하는 경우에 유튜브 동영상 버퍼링 문제가 해결된다. (그동안에 블로그에서 많이들 이야기하는 내용입니다.)

4. DNS가 제공하는 IP 주소는 임의로 변경할 수 없습니다. 즉, KT DNS는 유튜브 DNS와 구글 DNS에서 제공하는 IP 주소를 받아서 사용자에게 제공할 뿐이지 이를 변경하거나 수정할 수 없습니다. 자칫 유튜브 동영상 버퍼링 해결하려고 DNS 잘못 손대면 큰일납니다.


여기서부터는 제 의견입니다. 제가 더이상 분석할 시간과 능력이 안되서 제 생각을 적어보겠습니다.

1. 유튜브 사이트는 각 나라에서 접속하는 사용자들을 위해서 가장 가까운 캐쉬 서버에서 동영상을 받아보도록 운영한다. 따라서, 각 나라별 DNS에서 제공하는 IP 주소가 모두 다들 것이라고 추측합니다. 결론적으로 어떤 DNS를 설정하더라도 현재 국내 DNS에서 제공하는 것보다 가까운 캐쉬 서버를 찾을 수는 없을 것입니다.

2. 그 동안 국내에서는 유튜브 동영상 업로드가 제한되었습니다. 사실상 국내 사용자들은 유튜브에 별로 볼게 없었습니다. 유튜브 입장에서도 사용자도 많지 않은데 캐쉬 서버를 빵빵하게 만들어 놓을 필요는 없었겠죠.
아이폰이 들어오고 유튜브 동영상 업로드가 가능해졌습니다. 점점 트래픽을 늘어가는데 신속하게 대처하지 못한 것 같습니다.

3. 다 좋은데, 왜 DNS 주소를 8.8.8.8로 설정하면 잘 나오는가? 대부분 인기있는 동영상으로 사용자들이 몰려들게 마련입니다. 즉, 국내에서 어떤 동영상이 인기가 있다면 다들 그 동영상을 보려고 할테니 국내용 캐쉬 서버는 바쁩니다. 사용자가 많아 지니까요.
반면에, 구글 Public DNS를 사용하는 사용자는 별로 없습니다. 즉, 구글 Public DNS에서 알려주는 캐쉬 서버에서 해당 동영상을 보는 사람도 얼마 없다는 이야기죠.
상대적으로 사용자가 적은 캐쉬 서버에서 동영상을 다운로드하기 때문에 버퍼링 문제가 많이 좋아지는 것으로 생각됩니다.

너무 소설을 적어놔서 지울까하다가 제 상상이라고 다시 한번 말씀드리고 그냥 두겠습니다.

누군가가 "국내 서비스용 서버가 성능이 떨어지기 때문이다"라고 이야기 하셨는데요. 사실 그럴수도 있지만, 아닐 가능성이 더 크다고 생각합니다.



 

아이폰으로 인한 생활의 변화

Posted at 2010. 4. 16. 20:43 // in 일상다반사 // by Manner of Traveling

블로그를 개설한지는 2년 6개월 정도가 지났다.

처음에 블로그를 개설할 때는 잘 꾸려나갈 수 있다고 생각했는데, 어림없는 생각이었다. 처음 블로그를 시작한 나에게 왠지 큰 부담은 주었던 것 같다. 글을 쓰다가 지운 것이 더 많을 정도 였으니 말이다. 너무 잘해야 한다는 생각을 가지고 시작한 블로깅은 몇 달 가지 못했다. 그 때 나에게 했던 핑계는 " 블로그를 하려면 시간이 많아야 한다. 나처럼 직장에서 업무에 시달리는 사람을 불가능하다"라면서 자기 위안을 삼았던 기억이 난다.

10일전쯤에 아이폰을 구입했다. 잠들기 전에도 눈 앞에서 아른거리는 것이 도저히 안 사고는 못 버티겠어서 그냥 질러버렸다. 내 생활속에 아이폰이 생기면서 몇가지 달라진 것이 있다.

1. 트위터를 시작했다.
트위터 아이디를 만든지는 1년이 넘어가는데, 한번도 트윗을 올린적이 없었는데 아이폰과 더불어 트위터에 세계로 뛰어 들었다. 그동안 구독하던 블로거들, 회사 지인들을 팔로우하면서 시작했다. 현재 약 50명을 팔로우하고 있고 심심할 때마다 아이폰으로 확인하니 시간 가는 줄 모르겠다. 단, 팔로워가 별로 없다 --ㅋ

2. 구글을 더 많이 사용한다.
지메일과 구글 캘린더는 이전부터 사용했었는데, 아이폰이 생기면서 Springnote에서 정리하던 것들은 전부 Google Doc으로 옮겼다. 메일, 캘린더, 문서 등 구글의 모든 서비스가 스마트폰과 궁합이 잘 맞는 것 같다. 국내에 다른 서비스들은 우찌될런지 걱정된다. 아이폰에서 지메일 한글이 깨지는 문제 좀 빨리 해결되었으면 좋겠다.

3. 집에서는 PC를 거의 안 쓴다.
그냥 아이폰으로 게임하고, 트윗하고, 신문 읽고, Mobile RSS로 블로그 확인하고 PC를 부팅시킬 일이 없다. 아니 귀찮아서 그냥 아이폰으로 한다.

아이폰에 대해서 쓸 말이 많은데, 금요일 저녁이라 이만 퇴근해야 겠다.

아이폰도 가끔 동작을 잘 안하는 경우가 있고, 먹통이 되는 경우도 있다.(벌써 2번이나 -_-;;) 그래도 아이폰을 사랑한다. 아이폰이 있어서 즐겁다고 해야 하나? ㅎㅎㅎ

마지막으로 이제 블로그도 다시 시작할까 한다. 예전처럼 거창하게 생각하지 않고 지금처럼 그냥 생각나는 것을 쓰고, 지금 하고 있는 일 중에서 도움이 될 만한 것들은 간단하게 적어나가려고 한다.

요즘, TGIF가 Twitter, Google, iPhone, Facebook을 의미한다는데, 시간날때 페이스북에도 가입해야 겠다.