어제 네이버에서 NHN Deview 행사를 했다. 개방,개발자,오픈소스 등에 대한 내용을 다루었다. 참석은 하지 못했지만, 생중계로 나마 살짝 엿볼 수 있었다.
네이버는 다른 곳과 비교해서 앞서나가는 모양이다. 특히나 먼저 시작(?)했다고 볼 수 있는 다음의 느린 혹은 잠행 과는 전혀 반대상황이다. 다음도 개발자행사를 여러가지 하고 있다. 네이버는 좀더 범위를 넓혔다고 해야하나? 개발자와 오픈소스를 사용하는 사용자들.
사실 이런 개발자 행사자체가 일반인을 대상으로하는 행사와 비교하면 미미하기 때문에 도토리 키재기 처럼 보일 수 있다. 네이버가 앞으로 어떤 복안을 가지고 진행시키는지 모르겠지만. 최근의 미투데이,오픈소스 등을 살펴보면 조만간 SNS 에 대한 자리를 잡기위한 조치를 취할 듯 하다. 그 부분에 대해서는 네이트,싸이월드를 의식하고 있을듯 하다.
네이트,싸이월드 오픈정책에서 최후의 보루라고 할 수 있는 인증API 는 공개하지 않았다. 그에 대해 네이버가 한발 앞서 가려면 그 부분일 듯 한데, 쉽지않은 결정일 것이다. 어쩌면 서로 눈치를 보고 있을지 모르겠다. 다음,네이버,네이트...
다음은 개인적으로 참 아쉽다. 왠지 그동안의 노력이 별 성과를 내고 있지 못하고 있는 것처럼 보여진다. 좀더 눈에 띄는 결과를 내고, 공개를 하면 좋겠는데, 그 부분이 아쉽다. 좀 늦긴했지만, http://dna.daum.net/archives/585 이런식의 움직임이 많아졌으면 좋겠다. 다음도 내부의 노하우가 많을텐데, 그런 부분을 공개하면 참 좋을 것 같다. 다음 한메일익스프레스의 UI 도 마음에 들고, 공개하면 다음 짱! 다음 DevDay 행사도 계속이어지는 것이 좋긴 하지만, 대박서비스가 DevDay 를 통해서 나올 수 있도록 지원하면 좋을 듯 싶다.
그리고, 야후. 국내에서의 야후란, 사실 듣보잡의 불명예를 가지는 처지가 되버렸다. 그동안 신경도 쓰지 않았다는 것이 사실이다. 그런데, 야후개발자네트워크 를 보고, 국내 행사도 참석도 해보니. 생각보다 방대한 개발자 지원이 있었다. 다만 국내가 아니라 해외에서 활발하게 진행되고 있다. 국내 지원은 조금이나마 http://ydnkrblog.com 등을 통해 진행되고 있다. 아직은 야후코리아 차원의 지원이라기보다 직원개인의 열정에 의해서 움직이는 것 같다.
포털의 이런 움직임은 개발자 입장에서는 환영일 것이다. 최소한 나는 대 환영. 각 포털의 움직임은 서로 다르지만, 결과적으로 좋은 결과로 이어질 것이라고 본다. 대박서비스 사례같은 것이 나오면 그야말로 금상첨화. 개발자들을 위해 물적,심적 지원을 해줄 자원이 있는 곳은 사실 포털밖에 없다고 본다.
YDN 키 발급을 위해 참 여러가지 테스트를 하게되었다. 발단은 http://blog.1day1.org/333 여기서부터 시작인데, 최소한 상황을 재현(?)할 수 있게 되었다. 정확한 원인이 내쪽에서 찾을 수는 없을 것 같고, 최종적으로 YDN 쪽에서 답을 줘야 할 듯 하다. 아무튼 상황재현과 그 간의 시도를 리포트 한다.
일단 이전 상황은 http://t.1day1.org/post/177433640 여기까지 진행했었다. 즉, 도메인을 체크할 때, 제대로 데이터를 가져가는 것을 확인할 수 있었다. 그런데, 왜 안될까? 뭔가 파일 체크 이외에 더 확인하는 작업이 있다는 것인데... 여기서 부터 상상의 나래(?)를 펼치며 테스트하게 된다.
몇가지 가능성을 따져봤다. 1. 웹서버의 문제. 2. 서버 자체의 문제 혹은 OS(배포판) 문제. 3. 그외의 알 수 없는 문제.
1,2 는 여러서버를 바꿔가면서 테스트 해보기로 했다. apache2 , lighttpd , nginx 를 바꿔가면서 테스트 했다. 서버는 웹호스팅, 서버호스팅 등 계정을 바꿔가며 테스트 해보았다.
제일먼저 웹서버를 변경하면서 테스트 해봤다.
웹서버 테스트. 각각의 헤더를 살펴보면서 체크를 했다. (동일서버에서 웹서버를 변경하여 테스트 했다.)
HTTP request sent, awaiting response... HTTP/1.1 200 OK Date: Mon, 07 Sep 2009 15:49:38 GMT Server: Apache P3P: CP='NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE' X-Powered-By: PHP/5.2.5 Connection: close Content-Type: text/html Length: unspecified [text/html] Saving to: `JwiHkHpJfCXx1KeHgs7FfA--.html'
Centos 계정이외에 다른 계정은 모조리 실패하는 것이었다. 아! OS 의 문제로 결론을 내려야 하나? 뭔가 간과하는것이 있지 않을까? 뭔가 놓치고 있는 것이 있을거야! 곰곰히 생각한다.
어! 혹시!
안되는 계정은 모두 1day1.org 의 서브도메인 이었다. 되는 계정인 Centos 는 OOO.com 과 YYY.kr 의 도메인을 사용했었다. 설마 org 도메인이 안되는 것일까? 그래서 교차실험을 했다.
안되는 계정에 OOO.com 의 서브도메인으로 되는 계정에는 ooo.1day1.org 의 서브도메인으로 테스트 했다. 결과는 안되던 계정에 OOO.com 이 제대로 발급이 되었다. 또 되던 계정은 ooo.1day1.org 는 안되는 것이었다.
OTL
정말 그 문제란 말인가? 키 발급시에 도메인 자체도 테스트를 하는 것인가? nslookup 또는 whois , dig 등을 체크해서 유효한 값을 체크하는 것인가?
그런데, 직접 쿼리를 날려봐도 별다른 차이점을 발견할 수 없었다. org 도메인의 네임서버 설정이 잘못된 것일까? apache 로그를 보면 파일을 찾아서 가져가는(GET) 것을 볼 수 있다. 설정이 잘못되었다면 파일을 찾지 못할 것인데 말이다.
미궁에 빠지게 된다. 왜! 인지 알 수 없게 되었다. 상황을 재연까지는 하게 되었지만, 왜! 인지는 모르겠다.
여기서 끝내려 했다. 그런데 뭔가 이상했다. 이유가 뭐란 말인가? 안되는 1day1.org 와 되는 OOO.com 은 똑같이 dnsever.com 에 설정되어있다. 둘의 설정상의 차이가 뭐일까? 살펴봤다.
YDN 측에서 org 자체를 막거나 하지는 않았을 것이고, dnsever 쪽에서 네임서버 쿼리를 막도록 설정되어 있는 것일까? nslookup , dig 로 테스트 해보면 이상이 없는데 이상하다. 특정 IP 대역에 대해서 막아놨을까? (그럴지도 모르겠다.) dnsever 가 기존 ns1,ns2 에서 ns16~ns259 등으로 분리를 시켜놓은게 예전 DDOS 공격을 당했을때 공격을 분산,회피 하기 위한 조치였던 것으로 알고 있다. 그렇다 보니 새로운 네임서버에 대해서 쿼리 권한을 제한했을 가능성이 많을 듯 하다.(org 가 막혔다는 것 보다 좀더 설득력이 있어 보인다)
최종 테스트는 되는 다른 도메인을 ns16,ns34 등으로 바꿔보고, 1day1.org 를 독립네임서버로 바꿔보거나 ns1,ns2 의 예전 네임서버로 바꿔서 교차 테스트를 해보면 명확한 답이 나올 듯 싶다. 최종 테스트가 예상대로 나오게 된다면 ns16~ns259 의 어떤 설정 문제일 듯 하다.
dnsever 쪽 문제라고 해도 좀 이상한 부분이 있다. YDN 쪽에서 검증파일(?) 만 체크하는 것이 아닌 듯 한데, 그에 대한 언급이 있어야 할 듯 하다. 분면 검증파일을 확인했으면서 체크오류를 내는 것은 문제가 있어 보인다. 그 확인사항이 정확히 무엇인지 모르겠지만, API KEY 발급상에서는 그에 대한 언급이 없다.
ps. 현재 최종테스트를 위해 네임서버를 변경해 두었다. 적용되려면 최소한 반나절,하루 정도가 걸리기 때문에 아직 테스트 할 수 없다.
http://developer.yahoo.com/yql/ YQL 은 지난 7월경에 나온듯 하다. 그동안 모르고 있었다.(다른곳에 한눈팔아 미처 못 봤겠지) 사실은 트위터 오픈API 를 이용해서 뭔가 만들려고 했었는데. 마침 YQL 이 눈에 띄었다. (결과적으로 이런 행운이...)
YQL console 이라는 것이 있어, 직접 쿼리(?)를 날려 테스트 해볼 수 있다. http://developer.yahoo.com/yql/console/
그 부분은 동영상에서도 소개가 되어 있으니 일단 넘어가고. 바로 트위터에 포스팅 하기를 실험해 봤다.(약간의 삽질기도 있다)
YQL 콘솔상에서는 다음과 같은 쿼리를 날린다.
이런 쿼리이다.
use 'http://yql.1day1.org/yql-twitter-status.xml' as table;
insert into table (username,password,status)
values('username','password','YQL-twitter test. 22');
자신의 트위터 아이디/암호/내용을 넣으면 트위터에 포스팅이 된다.
1. YOS , php SDK 를 이용하려다 실패.( & 보류 ) 자세한 사항은 자세히 보기로...
YOS lib 는 curl 을 기본으로 사용한다.(몇몇 호스팅인경우 curl 을 사용하지 못할 수도 있다.)
apt-get install curl
여기까지 잘 될 줄 알았다. 그런데, 실행하려는 코드가, 이런식의 코드이다.(YOS 라이브러리를 불러와서)
// Include the YOS library. require dirname(__FILE__).'/lib/yos-social-php/lib/Yahoo.inc';
// debug settings error_reporting(E_ALL | E_NOTICE); # do not show notices as library is php4 compatable ini_set('display_errors', true); YahooLogger::setDebug(true); YahooLogger::setDebugDestination('LOG');
// use memcache to store oauth credentials via php native sessions ini_set('session.save_handler', 'files'); session_save_path('/tmp/'); session_start();
// Make sure you obtain application keys before continuing by visiting: // https://developer.yahoo.com/dashboard/createKey.html
2. YOS 가 curl 쓴다면, 난 직접 쓰지뭐. YOS 가 curl 을 쓴다기에 직접 써보기로 했다.
file_get_contents , simplexml_load_file 같은 php 의 함수를 이용할 수도 있지만, INSERT/UPDATE/DELETE 등의 쿼리는 POST 로 데이터를 넘겨야 하는 것 같다. 그래서 해당 함수들은 사용할수가 없다. 물론 socket 열어서 직접 post 로 넘기면 되지만. 우린 복잡한거 싫어하잖아요. 간단하게 해야 Cool 하죠. ^^