알리바바 이야기

 IT, 정보보호  Comments Off on 알리바바 이야기
Feb 252014
 

jackma

중국 최대 전자상거래 기업 알리바바가 연일 화제다. 시가총액이 무려 1,200억 달러(127조 원)에 달할 것으로 예상되는 IT 공룡의 기업공개(IPO)가 눈앞에 다가왔기 때문이다. IT 업체로는 구글과 아마존에 이어 세 번째에 해당하는 시가총액이다.

알리바바의 1대 주주는 재일교포 사업가인 손정의 회장의 소프트뱅크로 36.7%, 2대 주주인 미국 야후는 24% 지분을 보유하고 있다. 손정의 회장이나 제리 양(Jerry Yang) 야후 공동창업자는 이미 세계 인터넷 업계의 거물이다. 알리바바에 글로벌 인터넷 기업의 DNA가 흐르는 이유다.

알리바바는 한마디로 인터넷에서 유료로 거래되는 모든 플랫폼을 보유하고 있는 기업이다. 게다가 13억 5,000만 중국 인구를 고객 기반으로 중국에서 압도적인 시장 지배력을 확보하고 있다. 알리바바의 입지는 실적에서도 그대로 확인된다. 지난 1분기 매출이 13억 8,000만 달러로 지난해 같은 기간 대비 71% 증가했다. 순이익은 6억 6,900만 달러에 달했. 알리바바가 구축한 온라인 결제시스템 알리페이(AliPay)의 가입자 수가 조만간  7억 명에 도달할 전망이다.

알리바바의 창업자 잭 마는 도대체 어떤 마술을 부린 것일까?

홍콩의 고등학교 영어교사, 손정의 회장의 신임을 얻다. 

모든 위대한 성취가 그러했듯, 알리바바의 시작 또한 미약했다. 알리바바의 창업자 ‘잭 마’는 홍콩의 한 영어교사였다. ‘잭 마’의 뒤에는 계속되는 실패와 시행착오에도 끝까지 그를 밀어준 소프트뱅크 손정의 회장이 있었다.

중국은 세계의 공장이다. 주로 대량 주문 생산 방식의 공장이지만, 인터넷 발달로 온라인으로 쉽게 소량제품이나 프로토타입을 주문, 생산하는 곳이 늘어나고 있다. 아이디어의 디자인과 재료를 결정한 뒤 공장을 만들지 않아도 중국 업체와의 협업으로 사업을 진행하는 사람들이 생기기 시작했다.

잭 마는, 몇 번의 사업 실패 이후에도, 인터넷 비즈니스에 대한 비전을 버리지 않았다. 중국의 공장들과 전 세계 소비자를 개방형으로 연결하는 창구 기능에서 비즈니스 기회를 찾아냈다. 알리바바의 창업자 잭 마는 이런 비즈니스를 C to B ( Consumer to Business )라고 칭했고, 이 아이디어는 잭 마의 비범함을 보여주어 손정의는 그의 든든한 후원자가 된다.

수많은 실패의 노하우를, 알리바바 서비스에 녹여 내다. 

잭 마의 첫 번째 창업 아이템은 ‘영어 번역 서비스’였다. 그는 영어 교사와 영어 번역 수요 시장의 간극을 메우는 지점에서 사업 기회를 찾았다. 이후, 미국 방문 후 중국판 옐로페이지 콤퍼니(Yellowpages company)를 창업하여 차이나 텔레콤(China Telecom)과 합작 회사를 만들었지만 이사회로부터 외면당하는 아픔을 겪었다. 그리고 세 번째로 창업한 IT 회사 사업으로 충분한 수익을 올렸지만, 공동창업자와 비전 공유 실패로 네 번째 창업을 결심한다. 그렇게 창업한 회사가 알리바바이다. 잭 마는 알리바바의 서비스에 세 번의 창업을 통해 연마한 서비스의 핵심들을 녹여 내었다.

웹사이트에서 원하는 제품이나 기술을 검색하고, 그곳에서 찾아낸 회사나 제품을 직거래 구매하도록 했다. 더 나아가 실시간 영어/중국어 통역 메신저 서비스를 제공하여 필요 사항이나 질문 또는 새로운 제품 주문 등 관련 서비스에 관해 안내한다. 실시간 통역 서비스로 주문자와 공장 직원 모두 자신의 언어로 실시간 소통이 이뤄진다. 일단 만들 수 있는 것과 없는 것이 명확해지면, 바로 즉석에서 주문할 수 있으며 비슷한 샘플을 먼저 구매할 수도 있다.

세계와 중국을 연결하다. 

이후, 그는 E-커머스 영역에 집중하여 B2B 무역 플랫폼 서비스 영역을 넘어, 미국 이베이의 복제모델 타오바오 서비스를 런칭한다. 이베이에 대항하기 위하여 타오바오는 중국 시장에 더욱 최적화된 서비스를 제공하고, 동시에 수수료 무료 전략까지 펼쳐 공격적인 대응으로 가파르게 시장점유율을 높여 나갔다. 이베이는 결국 2년 만에 사업을 포기하고 중국을 떠났다. 타오바오는 오늘날 중국에서 가장 잘 나가는 인터넷 전자상거래 서비스로 입지를 굳건히 하였다.

타오바오는 현재 등록된 사용자만 2억 명에 육박하며, 2009년 상거래 규모가 30조 원이 넘는 엄청난 규모로 성장하였다. 중국 내에서는 이미 아마존과 이베이를 합친 것보다 더 막강한 영향력을 행사하고 있다.

알리바바의 목표는 단순한 전자상거래가 아니다. 공급자와 중간 유통업체, 그리고 소비자를 잇는 종합 판매 유통 서비스로, 이미 알리바바닷컴(Alibaba.com)에서 선보인 것처럼 제조업과의 연계와 알리익스프레스를 통해 해당 사업 분야의 최적화와 효율 극대화를 이루고자 한다.

은퇴 18일 만에 물류 사업가로 변신하다.

2013년 5월 10일, 잭 마는 “기업이 실패하지 않고, 노쇠하지 않으려면 젊은 사람을 믿고 미래를 믿어야 한다”며, “이제까지는 일이 내 생활이었지만, 이제부터는 생활이 내 일이 될 것이다”라고 말했다. 그는 후임 루자오시(陸兆禧·43) 회장을 비롯한 새로운 경영진 12명을 관중에게 소개하고 무대에서 퇴장했다. 14년간 알리바바그룹 CEO 생활의 마지막 모습이었다.

그리곤 은퇴 18일 만에 물류 사업가로 변신하여,  ’차이냐오(菜鳥·새내기라는 뜻의 인터넷 신조어) 네트워크 테크놀로지’라는 이름으로 물류사업에 뛰어든다. 차이냐오의 회장은 잭 마, CEO는 선궈쥔 인타이그룹 회장이 맡기로 했다. 알리바바가 최대주주(지분 51%)인 차이냐오는 물류 플랫폼 프로젝트에 최대 3,000억 위안(약 55조 원)을 투입할 것으로 전해졌다.

잭 마 회장은 “전자상거래와 물류업체, 창고업체 등이 이용할 플랫폼을 만드는 것일 뿐, 따로 물류사업에 진출해 기존 업체에 해를 끼치지 않을 계획이다”라고 밝혔다. “이는 일반 물류사업은 우리보다 기존 업체들이 훨씬 잘할 수 있기 때문이다”라고 덧붙였다.

마윈의 선택…‘차이냐오(菜鳥)’의 숨은 뜻

본뜻은 요리에 사용하는 ‘새’를 가리킨다. 한편, 최근 인터넷 용어로 쓰여 ‘초짜’, ‘신입’ 등 응용수준이 낮은 사람을 표현한다.
마윈 회장이 이를 회사명으로 사용한 이유는 크게 2가지로 요약된다. 첫째, 회사 스스로 항상 ‘신입’ 기업의 자세를 유지해 창의력과 배우려는 마음을 가지려는 데 있다. 둘째, 챠이나오의 물류 플랫폼은 창업자조차 처음 시도하는 것이며, 앞으로 이 서비스를 이용할 고객 또한 모두 ‘신입’이기 때문에 서로의 공동발전을 도모하기 위한 것으로 풀이된다.
<Reference>

<하이컨셉 & 하이터치> 소비자 중심 제조환경 지원하는 플랫폼 사업자, http://health20.kr/1433

<하이컨셉 & 하이터치> 알리바바, 글로벌 전자상거래 플랫폼을 노린다, http://health20.kr/1889
<정지훈, Venture Square> 알리바바 CEO, Jack Ma 의 리더십과 회사문화, http://www.venturesquare.net/659

<김철민의 SCL(Supply Chain logistic)> 알리바바에 주문 건 마법 물류 , http://logiseconomy.tistory.com/2057

 Posted by at 5:13 PM

리눅스에서 네트워크 설정

 IT, 리눅스  Comments Off on 리눅스에서 네트워크 설정
Feb 172014
 

리눅스를 매뉴얼하게 설정하는 경우

http://dinggur.tistory.com/76

 

리눅스 네트워크 관련 설정파일

1) /etc/sysconfig/network-scripts/ifcfg-eth0   → 아이피,서브넷 마스크,(게이트웨이)
2) /etc/sysconfig/network   → 컴퓨터이름,(게이트웨이)
3) /etc/resolv.conf   → DNS 정보
4) /etc/hosts   → 네임서버 파일

 

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.150
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
TYPE=Ethernet

 

# vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=sg150
GATEWAY=192.168.0.1

 

# vi /etc/resolv.conf

nameserver 168.126.63.1

 

# vi /etc/hosts

# Do not remove the following line, or various programs
# that require network functionality will fail.
192.168.0.150           sg150 localhost.localdomain localhost

 

# service network restart

인터페이스 eth0 (을)를 종료함:                             [  확인  ]
loopback 인터페이스를 종료함:                              [  확인  ]
네트워크 매개 변수를 설정하고 있습니다:                    [  확인  ]
loopback 인터페이스 활성화중 입니다:                       [  확인  ]
eth0 인터페이스 활성화중 입니다:                           [  확인  ]

 

 Posted by at 7:08 PM

한국 인터넷에서 잘못 끼워진 첫 단추, 그 이름은 네이버 (NAVER)

 IT  Comments Off on 한국 인터넷에서 잘못 끼워진 첫 단추, 그 이름은 네이버 (NAVER)
Feb 102014
 

http://sungmooncho.com/2010/03/21/naver/

지난번 한국 방문 중에 많은 친구, 선배, 후배들을 만났다. 다양한 주제로 토론을 했는데, 그 중에 내가 가장 열을 올리며 했던 이야기는 “네이버가 무엇을 잘못하고 있는가”였다. 많은 사람들은 전혀 몰랐던 사실을 알게 되었다는 반응을 보였고, 또 다른 사람들은 네이버가 한국에서는 정말 잘 하고 있는 회사라며 반박했다.

민감한 주제라 다루기가 조심스럽지만, 블로그를 통해 좀 더 자세하게 이야기하고 싶었다. 객관적이고 구체적인 예를 들어서 말이다. 물론 내가 든 예들은 검색엔진을 통해 얻는 정보 중 일부에 불과하기 때문에 이것만으로 어느 쪽이 더 낫다는 결론을 내리는 것은 위험할 수 있다. 하지만, 10년동안 네이버를 사용했고, 지난 2년 반동안 구글을 사용해 온 지금, 자신있게 말할 수 있다. 똑같은 주제를 네이버에서 한글로 검색하는 대신 구글에서 영어로 검색하면 대부분의 경우 훨씬 품질이 좋은 정보를 얻을 수 있다. 내가 영어를 읽을 수 있기 때문에 구글 검색을 이용할 수 있다는 것을 특혜로 여길 정도이다.

나는 네이버가 엠파스를 이기면서 검색 엔진의 새로운 강자로 떠오르던 시기를 생생하게 기억한다. 그 계기는 2000년 7월에 일어난 한게임과의 합병과 KOSDAQ 상장이었다. 얼핏 보기엔 어색한, 그러나 훌륭한 결정을 통해 네이버는 크게 도약했다. 당시에 사실 ‘자연어 검색’ 기술로 20억의 VC 투자를 받으며 화려하게 출발한 엠파스를 사용하는 사람이 많았으나 네이버에 밀린 후 다시는 일어서지 못하고 2008년 역사 속으로 사라지고 말았다.[주]

네이버에 똑똑한 사람들이 모여들었고, 네이버는 계속해서 혁신을 했고, “네이버에서 검색해보세요”라는 참신한 마케팅, 그리고 특히 지식인 서비스를 내놓으면서 점차 사람들의 머리속에 자리잡았다. 무엇이든지 네이버에 가면 답을 얻을 수 있었다. 무엇보다, 모든 정보가 네이버 카페, 네이버 블로그, 그리고 네이버 지식인에 몰려들었다. 나중에 구글이 등장해서 한국 서비스를 시작했지만 네이버가 자신의 정보가 구글에서 검색되지 않도록 차단하는 바람에, 구글에서 찾을 수 있는 정보의 양은 네이버에 있는 양과는 상대가 되지 않았다. 나도 구글을 써보면서 영어는 어떨지 몰라도 한국어 검색은 참 못한다고 생각했다. 네이버는 그야말로 자랑스러운 대한민국 최고의 검색 엔진이었다.

정말 그런 줄 알았다. 적어도 한국을 떠나기 전까지는…

미국에서 학교 생활을 하고, 졸업 후 회사에서 일하면서 한글로 검색할 일은 거의 없어졌다. 영어로 검색을 하기 시작하니 구글과 네이버의 품질의 차이가 보이기 시작했다. 그러면서 점차 네이버를 방문하지 않게 되었다. 아주 가끔 네이버에 들어가서 정보를 찾아보기도 하는데, 지나치게 선정적인, 소위 “낚기 기사”에 몇 번 걸린 이후로는 짜증이 나서 거의 방문하지 않고 있다.

Mickey Kim님이 웹 검색의 진화와 미래라는 블로그에서 두 검색엔진의 차이에 대해 언급했는데, 단적으로 비교해보면, 네이버는 정보를 ‘제공해주는 것’에 초점. 구글은 정보를 ‘찾아주는 것’에 초점을 맞추고 있다. 또한 임정욱 님도 “Mammogram 검색 결과로 보는 한미검색의 차이“라는 글을 통해 두 검색엔진을 비교한 바가 있다. 여기서는 두 가지 예를 들어 그 차이점을 설명해보고자 한다.

1. 투명 교정 (Invisalign) 가격

얼마 전에 아는 사람이 ‘투명 교정 (invisalign)‘을 알아보길래 가격이 궁금해서 검색을 해본 적이 있다. 한국에서는 얼마나 하는지 궁금해서 먼저 네이버에서 “투명 교정 가격”이라는 검색어로 찾아봤다.

네이버에서 ‘투명 교정 가격’으로 검색한 결과. 정보가 아닌 광고가 한 화면 전체를 차지한다.

첫 화면 전체가 광고로 가득 차 있다. 나는 투명 교정이 얼마인지 알고 싶었던 것이지 강남의 병원 이름이 궁금했던 것이 아니었는데 말이다. 아무튼, 나에게 전혀 의미 없는 정보를 거쳐서 아래로 내려가면 가장 먼저 뜨는 것은 지식인 검색 결과이다. 이제 출처가 불분명한 정보를 헤멜 차례이다.

수준이 낮은 광고성 지식이 모인 곳, 네이버 지식인.

클릭해서 들어가보면 가격 얘긴 안하고 딴 얘기만 자꾸 한다. 광고성 답변이 섞여 있는 것도 당연하다. 지식이 극도로 단편적인데다가, 이미 시기가 지난 정보가 많고, 무엇보다도 그 글을 쓴 사람이 얼마나 전문성을 가졌는지, 이 정보를 신뢰할 수 있는지 알 방법이 없다.

다음으로, 구글에서 똑같은 내용을 찾아보았다. 검색어는 “Invisalign Prices”이다.

구글에도 광고가 있다. 단, 3줄을 넘는 적이 없다. 게다가 광고 중 첫 번째 링크는 Invisalign이라는 기법을 개발한 회사의 공식 웹사이트이다. 이런 광고라면 나에게 도움이 된다.

구글 검색 결과의 최상단 광고 세 개.

그 아래 검색 결과가 나온다. 내가 찾는 주제와 관련이 깊은 웹사이트들이 나와 있다.

Invisalign Price 검색 결과. 모두 내가 찾는 정보와 연관이 깊은 내용들이다.

첫 번째 검색 결과가 가장 눈에 띈다. 클릭해서 들어가보자. (클릭해서 직접 보시기를 권한다.)

검색 결과 중 첫 번째로 뜬 realself.com. 투명 교정 가격이 지역별로 표시되어 있다.

미국 각 도시별로 사람들이 Invisalign에 얼마의 비용을 썼는지 알 수 있다. $2,700부터 $5,617까지. 빨간 색은 좀 더 비싼 곳, 그리고 노란 색이나 녹색은 좀 더 싼 곳이다. 그 아래에는 아래와 같은 338개의 댓글이 달려 있다. 대충 얼마 정도 비용이 드는지 한 번에 감이 온다.

# $2,400 Glendale, CA: 1 month in, great so far! But be sure you are a good candidate
# $5,250 New York City, NY: Expensive lesson in Invisalign
# $4,300 Chicago: Invisalign: What they don’t tell you
# $6,400 California: Wish I’d done braces
# $5,000 Bristol, CT: Invisalign Review, my pros and cons (w/video)
# $3,000 Huntington Beach, California: One Invisalign Experience
# $5,000 Winnipeg, Manitoba, Canada: Second round of orthodontics with Invisalign
# $6,200 Woodbury, MN: Invisalign for severe case (24 months) – it’s so worth it!
# $5,000 Philadelphia, PA: Still working on it, with good results!…Now, some details you should know….
# $6,000 Maryland: Yes, Invisalign Works Even on REALLY Bad Teeth
[…]

다시 검색 결과로 돌아와 두 번째 링크를 클릭하면 Invisalign을 개발한 회사의 공식 페이지로 간다. 조금만 내려가보면 세 번째 문단에 가격에 대한 정보가 있다. 전국 평균은 약 $5000이나, 경우에 따라 $3500에도 가능하다고 쓰여 있다.

여기서 궁금증이 들 것이다. 이렇게 멋진 웹사이트를 만드는 사람들의 동기는 무엇일까? 시간이 남아서일까? 남을 위해 헌신적인 봉사를 하고 싶어서일까? 구글 애드워드 (Google Adwords)에 그 해답이 있다. 아래와 같이 웹페이지 왼편에 구글 광고가 달려 있다. 이것이 구글이 만든 건강한 생태계이다.

realself.com 같은 웹사이트에서 공을 들여 정보를 정리하는 이유: 구글 애드워즈(Google Adwords)

즉, 사람들이 많이 방문하도록 정보를 잘 가공해서 올려 놓으면 자연스럽게 구글에서 검색 결과 랭킹이 올라가고, 그러면 더 많은 사람들이 방문하고, 더 많은 사람들이 방문하면 광고 수입이 증가하는 선순환 고리이다. 이게 과연 돈이 될까 싶겠지만, 돈이 꽤 된다. 한 인기있는 웹사이트를 운영하는 지인은 구글 광고를 달자마자 월 수천만원의 수입이 들어오기 시작했다고 이야기했다. 당신이라면 공을 들여 이런 사이트를 만들겠는가? 물론이다.

두 번째 예를 들어보겠다. 당신이 경제학과 대학원생이고, 이번에 쓰는 논문에서 프랑스의 인구에 대한 최신 정보를 넣고 싶다고 하자. 두 검색 결과를 비교하면 아래와 같다.

“프랑스 인구” (네이버) vs. “Population of France” (구글)

먼저, 네이버 검색 결과를 보자.

프랑스 인구. 네이버 검색 결과
프랑스 인구. 네이버 검색 결과

제일 첫 줄에 프랑스 인구가 나온 것까지는 좋다. 출처가 백과사전이라는데, 백과사전이 어떻게 출처가 될 수 있는지 모르겠다. (클릭해서 들어가보면 두산대백과사전이 출처라고 되어 있다.) 내가 생각하기에 논문을 쓰는 사람이 사전을 출처로 달지는 않을 것 같다. 그 정보를 처음 수집한 곳이 출처가 되어야 하는데 (인구 센서스 등) 그런 정보는 찾을 수가 없다.

어쩄든, 더 아래로 내려가보면 여지없이 지식인 검색이 있다. 클릭해서 들어가보면 가관이다. 쥬니버Q&A라고, 초등학생들이 숙제하면서 주고 받은 내용인 것 같은데, 2009년에 질문/답변한 첫 번째 링크를 클릭하면 네이버에서 이미 제공하는 “출처 불분명하고 2년이 지난 정보”를 그대로 복사해서 답변해 놓았다. 심지어 2005년에 질문/답변한 정보도 있다. 클릭 몇 번 해보면 거의 새로울 게 없고 좋은 정보가 없어서, 그리고 무엇보다도 “출처“를 찾을 길이 없어 논문에는 사용할 수 없다.

네이버의 ‘프랑스 인구’ 검색 결과. 지식인.
네이버의 ‘프랑스 인구’ 검색 결과. 지식인.

다음으로 구글 검색 결과를 보자.

Population of France. 구글 검색 결과

일단 인구 성장 그래프가 눈에 띈다. 네이버와 같은 숫자를 보여주고 있지만, 이번에는 출처가 있다. 출처는 World Bank이다. 이정도면 신뢰해도 되는 정보이겠다는 생각이 든다. 첫 번째 검색 결과인 Wikipedia를 클릭해보자. 직접 들어가보면 놀랄 것이다. 2010년의 프랑스 인구가 “프랑스 정부”를 출처로 해서 달려 있다. 출처 링크도 있고 당연히 신뢰할 수 있다. 뿐만 아니라 프랑스 영토 내에 사는 프랑스인 뿐 아니라 대평양의 프랑스 소유 섬 등에 사는 사람들의 인구도 같이 나와 있다.

첫 번째 검색 결과인 위키피디아 페이지에서 찾은 대목. 2010년 1월 기준으로 프랑스 인구는 65,447,374명이며, 그 중 62,793,432명이 도시에 살고 있다.

일단 내가 원하는, 그리고 무엇보다도 신뢰할 수 있는 정보를 10여초만에 얻었다. 그 아래로 조금 내려가면 또 한 번 놀란다. 프랑스 인구가 연도별로 정리되어 있기 때문이다. 물론, “official French censuses”라는 출처 정보가 명시되어 있다.

연도별 프랑스 인구 변동 추이

그 아래로 더 내려가보면 “프랑스 인구”에 대해 알고 싶을 만한 내용이 전부 들어있다. 역사적으로 어떻게 변했는지, 세계대전 전후로 어떤 변화가 있었는지, 이민이 어떤 변화를 가져왔는지, 현재 출산율은 얼마인지 등이 모두 출처와 함께 상세하게 설명되어 있다.

사람들에게 이러한 검색 결과 품질 차이 얘기를 하면 듣는 반응 중에 한 가지는, “한국에는 좋은 정보를 가진 웹사이트가 없다. 그래서 네이버에서 그런 웹사이트를 먼저 보여주지 않는 것이다.”라는 것이다. 과연 그럴까? 좋은 정보를 가진 웹사이트가 있더라도 네이버에서 이를 보여주지 않아서는 아닐까? 닭이 먼저일까, 달걀이 먼저일까.

3월 15일에 이정환님이 쓴 글을 보니 네이버 검색 결과의 72.3%가 지식in, 네이버 블로그 네이버 카페 등의 네이버 자체 사이트로 유입된다고 한다. 이러니 한국 사람들의 생활은 네이버에서 시작해서 네이버로 끝나는 것이다. 다른 사이트들이 비집고 들어갈 틈이 아주 작다.

기억을 조금 더듬어보았다. 네이버가 나타나기 전의 한국의 인터넷은 어떤 모습이었던가? 심마니라는 파일 다운로드 사이트가 따로 있었고, “디비딕“이라는 질문 답변 사이트가 따로 있었다. 엠파스, 네이버에서 이러한 사이트를 검색해 주었고, 그 사이트들은 해당 정보를 이용하기 가장 편리하도록 사이트를 가꿔나가고 있었다. 그러다가 네이버가 이런 정보를 직접 정리하거나 회사를 사서 사이트에 붙이기 시작했다. 결과적으로 생활 자체는 편리해졌다. 마치 One Stop 쇼핑처럼 한 곳에서 필요한 일들을 다 할 수 있기 때문이다. 비행기 티켓은 네이버 여행에서, 부동산 정보는 네이버 부동산에서, 그리고 뉴스는 네이버 뉴스에서 보면 된다. 그러나, 네이버가 “서비스”를 제공하는 것이 아니라 “정보”를 소유, 가공해서 사람들에게 “떠먹여”주기 시작하면서 모든 게 변질되고 말았다. 네이버는 한국의 인재가 모인 회사다. 이런 회사가 정보를 소유, 가공할 줄을 모른다는 것은 아니다. 실제로 네이버가 제공하는 사이트가 다른 사이트보다 더 품질이 높은 경우도 많다. 문제는, 이것이 “네이버가 가장 잘 하는 일“은 아니라는 것이다. 검색에 집중하지 않고 온갖 정보를 수동으로 가공하는 일을 하기 시작하면 즉시 인력이 부족해지고, 비효율성이 발생한다. 이건 사람을 채용해서 극복할 수 있는 문제다. 그러나 극복할 수 없는 문제가 있다. 해당 정보를 훨씬 더 잘 가공해서 제공할 수 있는 사이트가 생겨나더라도 사람들의 주목을 받기가 매우 힘들다는 것이다. 네이버가 검색 결과에서 자신의 서비스보다 위에 올려줄 이유가 없기 때문이다. 따라서 네이버가 이미 제공하는 정보를 제공하는 사이트를 만든다는 것은 무모한 일이 되어버렸다.

여기에 진짜 문제가 있고, 이 글을 쓴 목적이 있다. 즉, 바로 앞 블로그에 소개되었던 Netflix와 같은 Disruptive Technology가 등장할 기회가 차단되었다는 것이다. 많은 사람들이 한국 인터넷은 10년동안 정체되었다고 하는데, 나는 원인이 여기에 있다고 생각한다. 우리나라 사람들이 변화를 싫어해서가 아니다. 새로운 사이트가 등장해도 순위에서 자연스럽게 올라갈 기회를 잡을 수 없기 때문이다. 사람들이 네이버 검색을 하면 제일 먼저 보는 건 네이버 블로그, 네이버 지식인, 네이버 음악, 네이버 동영상이고, 맨 아래에 초라하게 자리잡고 있을 뿐인 웹 검색 결과에까지 도달하는 일은 거의 없다.

구글에서는 시나리오가 어떻게 다른지 한 가지만 예를 들어보겠다. “미국판 싸이월드”였던 Myspace.com이라는 서비스가 있다. 싸이월드가 한국에서 먼저 뜬 후인 2003년에 생겨났고, 아마 싸이월드를 벤치마킹해서 만들었을 것이다. 당시 마이스페이스의 인기는 대단했다. 미국에서 젊은 사람 중에 마이스페이스 계정 하나 없는 사람이 없을 정도이니 말이다. 미국 친구들이 마이스페이스를 쓰기 시작하고 점차 그 안의 네트워크가 강화되는 것을 보면서 나는 마이스페이스를 이길 회사는 절대 없겠거니 했다.

내 생각이 틀렸다. 아래 그래프를 보면, 2009년에 미국에서 페이스북은 마이스페이스를 따라잡았고, 이겼다.[주] 이미 세계 트래픽에서 마이스페이스를 앞지른 후였다.

페이스북과 마이스페이스 트래픽 비교. 페이스북이 따라잡다가 추월하는 모습이다.

페이스북이 마이스페이스를 이긴 사건이 구글과 무슨 관련이 있을까? 나는 관련이 있다고 생각한다. 사람들이 다른 사람에 대해 알고 싶으면 대개 구글에 이름을 친다. 그러면 그 사람의 Myspace, Facebook, LinkedIn, Twitter 등의 정보를 알아낼 수 있다. 예를 들어 구글에서 내 이름(Sungmoon Cho)을 치면 아래와 같은 검색 결과가 나온다.

구글에서 Sungmoon Cho로 검색한 결과

지금은 LinkedIn과 Facebook 링크가 가장 먼저 등장하지만, 몇 년 전만 해도 Myspace 링크가 상위에 나왔었다. Facebook이 인기를 얻어가기 시작하면서 등수가 조금씩 올라갔을 거고, Facebook을 모르던 사람들이 “이게 뭐지?” 하고 클릭해보고 나서 Myspace보다 깔끔한 인터페이스를 제공하고 있다는 것을 배웠을 거고, 관심이 생겨서 자기도 가입을 했을 거고, 그 결과 Facebook의 검색 순위는 더 상승했을 것이다. 새로운 서비스가 생겨서 기존 서비스보다 더 좋은 정보를, 더 좋은 인터페이스로 제공한 것이고, 그 결과 승리한 것이다. 이러한 예는 수도 없이 많다. 지난 2년 반동안 미국에 있으면서 그 짧은 기간동안 관찰한 것만 해도 많이 있으니 말이다.

다윗이 골리앗을 이기는 사건. 나도 바로 이전 블로그에서 그렇게 얘기했고, 임정욱 님도 Netflix vs. Blockbuster에서 똑같은 비유를 들었는데, 미국에서는 이런 일이 흔하게 일어난다. 그래서 아무리 작은 회사라도 거대 회사를 두려워할 필요가 없다. 회사를 창업하고, 더 좋은 서비스를 제공해서 고객을 모으기 시작하면 언젠가는 이기는 일이 일어나기 때문이다. 이기지 못하더라도 상관 없다. 골리앗은 나중에 다윗에게 당하지 않기 위해서 그 회사를 살 것이다. 그러면 창업자는 갑부가 된다 (매우 흔하게 일어나는 일이고, 구글이 Admob을 인수한 사건도 이에 해당한다. 이에 대해서는 “내가 느끼는 한국과 미국의 M&A 문화 차이” 참고)

새 술은 새 부대에 담아야 하는데, 네이버가 만들어놓은 낡은 부대에 새 술이 자꾸 담기면서 한국은 그만큼 혁신 속도에서 뒤쳐지고 있다. 어떻게 하면 개선할 수 있을까? 네이버가 독점하고 있는 한, 그리고 네이버가 계속해서 수익을 내고 있는 한(네이버 공시자료에 따르면 2010년 첫 쿼터 매출액이 3300억원이었고, 그 중 30%에 달하는 무려 1130억원이 당기순이익이었다. 그리고 지금 현금 보유액이 약 2000억원이다. [주]), 답은 없어 보인다. 네이버 입장에서는 돈을 잘 벌고 있는 사업 모델을 바꿀 동기도 없고 그래야할 이유도 없다. 그래서 잘못 끼워진 첫 단추가 무서운 것이다.

업데이트 (2010/3/23): 구글과 네이버를 공정하게 비교하기 위해서는 같은 키워드로 검색해야 한다는 의견이 여러 번 있었는데, 거기에 대해서는 다음 두 개의 링크를 클릭해서 비교해 보시기 바랍니다. 동일한 키워드로 검색했습니다. 검색어는 이 블로그의 제목입니다. 네이버는 글의 원문조차도 찾아내지 못하고 있습니다. 제 글을 퍼가서 올린 네이버 블로그와 제 글에 반박하는 글들이 제일 위에 뜨네요 (신기하네요.. 꼭 일부러 그런 것처럼.). 게다가 검색 의도와는 전혀 관련이 없는 뉴스 기사가 버젓이 자리하고 있습니다. http://bit.ly/bfK4Lk (네이버) vs http://bit.ly/93BIcT (구글)
게다가 네이버에서 ‘사이트 검색‘을 해 보니 다음과 같은 결과가 나오는군요.

업데이트 (2010/3/25): 제 포스팅에 이어 메사추세츠 주립 대학에서 정보 검색을 연구중이신 김진영님이 “네이버가 구글과 싸우는 법 – 검색 연구자의 관점“이라는 제목으로 글을 써주셨습니다. 네이버가 앞으로도 경쟁력을 갖출 수 있으려면 검색 기술 확보가 중요하다는 말씀을 해주셨네요.

출처: http://www.flickr.com/photos/steebp/2193769710/

업데이트 (2010/3/29): 몇몇 분들이 영어로 된 정보가 훨씬 더 많기 때문에 한글 검색끼리 비교해야 공정한 것이라고 반론을 제기하며 그 근거로 한국어 검색 비교를 해주셨습니다 [참고글]. 그 주장도 일리는 있습니다. 그러나 왜 그런지, 그게 어디서 시작된 것인지 생각해볼 필요가 있습니다. 저도 글을 쓰기 전에 한글 검색 비교를 예로 드는 것에 대해 생각을 해 봤습니다만, 저는 오히려 그것이 공정하지 않다고 생각했습니다. 그 이유는 다음과 같습니다. 1) 네이버의 데이터베이스가 막힌 상태에서 구글 등 다른 검색엔진이 수집할 수 있는 정보에는 한계가 있습니다. 2) 네이버를 비롯한 국내 포털들은, “포털 바깥에는 쓸만한 정보가 없다”는 가정하에 모든 정보를 자신의 데이터베이스에 담으려고 했습니다. 그리고 검색 결과에서 자신의 포털 안에 들어있는 정보를 가장 먼저 보여주었습니다. 그러다 보니 좋은 정보가 생생하게 살아 숨쉬어야 할 인터넷 생태계가 파괴되었고, 좋은 정보를 가공해서 올리는 사이트가 많이 생겨나지 못했습니다. 구글, Bing 등의 다른 검색엔진이 한글로 된 페이지들을 아무리 열심히 찾아 헤메면 뭐하겠습니까, 이미 그렇게 되어버린 상태라면 말이죠. 그래서 제가 ‘잘못 끼워진 첫 단추’라는 표현을 사용한 것입니다. 첫 단추가 잘못 끼워지는 바람에 인터넷 생태계가 망가져가고 있는 모습을 극적으로 표현했다고 할까요… 오른쪽 그림처럼 말입니다.

업데이트(2010/3/30): 이 글을 쓰고 나서 네이버 김상헌 사장님이 의견을 주셨네요. 블로그 후기에서 보실 수 있습니다.

업데이트(2010/12/1): 깜신님이 ‘네이버 검색의 폐쇄성’에 대해 글을 써서 한동안 트위터에서 화제가 되었습니다. 여기에서 자세한 내용을 보실 수 있습니다.

업데이트(2013/4/3): 이 글을 쓴 지 만 3년이 되었는데, 여전히 제 블로그에서 가장 많이 읽히는 글 중의 하나입니다. 얼마 전에는 갑자기 페이스북에서 많은 사람들에게 공유되며 3만명이 넘는 분들이 다녀갔습니다. 새로 쓴 “갑자기 다시 주목을 받는 3년 전의 네이버“도 함께 읽어보세요.

업데이트 (2014/2/3): 위에서 ‘구글에서 영어로 검색하면 품질이 훨씬 좋은 정보를 얻을 수 있다’고 했는데, 지난 4년간 구글에서 한글 검색을 해본 결과 한글로 된 정보 역시 구글에서 찾으면 훨씬 좋은 결과를 얻을 수 있습니다.

 Posted by at 11:47 AM

해커가 되려면

 IT, 정보보호  Comments Off on 해커가 되려면
Nov 212013
 

Copyright ⓒ 2001 by Eric S. Raymond

저자 : 에릭 스티븐 레이몬드(Eric S. Raymond )
번역: 김성무 (Kim, Sung Moo )

수준의 제한으로 번역상에 미흡한점이 많을겁니다. 양해해 주시고 다른 문제가 있으시면 kimsungmoo_at_paran.com 으로 메일을 보내주세요.

원문의 완정성과 비상업적인 목적이라면 저자와 역자의 동의없이 재배포하실수있습니다.
목차:
Contents [-]
1 무엇때문에 이문서가 있는가?
2 해커란?
3 해커의 마음가짐
3.1 이 세계에는 해결을 기다리는 매력적인 문제들이 산적해 있다.
3.2 그 누구도 한 문제에 두 번씩이나 해결하려들면 안 된다.
3.3 권태와 단조로운 일은 악(惡)이다.
3.4 자유는 좋은 것.
3.5 마음가짐이 되었다고 능력이 없어도 된다는 얘기는 아니다.
4 해커가 알아야할 기술들
4.1 프로그래밍하는 방법을 배워라.
4.2 소스 공개 유닉스들 중 하나를 구해서 사용법과 운용법을 배워라.
4.3 월드 와이드 웹(WWW)의 사용법과 HTML 작성법을 배워라.
4.4 만약 아직 실용성 영어를 모른다면, 배워라.
5 해커 문화에서의 신분
5.1 소스 공개(open-source) 소프트웨어를 작성하라.
5.2 소스 공개 소프트웨어의 분석(test)과 디버그(debug)를 할 수 있도록 도와라.
5.3 유용한 정보를 출간하라.
5.4 하부구조가 견실히 작동할 수 있도록 도와라.
5.5 해커 문화 그 자체에 봉사하라.
6 해커(hacker)와 숙맥(nerd)간의 관계
7 해커 품격 갖추기
8 기타 자원
9 빈번한 질문들(FAQ)
1 무엇때문에 이문서가 있는가?

Jargon File과 기타 유사하고 유명한 문장의 작가로서, 나는 가끔씩 열정에 차넘치는 인터넷초보자들의 질문을 받곤한다. 요지는 한마디로 다음과 같다. “어떻게 하면 훌륭한 해커가 될수있죠?” 이상한것은 어느하나의 FAQ 혹은 WEB으로된 문서가 이렇게 중요한 문제에대해 설명해놓은것이없다. 그래서 나의 생각을 적어보려한다.

만약 당신이 지금 오프라인에서 이문서를 보고있다면 최신버전을 유의해주시길바란다. 영문버전은 http://www.catb.org/~esr/faqs/hacker-howto.html에서 얻을수있다.

주의: 이 문서의 마지막에 FAQ가 있다. 나한테 이 문서에 대한 물음을제기하기전에 두번은 읽어보길바란다.

현재 이문서는 여러 언어로 된 버전이 있다. 한국어에서 찾아볼 수 있다. 이 문서는 수시로 업그레이드되기에 위에 번역버전들은 부동한정도로 낡은버전일수있다.

2 해커란?

“해커 사전(Jargon File)” 에는 “해커”에 대해서 많은 정의를 해 놓았다. 그 대부분은 기술적으 로 정통한 사람과 문제를 해결하고 한계를 극복하면서 즐거움을 구하는 사람들과 깊은 연관을 맺 고 있는 정의들이다. 만약 여러분이 해커가 되는 방법을 알고 싶다면, 이러한 정의 중 단 두 가지 만이 관련된 것이다.

몇십년전 첫번째 소형컴퓨터가만들어지고 ARPAnet 프로젝트가 금방 시작되었을때, 이때 전문프로그래머와 인터넷 마법사들로 구성된 공유된 문화공동체가 있었다. 이런문화의 성원들이 “hacker”란 단어를 만들어냈다. 이들 해커들은 인터넷을 만들었다. 그리고 해커들은 UNIX 운영체제를 오늘날의 모습으로 가꾸었다. 해커들은 유즈넷을 운영하고 있고, 월드 와이드웹이 제대로 돌아가게 만들었다. 만약 여러분이 이러한 문화의 일부이고, 또한 기여하고 있다면,이 문화의 사람들은 여러분을 해커라고 부른다. “당신은 해커입니다”라고 말이다.

해커정신은 소프트웨어해커에만 국한되지 않는다. 일부사람들은 해커정신을 다른일에 사용하곤한다. 예를들면 전자공학이나음악 — 사실 당신은 기타 과학이나 음악의 최상위활동에서도 이것을 발견할수있다. 프로그램해커들은 이런사람들에게 동류의식을 느끼고 그들도 해커라고 부른다. 그리고 혹자들은 해커들의 천성은 해커들이 종사하고 있는 특정 매체에 구애되지 않는다고 한다. 그러나 이 글에서 우리는 소프트웨어 해커의 기법과 자세, ‘해커’라는 말을 창시한 공유된 문화의 전통에 초점을 맞춰 얘기를 전개시킬 것이다.

자신들을 해커라고 소리 높여 부르는 또 다른 집단이 있다. 과연 그럴까? 대답은 “아니오”다. 이들은 주로 10대의 청소년들인데, 스릴을 느끼려고 컴퓨터 시스템과 전화 시스템을 프리킹 (phreaking)하는 자들이다. 진정한 해커들은 이들을 ‘크래커(cracker)’라고 부르고 있으며, 자신들과 는 아무런 상관 관계가 없기를 바라고 있다. 진정한 해커들은 대체로 크래커들을 게으르며, 무책 임하고, 그다지 현명하지 못하고 실력없는 자들이라고 여기고 있다. 전문적으로 다른사람의 컴퓨터보안을 파괴하는행위는 당신을 해커로 만들지는 못한다. 쇠사슬로 자동차를 도둑질했다고 해서 자동차 엔지니어가 될수없는 것처럼 컴퓨터 보안 시스템을 깼다고 해서 당신이 해커가 될 수 있는 것은 아니다. 불행히도, 거의 대다수의 저널리스트들과 작가들은 크래커들을 묘사하는 말로 “해커”라는 말을 사용하여 스스로를 웃음거리로 만들고 있다. 이들의 이러한 행위는 진정한 해커들을 정말 화나게 만드는 꼴이다.

해커와 크래커와의 근본적인 차이는 무엇인가? 해커들은 사상(事象, things)을 건설하지만, 크래커들은 사상(事象)을 파괴하는 자들이다.

아직도 해커가 되고 싶다면, 계속 읽어주기 바란다. 그런데 크래커가 되고 싶다면 alt.2600 뉴스그 룹에 가라. 그리고 자신이 생각했던 것만큼 똑똑하지 않음을 깨달았다면, 이 뉴스그룹에 올라온 게시물을 그대로 따라 하라. 이것이 크래커들에 관해서 말할 수 있는 것의 전부이다.

3 해커의 마음가짐

해커들은 문제를 해결하고, 사상(事象)을 건설한다. 그리고 자유와 자발적인 상호 부조(扶助)의 신 념을 믿는다. 해커로서 인정을 받으려면, 여러분은 이러한 유형의 마음가짐으로 자신을 무장해야 할 것이다. 단순히 마음가짐만으로는 안 된다. 반드시 실천이 따라야 한다. 그렇다고 겉과 속이 달라서는 않될 것이다. 해커 문화에서 인정을 받기 위한 방편으로 해커식 마음가짐을 배양하려 한다면, 여러분은 주제의 초점을 잃은 것이나 진배없다. 이러한 것을 믿는 유형의 사람이 된다고 함은 여러분 스스로 끊임 없이 동기 부여를 하고 스스로 학습해야 된다는 것이다. 이것이 중요한 점이다. 모든 창조적인 예 술과 마찬가지로, 명인(名人)이 되기 위한 가장 효과적인 방법은 거장(巨匠)들의 사고 방식과 심적 경향을 모방하는 것이다. 지적으로 뿐만 아니라 정서적으로도 말이다.

가능하게 아래의 시조가 위에뜻을 잘표현했을것이다.
To follow the path: (이 길을 따르라)
look to the master, (달인을 찾으라)
follow the master, (달인을 따르라)
walk with the master, (달인과 함께 걸으라)
see through the master, (달인을 분석하라)
become the master. (달인이 되라)

그래도 해커가 되고 싶다면, 다음의 문구들을 깨달을 때까지 암송하시오.

3.1 이 세계에는 해결을 기다리는 매력적인 문제들이 산적해 있다.

해커로 가는 길은 상당한 즐거움을 안겨다 준다. 그러나 엄청난 노력이 동반되는 즐거움이다. 노 력을 통해서 동기 유발이 된다. 성공적인 운동 선수는 자신들의 신체를 단련하고, 과거의 자신의 육체적 한계를 극복하는 과정에서 일종의 육체적 즐거움으로부터 동기 유발이 된다. 이와 같이 해커가 되어간다는 것은 문제를 해결하고, 자신의 기술을 예리하게 가다듬고, 자신의 지능을 함양 하는 과정에서 원초적인 전율을 느끼는 것이다. 만약 당신이 천성적으로 이런류의사람이 아니고 또 해커가 되고싶다면, 당신은 모든 방법을 동원해서 이러한 사람이 되기에 노력을 해야한다. 그렇지 못하다면 결국에는 여러분의 해킹기력(氣力)은 돈 섹스, 사회적 인정과 같은 일탈적인 것에 침탈당하게 될 것이다.

(그리고 자신만의 학습 능력에 따라 일종의 신념을 개발해야만 한다. 다시 말해 비록 문제를 해결 하는데 필요한 온갖 것들을 알고 있지 못한다 할지라도, 과감히 도전하고, 이로써 또 배우고 배워 문제를 완전히 해결할 때까지 도전과 학습을 해나가는 것과 같은 신조와 성실성 따위를 자기 철 학으로 세워야 할 것이다.)

3.2 그 누구도 한 문제에 두 번씩이나 해결하려들면 안 된다.

창조적인 두뇌 활동은 가치있는 것이자 유한의 자원이다. 해결되어야 할 새로운 문제들이 산적해 있는데, 또 다시 바퀴를 재발명하는 것과 같은 일에 지력과 시간을 낭비해서는 안 된다. 해커처럼 행동하려면, 여러분은 다른 해커들의 사고와 시간도 매우 귀중한 것이라는 믿음이 있어 야 한다-즉, 여러분은 정보를 공유하고, 문제를 해결하고, 그리고 나서 그 해법을 널리 알려, 다 른 해커들이 예전의 문제를 한도 끝도 없이 재차 다루기보다는 새로운 문제를 해결할 수 있도록 하는 배려는 일종의 해커의 도덕률과도 같은 것이다. 그렇다고 여러분이 행한 창조적인 작품 모두를 나누어주라는 얘기는 아니다. 비록 이렇게 철저한 공유의 원칙을 지키는 해커들은 다른 해커들에게서 최대의 찬사와 존경을 받고 있기는 하지만 말 이다. 최소한의 생활비와 컴퓨터 임대 비용을 지불할 만큼으로 자신의 창조적인 작품을 파는 것 은 “해커 가치”와는 전혀 모순되는 것은 아니다. 그리고 가족을 부양하거나 부자가 되는데 자신 의 해킹 기술을 이용하는 것과도 모순되지 않는다. 단 여러분이 해킹을 하는 동안에 자신이 해커 임을 잊지 않는다면 말이다.

3.3 권태와 단조로운 일은 악(惡)이다.

해커들(일반적으로 창조적인 사람들)은 절대로 지루함을 느껴서는 안되며, 어리석고 반복적인 작 업에 매달려서도 안 된다. 이러한 일의 발생은 할 수 있는 일을 하지 못한다는 뜻이기 때문이다. 즉, 새로운 문제를 해결하는데 들여야 할 시간과 노력을 이런 지분한 일에 빼았기기 때문이다. 이 러한 낭비는 모든 사람들에게 상처를 입히는 결과를 빚는다. 따라서 권태와 단조롭게 반복되는 일은 불쾌한 일이기도 하지만 엄밀히 말해서 악인 셈이다. 해커처럼 행동하기 위해서는, 여러분은 따분한 정보를 가능한 한 많이 자동적으로 날려보낼 정도 로 이것을 신조로 삼아야 한다. 당신 자신을 위해서뿐만 아니라 모든 사람(특히 다른 해커들)을 위해서도 말이다. 한가지 예외는 있기는 하다. 해커들은 관조자의 눈에는 반복적이고 따분하게 보이는 것을 아무 생각없이 실습하기도 한다. 이때는 특정 기술의 습득 또는 여러분에게는 없는 특정의 경험을 하 려는 목적이다. 그러나 생각이 있는 사람이라면 그 누구라도 이러한 권태의 타성에 굴복해서는 안 된다.

3.4 자유는 좋은 것.

해커들은 타고난 반 권위주의자들이다. 여러분에게 지시나 명령을 내릴 수 있는 사람이라면 여러 분이 매료된 온갖 문제의 해결을 저지시킬 수 있다. 그리고 권위주의적인 마음가짐의 소유자들이 하는 일의 방식은 황당할 정도로 어리석기까지 하다. 그러니 권위주의적인 자세와 직면하게 될 때마다 투쟁해야 한다. 적어도 당신과 다른 해커들이 질식사하지 않도록 말이다. 이는 모든 권위와 싸우라는 얘기는 아니다. 아이들은 지도를 받을 필요가 있고, 범법자들은 어느 정도 구속이 필요할 수 있다. 해커들은 명령을 좇아 허비하는 시간 이상으로 그가 원하는 것을 얻기 위해서는 일부 권위를 받아들일지도 모른다. 그러나 이러한 수용은 제한적이고 의식(意識)적 인 거래(去來)이다. 권위주의자들이 원하는 일종의 개인적 굴복같은 것은 제공할 성질이 아니 다.(이런 권위에 굴복을 조장하는 것은 매스미디어도 그 한몫을 한다. 그들에게는 기사 거리이자 수익을 창출할 수 있는 또 다른 이벤트이기 때문이다–역주) 권위주의는 검열과 비밀주의로 번성한다. 그리고 이들은 자발적인 협력과 정보 공유를 믿지 않는 다. 즉, 이들은 자신들이 “통제할 수 있는 협력”을 좋아한다. 해커처럼 행동하려면 여러분은 이러 한 검열 및 그 제도, 비밀주의, 그리고 책임감있는 성인들을 구축(驅逐)하는 권력과 기만 수단에 본능적인 적의를 노정시킬 수 있도록 자신을 개발(開發)해야 한다. 그리고 이 신념에 따라 기꺼이 행동할 수 있어야만 한다.

3.5 마음가짐이 되었다고 능력이 없어도 된다는 얘기는 아니다.

해커가 되려면, 여러분은 이러한 자세를 개발해야 한다. 자세만 가지고 뛰어들면 해커가 될 수 없 을 것이다. 그 이상의 어떤 것이 있어야 챔피언 또는 록스타가 될 수 있다. 해커로 가는 길은 지 력과 실천, 헌신(獻身), 그리고 상당한 고역이 동반되는 길이다. 그러므로 여러분은 마음가짐만으로 안주하지 말고, 온갖 종류의 능력을 존중해야 한다. 해커들은 시험관들이 자신들의 시간을 어영부영 보내도록 내버려두지 않을 것이다. 해커들은 능력을 귀하 게 여긴다. 특히 해킹 능력을 말이다. 어떤 것에 대한 능력은 좋은 것이다. 그 누구도 거장(巨匠) 이 될 수 없는 기술에 관한 능력은 훌륭한 것이라 말할 수 있다. 정신적 예리함과 교묘한 재주, 고도의 집중력이 포함된 기술에 대한 능력은 더 말할 나위도 없다. 만약 여러분이 능력을 숭배한다면, 여러분은 능력 개발 자체를 즐길 것이다. 처절한 실천적 노력 과 헌신은 단조로운 일보다는 일종의 철저한 유희가 될 것이다. 해커가 되기 위해서는 이 점이 가장 중요한 요소이다.

4 해커가 알아야할 기술들

해커의 자세는 매우 중요하다. 그러나 그 기술은 절대적으로 필요한 것이다. 자세만으로 무능을 보상할 수 없다. 그리고 자신이 해커로 불려지기를 꿈꾸기 전에 갖추어야 할 어떤 기본적인 기술 이라는 도구(toolkit)가 필요하다. 이러한 수단은 테크놀로지가 새로운 기술을 창출하고 옛 것을 쓸모없는 것으로 만들면서 서서히 변하고 있다. 기계어 프로그래밍과 최근의 HTML을 놓고 볼 대 격세지감을 느끼지 않을 수 없다. 현시점에서는 다음에 기술하는 내용을 분명히 포함할 것이다.

4.1 프로그래밍하는 방법을 배워라.

물론 이것은 가장 기본이 되는 해킹 기술이다. 1997년까지 여러분이 반드시 배워야 할 프로그래밍 언어는 C이였다. 어떤 컴퓨터 프로그래밍 언어도 모른다면, 나는 Python 을 추천한다. 이 언어는 산뜻하게 설계되었으며, 문서화 또한 잘되어 있고, 비교적 초보자들이 접근 하기 쉬운 프로그래밍 언어이다. 비록 처음 접근하는 언어이기는 하지만, 장난감 같은 언어는 아 니다. 이 언어는 매우 강력하고 유연하며, 대형 프로젝트에도 적합하다. 나는 python에 대한 구체 적인 평가서를 작성했다. 그리고 학습서는 파이션 웹사이트에서 구할 수 있다.

java도 프로그래밍에 입문하기좋은 언어다. python에 비해 어렵지만 생성된코드의 실행속도는 많이 빠르다. 또 java는 프로그래밍에 입문하기만을 위한것이 아닌 아주 훌륭한 언어이다.

여러분은 단 한두가지의 컴퓨터 언어만 알고 있다면 해커가 아니다. 심지어는 프로그래머의수준도 않된다. 여러분은 어떤 한가지 언어에 편향되지 않는 보편적 방식으로 프로그래밍 문제에 관해 사고하는 방법을 배울 필요가 있다. 진정한 해커가 되려면, 매뉴얼에 기술된 내용과 당신이 알고 있는 것을 연관시켜, 며칠 이내에 새 로운 언어를 배울 수 있는 수준까지 오를 필요가 있다. 이는 여러분이 최소한 매우 다른 몇 가지 언어를 익혀야 됨을 뜻하는 말이다.

진지한 프로그래밍을 하고 싶으면, C 언어를 익혀야 할 것이다. C 언어는 유닉스에서 핵심이 되는 언어이다. C와C++ 는 아주 흡사하다, 만약 둘중에 하나를 익혔다면 다른하나를 배우는거도 쉬울것이다. 그러나 이 두언어 모두 초보자가 프로그래밍을 시작하기에는 적합하지않다.. 실제로 C언어를 적게쓰면 쓸수록 당신의 작업효율은 높아질것이다.

C는 아주 효율적이고 자원을 절약한다. C언어의 고효율은 당신이 컴퓨터최하층(예: 메모리)에대한 직접적인관리를 토대로 하는것이다. 이러한코드는 아주쉽게 버그를 만들어낼수있고 많은 시간을 디버깅에 투자하여야한다. 요즘 컴퓨터는 점점 빨라지고있다. 이는 얻는것보다 잃는것이 더많을 것이다. 비교적 총명한선택은 실행속도가늦고 효율이낮은 하지만 대폭적으로 당신의 시간을 절약할수있는 언어를 선택하는것이다. 그러기에 python 을 선택한다.

해커에게 있어 특히 중요한 여타 언어들은 LISP 과 Perl 이다. Perl은 역동적인 웹 페이지를 작성하고 시스템을 관리하는 데 폭넓게 쓰 이는 언어라는 매우 실질적인 이유에서 배울 가치가 있다. Perl로 작성하지는 못한다 할지라도 이를 읽고 이해할 수는 있어야 한다. 많은사람들이 perl를 사용하는 이유는 내가 여러분들에게 python을 추천하는 이유와같다. 모두 C가하지않아도될 고효율적인 작업을 하기위해서다. 당신은 그 코드들의 내용을 이해하는것을 필요할것이다.

리스프(LISP)는 마침내 도달하게 될 심오한 계발 경험을 위해 배울 가치가 있다. 그 경험은 여러분의 앞으로의 프로그래머로서의 기간동안 더욱 훌륭한 프로그래머가 되게 해주는 경험일 것이다. 비록 여러분이 리스프 자체를 실제로 그다지 많이 사용하지 않는다 할지라도 말이다.

5가지 언어(Python, JAVA, C/C++, Perl, 그리고 LISP) 모두를 배운다면 더할 나위 없겠다. 이 언어들은 가장 중 요한 해킹 언어가 될 뿐더러, 이것들 각각은 프로그래밍에 대한 접근 방법은 서로 다르며, 여러분 에게 매우 소중한 접근법으로 가르침을 줄 것이다.

여기서 어떻게 프로그래밍 언어를 익혀야 하는가를 구체적으로 기술할 수는 없다. 매우 복잡한 기술(skill)이기 때문이다. 그렇지만 시중의 서적이나 강좌들은 그렇지 못하다는 것을 밝히지 않을 수 없다(거의 대다수의 해커들이 독학한다). 굳지 말하라면, ⑴ 코드를 읽고 ⑵ 코드를 작성하는 것이다.

프로그램을 배운다는 것은 일상의 언어로 매우 좋은 글을 쓰는 것과 같다. 이렇게 하기 위한 최 선의 방법은 명인(名人)들이 작성한 자료를 읽고 스스로 습작을 해보고, 많은 글을 읽고 작성해보 고, 더욱 많은 글을 읽고 좀더 많은 글을 작성하고…. 한마디로 당신이 작성한 글들이 여러분들 만의 틀로 일종의 힘과 경제성을 개발하기 시작할 때까지 반복에 반복을 거듭하는 길뿐이다. 읽기 좋은 코드를 찾기란 매우 어렵다. 그 이유는 소스 상태로 애송이 해커들이 알고 어설프게 다룰 수 있는 대형 프로그램을 구할 수가 없기 때문이다. 이러한 상황은 극적으로 변화를 보고 있다. 지금은 소스 공개(open-source) 소프트웨어, 프로그래밍 툴(tool), 운영 체제(이 모든 것들은 해커들이 만든 것이다)들을 어디서든 구할 수 있다.

4.2 소스 공개 유닉스들 중 하나를 구해서 사용법과 운용법을 배워라.

여러분이 개인용 컴퓨터를 갖고 있거나 이에 접근할 수 있다라는 전제 하에 이 글을 쓴다. 어떤 신참(newbie) 해커들이 해커 기술들을 습득할 수 있는 가장 중요한 그 첫 단계는 리눅스 배포본이 나 BSD 유닉스 계열의 운영체제를 구하여, 여러분의 컴퓨터에 설치하고 이를 돌리는 일이다. 이 세상에는 유닉스 이외의 무수히 많은 운영체제들이 있다. 그러나 이것들은 바이너리(binary) 형 태로 배포되기 때문에 소스 코드를 읽고 분석하여, 이를 수정할 수 없다. 도스나 윈도우, 또는 맥 킨토시 운영체제에서 해킹하는 법을 배우려는 것은 몸 전체에 기부스를 하고 춤추는 법을 배우는 것과 같다. 게다가 유닉스는 인터넷의 운영체제이다. 유닉스를 모르고 인터넷을 배울 수 있지만, 인터넷을 이 해하지 못하고 인터넷 해커가 될 수는 없다. 이러한 연유로 오늘날의 해커 문화는 매우 강한 유 닉스 중심적인 문화이다.(이 얘기는 언제나 진실이지는 않다. 그리고 일부 원로 해커들은 이러한 얘기에 불편한 심기를 노정한다. 그러나 유닉스와 인터넷과의 공생(共生) 관계는 마이크로소프트 의 힘으로도 심대한 타격을 줄 수 없을 만큼 매우 강력한 것이 되었다.

유닉스를 양육하시오-내 자신은 리눅스를 좋아 하지만, 다른 방법도 있다. 유닉스를 공부하고 사용하고,셋팅해라. 유닉스를 통해서 인터넷과 대화하라. 코드를 읽어라. 코드를 수정하라. 여러분 은 마이크로소프트의 운영 체계가 꿈도 꿀 수 없는 것 이상의 더 말할 나위없는 프로그래밍 툴들 을 얻게 될 것이다(C를 포함하여, Lisp과 Python 및 Perl도). 그리고 즐거움을 누릴 것이며, 거장 해 커가 되어 회고하면서 끝없이 배워야 한다는 사실을 깨닫는 것보다도 더욱 풍부한 지식에 흠뻑 빠지게 될 것이다.

유닉스 학습에 대해서 좀더 많은 것을 알려면, The Loginataka 를 참조하시오.

리눅스를 연습하여 익숙해지려면, 리눅스를 입수할 수 있는 곳 을 참조하시오.

BSD 유닉스 도움말 및 자원을 구하고자 한다면, http://www.bsd.org/를 참조하시오.

나는 “Unix와Internet기초” 라는 문장을 쓴적이있다.

(주: 나는 여러분이 이제 갓 시작한 초보(newbie)라면 단일 프로젝트로써 리눅스나 BSD를 설 치하기를 권하지 않는다. 리눅스의 경우라면 각 지역별 리눅스 사용자 모임에 도움을 청하거나, LISC(Linux Internet Support Co-Operative)와 접촉하라. LISC는 여러분이 도움을 얻을 수 있는 IRC채널을 운영하고 있다.)

4.3 월드 와이드 웹(WWW)의 사용법과 HTML 작성법을 배워라.

해커 문화가 건설한 대부분의 것들은 정말로 훌륭한 업적으로 가득 차 있다. 非해커들이 삶의 방 식에 어떤 현시적인 충격을 주지 않고 공장, 사무실, 그리고 대학이 돌아갈 수 있게 하였다. 웹은 유일한 예외이다. 정치인들마저도 인정했던 거대한 해커 장난감이 이제는 세상을 변화시키고 있 다. 이러한 이유 하나만으로도 여러분은 웹이 어떻게 작동하는지를 배워야 한다.

이 말은 단지 누구나 할 수 있는 브라우저 사용법을 익히는 것뿐만 아니라, HTML를 작성하는 법 도 배우라는 말이다. 만약 여러분이 프로그램하는 법을 모른다면, HTML 작성은 프로그램 작성에 도움이는 되는 정신적인 기질(habits)을 여러분에게 가르쳐 줄 것이다. 자! 우리 모두 홈페이지를 구축합시다.(인터넷에는 좋은자료들이많다 이것이 그중에하나)

그러나 홈페이지를 구축하는 것이 여러분을 해커로 만들어 줄 수 있는 충분 조건은 아니다. 웹에 는 홈페이지로 가득 차 있다. 이들 대부분은 핵심과 중심 과제가 없는 진흙창과 같은 것이다. 그 것도 여러분의 마음을 빼앗을 수 있는 매우 호화로운 진창들이다. 그렇다고 파리똥이 똥이 아니 라고 말할 수 있겠는가.(좀더 자세한 것을 알고 싶으면 The HTML Hell Page 를 참조하라)

여러분의 웹페이지가 가치있는 것이 되려면 알찬 내용으로 가득 차야 한다. 재미있을 뿐더러 다 른 사람(해커)들에게도 유용한 것이 되야 한다.

4.4 만약 아직 실용성 영어를 모른다면, 배워라.

미국사람으로서 또 영어를 모국어로 하는사람으로서 예전에 나는 이말을 꺼내기 싫었다. 문화상의 제국주의가 될 수 있기때문이다. 하지만 상당수의 기타언어를 모국어로하는 분들이 이 문제를 제기할 것을 요구해왔다. 그것은 바로 영어는 인터넷에서의 공용언어라는것이다. 여러분들이 순리롭게 해커사회에서 활동하려면 반드시 알아두어야한다.

이것은 확실한 것이다. 대개 1991년당시 나는 해커사회에서 해커들이 기술을 서로주고받을때 영어를 사용한다는것을 알았다. 심지어는 그들이 사용하는 언어가 갖고 영어는 그냥 제2언어인 경우에도 말이다. 내가 알아본바에 의하면 현재 영어는 다른언어들보다 더욱 많은 기술적용어를 보유하고있다. 그러기에 작업하기에는 매우좋은 도구이다. 같은원인으로 하여 영어로된 기술문서번역은 보통 이상적이지못하다. (만약 번역이 되었다면)

핀란드인인 Linus Torvalds. 영어로 자신의 코드에 주석을 달고(분명한것은 이행동이 그가한 우연한행동은 아닐것이다) 유창한 영어가 그가 전세계범위내의 리눅스개발자들을 관리하는 중요한 요소였다. 이것은 본받아야할 예제이다.

5 해커 문화에서의 신분

화폐 경제가 아니었던 대부분의 문화처럼, 해커왕국은 명성으로 영위되고 있다. 여러분이 흥미로 운 문제를 풀려고 한다. 그런데 그 문제들이 얼마나 재미있는 것인지, 여러분의 해법이 진정 훌륭 한 것인지는 오로지 여러분의 동료 또는 선배들의 판단 여하에 달려 있다. 따라서 여러분이 해커 게임을 할 때, 우선 점수를 유지하는 법을 배워야 한다. 이것으로 다른 해커들이 여러분의 기술이 어떠한지를 판단한다(이것이 다른 해커들이 계속해서 여러분을 해커라고 부를 때까지는 여러분이 해커가 될 수 없는 이유이다). 이러한 사실로 미루어 볼 때 해킹이 고독한 작업이라는 이미지는 정확히 사실을 반영한 것이라고는 볼 수 없다. 또한 자아(自我)와 외부의 확인이 각자의 동기부여 에 포함되어 있다는 사실을 인정하지 않는 해커 문화적 금기(지금은 점점 퇴색되어 가고 있지만, 여전히 잠재적인 영향을 끼치고 있다)라는 것도 현실의 반영은 아니다. 특히, 인류학자들은 해커왕국을 “선물 문화”라고 부르고 있다. 여러분은 해커왕국에서 신분과 명 성을 얻는다. 이는 타인을 지배함으로써가 아니라, 또한 아름다워지거나 타인이 원하는 것을 소유

함으로써 이루어지는 것은 아니다. 오히려 여러분이 갖고 있는 것을 나누어줌으로써 얻어지는 신 분과 명성인 것이다. 특히, 여러분의 시간, 창의력, 체득된 기술의 결과물을 나누어줌으로써 말이 다.

해커들에게서 존경받는 일을 할 수 있는 것 중 가장 기본이 되는 5가지를 제시한다.

5.1 소스 공개(open-source) 소프트웨어를 작성하라.

우선(가장 핵심적이고 전통적인 것), 다른 해커들이 생각하는 프로그램이 재미있고 유용하도록 작 성한다. 그리고 그 프로그램 소스를 전(全)해커 문화가 사용할 수 있도록 나누어 준다.

우리는 이것을 “공개(무료, free) 소프트웨어”라고 부른다. 그러나 “무료(free)”라는 말이 정확히 어 떤 의미를 내포하는지를 알지 모르는 대다수의 사람들에게는 혼동만 가중시키는 꼴이 되었다. 우 리 대다수의 해커들은 이 용어를 “open-source” 소프트웨어라고 부르기를 좋아한다.

해커왕국에서 가장 존경받는 인물(demigod)들은 포괄적인 필요에 걸맞는 대형·성능이 우수한 프로 그램을 작성하여, 모든 사람들이 이용할 수 있도록 이 프로그램을 나누어 주는 사람이다.

5.2 소스 공개 소프트웨어의 분석(test)과 디버그(debug)를 할 수 있도록 도와라.

또한 소스 공개 소프트웨어를 유지하고 디버그하는 것에 봉사한다. 우리가 사는 이 불완전한 세 상에서 어쩔 수없이 우리는 디버깅하느라고 우리들의 대부분의 소프트웨어 개발시간을 허비한다. 소스 공개 저작자들이 여러분에게 훌륭한 베타 테스터(beta-tester, 소프트웨어 증상을 명확하게 기 술하고, 문제점들을 적확히 집어내고, 졸속적으로 내놓은 판이기 때문에 어느 정도 버그들이 있을 수 있다는 것을 수용하고, 그리고 아주 간단한 진단 루틴들을 기꺼이 적용할 수 있는 사람들)는 루비라는 보석에 그 가치를 덧붙이는 사람이라고 말하는 이유가 여기에 있다. 심지어 이들 테스 터들은 지지부진하고 소모적인 악몽과 같은 디버깅 국면과 그저 유익한 뉘앙스가 있는 디버깅 국 면과의 차이점을 변별할 수 있는 사람들이다.

만약 여러분이 초보자(newbie)라면 여러분이 흥미를 갖고 훌륭한 베타 테스터가 될 수 있는 현재 개발중인 프로그램을 찾아보기 바란다. 이는 프로그램을 테스트하는 것을 돕는 것에서 디버깅할 수 있도록 돕고, 이를 수정할 수 있도록 돕는 자연스럽고 진보적인 절차이다. 이를 통해서 많은 것을 배울 것이며, 후에 여러분을 돕게 될 사람들과 좋은 인연을 만드는 것이기도 하다.

5.3 유용한 정보를 출간하라.

또 다른 선행(善行)으로는 유용하고 재미있는 정보를 수집하고 여과하여, 웹페이지나 FAQs(Frequently Asked Questions lists)와 같은 문건으로 만들어, 누구든 이용할 수 있게 만드는 일이 다.

주요 기술적인 FAQs를 유지·개선하는 사람들은 소스 공개 저작자들만큼이나 존경을 받는다.

5.4 하부구조가 견실히 작동할 수 있도록 도와라.

해커 문화(그리고 인터넷의 공학적 개발)는 자원자들에 의해 운영된다. 메일링 리스트 관리, 뉴스 그룹의 조정작업, 대형 소프트웨어 아카이브 사이트(archive site)를 유지하고, RFC와 기술 표준을 개발하는 것같이 반드시 유지·지속되어야 하는 것이 있지만 그리 매력적인 일은 아니다. 이러한 일을 제대로 하는 사람들은 대단한 존경을 받는다. 왜냐하면 이러한 작업은 엄청나게 많 은 시간이 소요되며, 코드를 갖고 노는 것처럼 그다지 흥미로운 것이 아니기 때문이다. 철저한 헌 신적 봉사가 아니라면 이룰 수 없는 일이다.

5.5 해커 문화 그 자체에 봉사하라.

마지막으로, 여러분은 해커 문화 자체에 봉사하고, 그 사상을 전파할 수 있다(예로, 해커가 되는 법에 관한 정확한 입문서를 작성하는 것 따위). 이러한 위치에 도달하기까지는 앞에서 기술한 것 들을 제대로 이해하고 실천하고 나서야 비로소 이루어질 수 있는 것이다.

엄밀히 말해서 해커 문화는 지도자들은 없다. 그러나 그 문화의 영웅들, 부족 원로들, 그리고 역 사가와 대표자들은 있다. 여러분이 이러한 최전선의 진지를 지켜왔을 때야 비로소 해커 문화의 일원으로 성장할 것이다. 경고 : 해커들은 그들의 부족 원로들 중에서 떠들썩한 자들을 믿지 않는 다. 일종의 명성을 위한 가시적인 접근은 위험한 것이다. 오히려 이러한 속 빈 강정들과 싸워라. 여러분은 여러분 자신들만의 지위를 획득해야 한다. 그래야 명예를 얻을 수 있다. 그리고 난 다음 에 여러분의 신분에 고나해서 겸손과 자비로운 마음을 항시 마음에 새겨 실천해야 한다.

6 해커(hacker)와 숙맥(nerd)간의 관계

대중적인 신화와는 달리, 여러분은 해커가 되려고 숙맥이 될 필요는 없다. 그러나 도움은 된다. 사실상 많은 해커들이 숙맥들이기는 하다. 사회적으로 의지할 것이 없다는 생각은 해킹처럼 정령 중요한 일들에 집중할 수 있는 여건을 마련해주는 셈은 된다. 🙂

이러한 연유로, 많은 해커들은 자긍(自矜)의 상징으로써 ‘숙맥(nerd, 샌님, 꾼)’이라는 딱지가 붙는 다. 심지어는 좀더 험한 용어인 ‘괴짜(奇人, geek)’라는 말도 사용한다. 이는 정상적인 사회적 기대 감에서 자신들은 독립된 존재임을 선언하는 방식이다. 좀더 확장된 논의를 원하면 The Geek Page 를 방문하시오.

여러분이 해킹에 익숙해질 만큼 충분히 어떻게 해서든 전념할 수 있고, 여전히 삶을 영위하고 있 다면, 다행이다. 지금은 내가 1970년대의 열쭝이(newbies) 시절을 보냈을 때보다는 훨씬 수월하게 보낼 수 있다. 다시 말해 주류 문화가 이전보다는 기술 숙맥(techno-nerd)들에게 훨씬 호의를 보이 고 있기 때문이다. 해커들은 종종 괜찮은 연인이자 배우자임을 깨닫는 사람이 점점 많아지고 있다.

생활을 영위할 수 없다는 이유로 해킹에 끌린다면, 그것도 괜찮다. 적어도 전념에 곤란을 겪지 않 을 테니까 말이다. 아마도 여러분은 언젠가는 분명 해커가 될 것이다.

7 해커 품격 갖추기

해커가 되기 위해서는, 여러분은 해커의 사고 방식과 태도를 체득해야 한다. 여러분이 컴퓨터로 도움을 줄 수 없을 때, 몇 가지 할 수 있는 일이 있다. 그렇다고 이것도 해킹의 대체물일 수는 없 다. 그 어떤 것도 해킹과 대체할 수 있는 것은 없다. 그러나 많은 해커들은 다음과 같은 노력을 기울이고 있으며, 일부 기본적인 처세술과 해킹의 본질은 그 맥을 같이하고 있다고 느낀다.

과학 소설을 읽어라. 과학 소설 집회에 참석하라(해커와 원형 해커들을 만날 수 있는 좋은 방 법이다).

선(禪)을 익히거나 병법(兵法)을 익혀라.(정신 수양은 무엇보다도 중요하다. 즉, 노자의 도덕경 (道德經), 장자(莊子) 등.)1)

음악을 통해 분석적 청각을 개발하라. 특별한 음악을 감상하는 법을 배워라. 또한 악기 연주법 과 창법(唱法)을 배워라.

이음동의(異音同義)의 익살과 어휘적 유희의 변별력을 개발하라.

여러분의 모국어로 좋은 글을 쓰는 법을 배워라.(거의 대다수의 해커들은 훌륭한 작가가 될 소 질이 있다.)

상기 언급한 것을 이미 행하고 있다면, 여러분은 타고난 해커적 재목감이라 할 수 있다. 언급한 내용들은 단독적으로 적용되는 것은 아니다. 서로 얽기 설기 얽혀져 있다. 우리의 두뇌 좌/우반구 를 모두 개발해야 한다(해커들은 논리적인 추론과 문제의 명확한 논리 외의 단계로까지 끌어 올 릴 수 있는 능력이 필요하다).

마지막으로 해서는 ‘안될 것’을 적어둔다.

어리석고 뽐내는 듯한 ID나 스크린명을 사용하지 마라.

유즈넷상에서 flame wars에 끼어 들지 마라(그 어디서든지).

여러분 자신을 ‘cyberpunk’라고 부르지 말 것이며, 쓸데없이 시간을 낭비하는 사람들에게 여러 분의 시간을 할애하지 마라.

오자 투성이에 문법에 어긋나는 글을 게시하거나 전자우편으로 보내지 말라.

이러한 짓을 하게 된다면, 명성은 하루아침에 가을에 떨어지는 낙엽과 같은 꼴이 된다. 해커들은 상당히 좋은 기억력의 소유자들이다. 어떤 것을 받아들이면, 최소한 수년동안 잊지 않는다. (그리고 한국철학과 사상을 익히는 것이 우리들에게는 좀더 직접적이고, 시사하는 바가 크다.)

인터넷아이디가 갖는 문제에 대해서 다소 부연 설명하고자 한다. 직함의 裏面에 자신의 정 체성을 숨기는 행위는 청소년이나 크래커, warez d00dz, 그리고 여타 저열한 생명체의 어리석은 행 동 특성이다. 해커들은 이러한 짓을 하지 않는다. 해커들은 자신이 한 일에 자긍심을 갖으며 그러 한 일들이 자신의 실명과 연관되기를 원하다. 그러니 아이디가 있다면, 버려라. 해커 문화에서 직함 이란 패자의 표식일 뿐이다.

8 기타 자원

피터 시바흐(Peter Seebach)는 해커와 함께 일하는 방법을 모르는 관리자들을 위해서 훌륭한 Hacker FAQ 를 작성해 두고 있다. 피터의 사이트가 반응이 없다면, Exite 검색엔진을 이용하면 그 사본을 찾아볼 수 있을 것이다.

Loginataka에서는 유닉스 해커들의 적절한 훈련법과 자세에 관해 알려준다.

나는 해커왕국의 소사(小史)(A Brief History Of Hackerdom, http://www.tuxedo.org/~esr/writings/hacker-history/hacker-history.html)에 관한 글을 썼다.

나는 리눅스와 소스 공개 문화가 어떠한 것인지에 관해서 묘사한 글인 성당과시장 (우리나라의 경우는 http://kldp.org나 각 PC 통신사의 관련동회에서 동일 문건에 대한 번역본을 찾아 볼 수 있다.) 라는 글을 썼고, 그 후 상기 글의 속편으로 認智圈의 택지화 에서 좀 더 구체적으로 개진했다.

나와 Rick Moen이 함께 “질문의지혜”라는 글을 썼다. 당신이 효율적으로 도움을 얻을수있을것이다.

만약 당신이 PC, UNIX와 INTERNET의 기본개념과 동작원리를 알고싶다면 The Unix and Internet Fundamentals HOWTO 를 참고하라.

만약 당신이 프로그램이나 기타팩스를 배포하려고한다면 “프로그램배포조례”를 따르도록 노력하라.

9 빈번한 질문들(FAQ)

질문 : 나에게 해킹하는 법을 가르쳐 줄 수 있소?

이 웹페이지가 개설되고 난 후에 나는 “해킹에 관해 모든 것을 가르쳐 달라”라는 요청을 받아왔 다. 불행히도, 나는 이러한 일에 투입할 여력이 없다. 나는 내 해킹 프로젝트를 수행하는데 내 능 력과 시간에 거의 110%를 쏟아 붓고 있다.

내 처지가 이러하다. 그러나 해킹이란 본질적으로 독학으로 얻어지는 자세이자 기술인 것이다. 만 약 진정한 해커들이 당신을 돕기를 원할 때, 여러분이 그들이 알고 있는 모든 것을 어린 아이 음 식 먹여주듯 일일이 떠 먹여 준다면, 그들은 당신을 존경하지 않을 것이다. 존경받지 못하는 해커 가 무슨 의미가 있는가!

작은 것부터 시작하라. 스스로 학습할 수 있는 능력이 있음을 보여라. 그리고 나서 해커들에게 의 문나는 점을 질문하라.

질문 : 그러면 어떤 식으로 시작할 수 있는가?

시작하기 가장 좋은 방법은 아마도 리눅스 사용자 그룹 모임(LUG)에 참석하는 길일 것이다. 그런 그룹은 LDP의 리눅스 일반 정보 페이지 에서 찾을 수 있다. 아마도 이곳이 우선적으로 접근할 수 있는 곳 중 하나이기도 하다. 주로 대학과 연관되어 있다. LUG 구성원들에게 질문을 하면 아마도 리눅스를 언급할 것이다. 그리고 반드시 이들은 리눅스를 설치 및 간단한 운영법에 관해서 도움을 줄 것이다.

질문 : 당신은 언제 시작했소? 배우기에는 내가 너무 늦은 나이는 아닌지?

시작하고자 하는 동기를 부여 받은 나이가 최적의 나이다. 보통은 15세에서 20세 사이에 관심을 갖지만 예외 없는 법칙이란 없다.

질문 : 해킹하는 법을 배우려면 얼마나 걸리나?

이는 배우고자 하는 사람이 얼마나 재능이 있으며, 얼마나 열정적으로 매달리는지에 따라 다르다. 대부분의 사람들은 18개월에서 24개월 정도면 남부럽지 않은 기술를 획득할 수 있다. 물론 이 일 에 전적으로 집중해야 한다는 전제 하에서 이다. 이것으로 모든 해킹 기술을 습득했다라고 여기 면 큰 오산이다. 당신이 진정한 해커라면 끊임없이 학습하고 그 기교를 완벽하게 하는데 나머지 인생을 투자해야 할 것이다.

질문 : 비쥬얼 베이직(Visual Basic)과 델파이(Delphi)로 시작하면 괜찮겠소?

오! 천만에 말씀. 이 언어들은 이식성이 없다. 이들 언어들은 오픈 소스를 구현할 수 없기 때문에 판매자들이 지원하는 플랫폼에 갇히게 된다. 일종의 독점적 상황을 받아들인다는 것은 해커로서 의 길이 아니다.

특히 비주얼 베이직은 끔찍하다. 독식적인 마이크로소프트 언어라는 사실만으로도 결격사유가 된 다. 그리고 여타 베이직 프로그램도 졸렬한 설계의 언어이기 때문에 나쁜 프로그래밍 습관을 배 태시킨다.

질문 : 어떤 시스템을 크랙(crack)하려는데 도움 좀 주겠소? 아니면 크랙하는 법좀 가르쳐 주시오?

싫소. 이 FAQ를 읽은 후에도 그런 질문을 하는 자라면, 너무 어리석어 비록 내가 시간이 많아 개 인 교습을 한다 해도 불가능하다. 이러한 유형의 요구를 전자우편으로 받는다면 나는 무시해 버 리거나, 극도의 무례함으로 회신할 것이다.

질문 : 어떻게하면 다른사람의 아이디와 패스워드를 얻어낼수있는가?

이건 크래커가하는짓이야! 꺼져버려~! 바보.

질문 : 어떻게하면 다른사람의 E-MAIL을 해킹할수있는가?

이건 크래커가하는짓이야. 내앞에서 꺼져버려, 더러운자식.

질문 : 어떻게하면 IRC에서 OP권한을 도둑질할수있을까요?

이건 크래커가하는짓이야. 뒤져버려~! 구제불능한 자식~!

질문 : 계속 크랙당하는데, 이들을 강력하게 되받아 칠 수 있도록 도와줄 수 없겠소?

이것도 싫소. 지금까지 이런 질문은 수도 없이 받았다. 그런데 대개 윈도우를 운영하는 사람들이 하는 얘기다. 크래커들의 공격에 윈도우 시스템을 효율적으로 안전하게 운용한다는 것은 불가능 하다. 그 코드와 아키텍처는 너무 단순해 너무 많은 결함을 갖고 있다. 이는 체로써 배에 괸 물을 퍼내는 꼴이다. 신뢰할 수 있는 유일한 방어책은 운영체계를 리눅스로 전환하거나 진정한 보안을 담지할 수 있는 다른 운영체제를 이용하는 길이다.

질문 : 저의 Windows프로그램이 문제생겼어요. 도와주시겠어요?

물론이죠, DOS모드에 들어가신다음 “format c:” 라고 쳐보세요, 모든문제가 몇분사이에 해결됩니다.

질문 : 어디가면 대화를 나눌 수 있는 진정한 해커를 만날 수 있을까요?

여러분 지역의 유닉스나 리눅스 사용자 그룹을 찾아보고, 그들의 회합에 참여하는 것이 가장 좋 은 방법이다.[메타랩(Metalab, 이전의 sunsite) 소재의 LDP 사이트에서 유용한 사용자 그룹 목록을 찾을 수 있을 것이다].

“IRC(Internet Relay Chat)가 아닌 것만은 확실하다. 여기는 눈을 씻고 봐도 flamer들과 크래커들이 들끓는 곳이다”라고 말한 적이 있다. 그러나 상황은 변했다는 것을 알고 있다. 분명 진정한 해커 공동체(GIMP나 Perl 등에 지속적으로 어떤 의미를 부여하는)에서는 IRC 채널을 갖고 있다.

질문 : 해킹 주제와 관련해 유용한 서적을 추천해 줄 수 있는가?

나는 유용한 리눅스 관련 문건 하우투 목록 Linux Reading List HOWTO 를 운영하고 있다. 그리고 Loginataka도 흥미를 갖을 만하다.

python에관한 자료는 파이션싸이트의 초보입문자료를 참고하시라.

질문 : 해커가되려면 수학을 잘해야하는가?

필요없다, 해커는 수학을사용할기회가 매우적다. 하지만 꼭 논리적으로 사고하고 정밀적으로 추리하는 법을 알아야한다.

질문 : 가장 먼저 익혀야할 언어는 무엇인가?

HTML. 이 언어를 모른다면은 말이다. 겉만 번지르 하고 과장으로 가득한 불량 HTML 서적들이 산재해 있다. 서글프게도 HTML에 대한 양서는 드물다. 내가 좋아하는 서적 중 하나는 HTML : The Definitive Guide(O’reilly 사 간)이다.

그러나 HTML은 완벽한 프로그래밍 언어는 아니다. 프로그래밍 할 만반의 준비가 되어 있다면, Python을 먼저 시작할 것을 권한다. 그러나 많은 사람들은 Perl를 추천할 것이다. Perl은 Python보다 대중적인 인기를 끌고 있다. 개인적 소견이긴 하지만 Python보다는 배우기에 다소 어렵고, 그리 잘 설계된 것은 아니다. 웹에는 Python을 이용해 프로그래밍하려는 초보자들을 위한 사이트가 있다.

C언어는 중요하다. 그러나 Perl과 Python보다는 익히기가 좀더 어렵다. 굳이 C로 먼저 시작하려고 는 하지 말라.

윈도우 사용자라면 Visual Basic에 안주하지 마라. 이는 잘못된 프로그래밍 습관을 배태시킨다. 윈 도우 운영체계를 떠나선 생존할 수 없는 것이다. 피하라.

질문 : 어떤 하드웨어가 필요한가?

개인용 컴퓨터는 다소 성능이 떨어지고 충분한 메모리를 탑재할 수 없기 때문에 해커들의 학습 과정에서는 어떤 인위적 한계를 갖고 있다는 생각이 일반적이었다. 그러나 이는 몇 년 전에나 해 당되는 얘기이다. 486DX50이상의 머신은 X 개발 작업과 인터넷 통신, 그리고 을 하기에 충분할 정도로 강력하다. 그리고 요즘은 구입할 수 있는 가장 적은 용량의 디스크만으로도 대부분의 작 업을 하기에 충분할 정도로 크다.

학습을 하기 위한 머신을 선택할 때 중요한 기준은 그 하드웨어가 리눅스(또는 BSD 호환, 반드시 그러한 기준에 의해 선택해야 한다)를 설치하는데 적합한 것인가 이다. 이는 요즘 나오는 거의 대 부분의 머신에 적용된다. 유일하게 까다로운 부분은 모뎀과 프린터이다. 어떤 모뎀과 프린터는 리 눅스와는 궁합을 맞출 수 없는 윈도우에서만 작동하는 하드웨어이다. 하드웨어 호환성에 대한 FAQ의 최근 버전은 아래 기술한 사이트에서 확인하기 바란다.

질문 : 마이크로소프트를 미워하거나 비난할 필요가 있는가?

그럴 필요는 없다. 마이크로소프트가 혐오스럽지 않다는 얘기는 아니다. 해커 문화는 마이크로소 프트가 있기 오래 전부터 있어왔다. 마이크로소프트가 지금은 승승장구하고 있다 할지라도, 해커 문화는 여전히 존재하고 그 저류를 흐르고 있다. 마이크로소프트를 미워하는데 허비할 에너지가 있다면 자신의 기교를 사랑하는데 더 많은 시간을 쏟아라. 멋진 코드를 작성하라. 그러면 그대의 업보를 훼손하지 않고도 마이크로소프트를 충분히 한 대 매길 수 있을 것이다.

질문 : 소스 공개 소프트웨어를 작성하여 나누어 준다면, 프로그래머들은 어떻게 생활을 꾸려나갈 수 있는가?

지금까지는 그런 것 같지 않다. 소스 공개 소프트웨어 산업은 프로그래머들을 내몰기보다는 일 (job)을 창출하는 것 같다. 작성된 프로그램을 갖고 있다는 것은 전혀 작성하지 않았을 때보다는 순경제적 이득이라고 한다면, 프로그래머들은 그 프로그램이 완성된 후에 그것이 무료가 되었든 그렇지 않던 간에 보상을 받게 될 것이다. 그리고 아무리 “무료”로 소프트웨어를 작성한다 하더 라도, 언제나 새롭고 주문적인 응용프로그램에 대한 좀더 많은 수요가 창출된다고 볼 수 있다. 나 는 오픈소스 페이지에 본인의 생각을 구체적으로 개진했다.

질문 : 어떻게 시작할 수 있는가? 어디서 공개 유닉스를 구할 수 있는가?

어디서든 구할 수 있다. 해커가 되기 위해서 여러분은 자신을 교육할 수 있는 동기, 창의력과 능 력이 필요하다.

자, 그럼 시작해 볼까요…

여기는 공부에 도움이되는 한국 웹싸이트이다 :

한국 파이썬 사용자 모임 – http://www.python.or.kr/
리눅스 한글문서 프로젝트 – http://kldp.org/
자바누리 – http://www.javanuri.com
전국 리눅스유저그룹 – http://www.lug.or.kr/

http://wiki.kldp.org/wiki.php/Hacker-HOWTO

 Posted by at 11:41 AM

Using Virtual Smart Cards with Windows 8

 IT, 정보보호  Comments Off on Using Virtual Smart Cards with Windows 8
Sep 032013
 

Using Virtual Smart Cards with Windows 8

by  [Published on 28 Nov. 2012 / Last Updated on 28 Nov. 2012]

In this article, we’ll look at how virtual smart cards are created and used in Windows 8.

Introduction

We all know that password protection alone is a poor way to secure access to the computers on our networks. Two factor authentication provides more security, and smart card technology is one of the most used methods of deploying two factor authentication, because it’s considered by many to be much less invasive then biometrics such as fingerprint or retina scanning.

However, smart cards have a couple of big drawbacks. One is the cost of implementation; in addition to the cards themselves, you have to purchase smart card reader devices for the systems with which you want to use them. The other problem is that users lose them or leave them at home and are then unable to access their systems.

Windows 8 brings us a number of new capabilities in regard to security, and one of the most interesting new features is support for virtual smart cards. That means that, for computers equipped with a Trusted Platform Module (TPM) chip that meets specification version 1.2, organizations can now get the benefits of smart card logon without making an investment in the hardware and without the possibility of users being without their cards when they need them. In this article, we’ll look at how virtual smart cards are created and used in Windows 8.

What’s a virtual smart card?

Traditional smart cards are physical objects; they fit in the “something you have” category of authentication means, and are used in conjunction with “something you know” (a password or a PIN) to provide two-factor authentication. Virtual Smart Cards (VSC) creates a software construct that emulates and is represented to the operating system as a smart card, much like a virtual machine emulates a separate computer and OS instance. However, there is a hardware element involved: the TPM. So you still have two factor authentication (TPM plus PIN).

Most new business-grade machines have TPM chips; many consumer-grade computers, especially those a few years old, do not. If the TPM is present, it must be turned on in the system BIOS. On a Windows 7/8 machine, you can find out whether you have a TPM by running tpm.msc. This opens the TPM management console where you’ll see information about your TPM or, if you don’t have one (or if it’s turned off in the BIOS), you’ll see a message that says “Trusted Platform Module (TPM) cannot be found on this computer.”

Characteristics of VSCs

Virtual smart cards and virtual smart card readers appear to Windows 8 and to the applications the same as physical smart cards, and use the same application-level APIs, but you can tell them apart because the icon is different. The icon that represents the VSC is shown in Figure 1.


Figure 1

As far as the operating system and apps are concerned, they see the VSC as being always inserted in the virtual card reader. Thus you can’t set policy (as you can with physical smart cards) to automatically log the user off when the card is removed. To the user, logging on with a VSC is as easy as logging on with just a password; all users have to do is enter their PINs.

VSCs are secure because although the encrypted private keys are stored on the computer’s hard drive, those keys are encrypted on the TPM and are only used on the TPM. Thus if the machine becomes infected with malware, the VSC keys are safe. The decrypted keys are never loaded into the operating system’s memory or hard drive so they can’t be extracted from those locations by attackers. This is called isolated cryptography because other programs running on the computer cannot access the VSC encryption and decryption processes.

Unlike a virtual machine (VM), you can’t move a VSC to a different computer, because only the TPM that encrypted the keys are able to use them. That means users can’t use the same VSC in multiple machines, but it also means an attacker can’t, for example, remove the hard drive from the computer and compromise the VSC. This feature is callednon-exportability and it’s an important security characteristic of physical smart cards, where the information stored on a physical card cannot be extracted to be used somewhere else.

Note:
Although the VSC is specific to one TPM on one machine, administrators can issue a VSC for the same user to use on each machine that he/she needs to access. In addition, just as other users can insert their own smart cards in a reader so that multiple users can use the same machine, other users can be issued separate VSCs for the same machine. This would be appropriate in cases where Windows-To-Go allows different users to use the same physical machine by inserting their USB drives with their own instances of Windows. Up to six VSCs can be created on one computer.

Like physical smart cards, VSCs will lock out a user who enters an incorrect PIN a specified number of times. This is similar to the account lockout feature that can be configured through Windows Group Policy and is designed to thwart brute force attackers who are just trying one PIN after another in hopes of hitting upon the right one. In smart card terminology, this lockout feature is known as anti-hammering.

What are the drawbacks of VSCs in comparison to physical smart cards? The most obvious is that the thing that makes the VSC more convenient to the user is also its weakness – it can’t be removed from the device and taken with you. If you leave the computer, the smart card is still “inserted” so if an attacker gains access to the machine and happens to know the PIN, he’s in. Thus PIN security is very important.

How VSCs work

Smart cards (virtual or otherwise) are based on digital certificates, which means you need a Public Key Infrastructure (PKI). A Windows Server 2012 certification authority (CA) has two default certificate templates that can be used for issuing smart card certificates. The Smartcard Logon template is appropriate when the card’s use will be for logging on only. If you want users to be able to use the certificate for encrypting email, use the Smartcard User template.

You can create customized certificate templates. The Microsoft Base Smart Card Crypto Provider should be used as the CSP (Cryptographic service provider) for the certificates. You can set a certificate’s validity period and the minimum key size.

The certificate template will need to be created on the server before you can create VSCs. This is done with the Certificates Templates MMC snap-in. If you’re going to allow users to enroll their certificates, you’ll need to give “enroll” permissions to the “authenticated users” group. You’ll then need to go into the Certification Authority MMC on the CA, and select the newly created template as a new certificate template to issue.

Note:
For large scale creation of VSCs, there are VSC management software solutions.

Creating and Issuing VSCs

To create a VSC, use the Tpmvscmgr.exe command line utility shown in Figure 2, which must be run with local administrative privileges on a Windows 8 computer that’s a member of your domain.


Figure 2

The command syntax is shown in the figure. You can configure a PIN for the key, a Pin Unlock Key (PUK) and an admin key. The PUK is used to unlock the VSC so the user can reset the PIN if the PIN is forgotten. The admin key is a more secure way to unlock the card for PIN reset. Which you use depends on your smart card management solution. Note that the PIN must be a minimum of eight digits and you can also use alpha characters and special characters, making it more like a password than a PIN. The admin key is 48 hexadecimal digits.

In a domain, you can create a smart card on a remote computer, using the /machine subcommand. You must be running the utility under an account that is in the local administrators group on the remote computer.

When a card is created, the utility will display an “instance ID” for it. You’ll need to know this ID if you ever want to use the /destroy command to delete a VSC from the computer.

Enrollment

If you’ve worked with smart cards before, you know they must be enrolled before they can be used. This is where the user’s credentials are attached to the card. The process is a little different with VSCs because there is no enrollment station. They are enrolled on the local Windows 8 computer, using the Certificate Enrollment wizard in the Certificates Management console (accessed by running certmgr.msc). To start the wizard, do the following, as shown in Figure 3:

  1. In the left pane, right click the Personal node.
  2. Select All Tasks.
  3. Select Request New Certificates.


Figure 3

This starts the Certificate Enrollment Wizard and you can follow the prompts, selecting the template for TPM virtual smart cards and choosing the name that was given to the smart card when it was created. You’ll need to enter the PIN.

VSC use and maintenance

The VSC can now be used just like a physical smart card (except that it’s never removed from the device). Applications will treat it like a traditional smart card.

You’ll recall that during the creation of the VSC, you set a validity period. When it expires, credentials will need to be renewed. The user requests renewal and they can get a new key pair or reuse the same one. A VSC can hold up to 90 certificates with up to 30 private key pairs.

If Windows has to be reinstalled or if the VSC is compromised, the VSC will need to be reissued. This means going through the card creation process again, creating a new PIN and admin key. Also note that if the TPM on the computer should be re-initialized, you’ll have to recreate the VSC.

If the incorrect PIN is entered too many times (as in a brute force attack), the VSC may go into timed delay, where it is blocked and must be reset. In addition, the TPM itself may go into lockout mode, and will have to be reset using the TPM owner password. These are two different issues.

For more detailed information, including step by step instructions for using the tools described in this article, download the Understanding and Evaluating Virtual Smart Cards.docx document from the Microsoft Download Center.

Summary

Windows 8’s support for virtual smart cards provides companies with the ability to implement two factor authentication without the expense associated with traditional smart cards. To the user, the logon experience is basically the same as using traditional password authentication, but under the hood it’s more secure – and the user doesn’t have to worry about keeping up with a physical card.

 

 

http://www.windowsecurity.com/articles-tutorials/authentication_and_encryption/Using-Virtual-Smart-Cards-Windows-8.html

 Posted by at 8:46 PM

김상욱의 웹스타트(webstart) 강좌

 IT, 정보보호  Comments Off on 김상욱의 웹스타트(webstart) 강좌
Jun 152013
 

애플릿(Applet)의 단점을 극복한 웹스타트 강좌입니다.

애플릿은 웹 브라우저에서 돌아가는 작은 프로그램으로서 인터넷 열풍과 함께, 막강한 기능에 훌륭한 보안모델을 갖추고 있어 큰 인기를 끌었으며, 세계적으로 700만개 사이트에서 이용 중이며, 아직도 많은 국내 학원에서 애플리케이션 제작과 함께 애플릿 제작을 교육하고 있습니다. 애플릿은 분명 인터넷 시대에 Java라는 언어가 대중들에게 큰 인기를 끌게 한 주역임에 틀림없습니다. 각종 브라우저에서도 기본적으로 지원하고 있지요.
…..

http://50001.com/sub/mylect/mylect_05.htm

자바 vs. PHP

 IT  Comments Off on 자바 vs. PHP
May 292013
 

자바가 좋냐 PHP 가 좋냐?

2000 년대 초반 PHP 가 뜨기 시작하면서부터 있어왔던 이 질문은 무려 10년이 넘은 현재까지도 풀리지 않는 난제로 남아있는 듯하다.

여태까지 그 질문에 대한 명백한 해답이 없다는 것은 그만큼 양 진영의 장단이 뚜렷하다는 반증일테고, 트렌드가 급변하는 “웹” 이라는 분야에서 10년넘게 주류로 살아남았다는 것을 봤을때 “둘다 대단하다” 라고 결론내도 부족함이 없을것이다.

이 글의 목적은 php 와 자바간의 성능차이를 말하고 싶은건 아니고, 두 언어중에 하나를 선택해야만 하는 사업가나 개발자를 위한 글이다. 당연히 개인적인 의견이고, 일반화나 비약이 있을 수 있다. 참고로 필자의 개발경력은 php 5년, 자바 5년이니 참고하시면 좋을듯하다.
일단 결론

긴글 읽기 싫은 분들을 위해 결론부터 얘기해보면 아래와 같다.

1) 블로그/게시판/포럼 형태의 프로젝트 – php
2) 좀더 복잡한 기능의 프로젝트 – java
3) 개발을 업으로 삼고 싶다면 – 둘다

1) 블로그/게시판/포럼 형태의 프로젝트

블로그나 게시판등 오픈소스로 구현할수 있는 수준의 프로젝트라면 단연 php 다. 굳이 있는걸 다시 만들 필요는 없기 때문이다. 일례로 간단한 블로그를 구축하는데 드는 시간과 돈을 측정해보자.

php 로 블로그를 구축

개발용 APM 원클릭 설치 (5분)
넘쳐나는 오픈소스 블로그 중 택일해서 다운로드 (5분)
브라우저를 통한 간단한 설치 (5분)
저가 호스팅 구매 (월 천원)
소스 업로드 (5분)

자바로 블로그를 구축

개발용 mysql 및 웹서버 수동설치 (30분)
오픈소스 블로그 검색 (하루)
좋은게 없어서 직접 개발 (이틀)
저가 JVM 호스팅 검색 (하루)
좋은게 없어서 VPN 구입 (월 5천원)
리눅스, 웹서버, DB, 배포 script 등 세팅 (하루)
소스 배포

물론 웃자고 쓴 내용도 있지만 여러가지 면에서 php 가 훨씬 쉽고 간단한게 사실이다.

php 진영에는 쉽게 설치해서 사용할수 있는 오픈소스 CMS 들이 너무나도 풍부하다. 물론 자바진영에도 훌륭한 오픈소스들이 많지만, php 처럼 설치만 해주면 돌아가는 stand-alone 형태 보다는 개발중에 활용가능한 라이브러리나 프레임워크인 경우가 많다. 무료에 퀄리티 높은 CMS 는 거의 전무하다고 봐도 좋다.

실제로 자바로 서비스를 구축한 대부분의 회사들이 포럼이나 게시판에 한해선 php를 사용하는 일이 다반사일 정도다.

요새 CMS 들은 어지간한 커뮤니티 기능은 다 제공한다.

개발 환경구축, 실서버 환경구축 적인 면에서도 php 가 훨신 간단하다. 호스팅을 받아서 아무것도 하지않고 그냥 php 스크립트만 올리면 되는 경우가 대부분이다. 사이트 규모가 커져서 직접 서버를 구축해야된다면 또 다른얘기지만 , 규모가 작을때도 서버를 직접 구축해야하는 자바에 비하면 큰 장점이라고 볼수있다.

2) 좀더 복잡한 기능의 프로젝트

자바가 답이라고 생각하지만 php 로도 복잡한 기능을 충분히 구현할 수 있다. 단, 훌륭한 개발자가 있다는 전제하에다. 큰 규모의 홈페이지를 만들때는 php 보다 자바가 낫다라는 말을 쉽게 듣는데, 사실 이런 말을 하는 이유는 php 가 자바보다 떨어지는 언어라서가 아니다.

모든 개발물들은 복잡하고 규모가 커지게 되면 안정성, 보안, 효율성.. 특히 유지보수와 확장성(expandability, reusability) 등의 요소가 중요해진다. 자바로 개발된 웹프로젝트는 이런 요소들을 기본적으로 충족시킬 가능성이 크다.

우선, 자바 개발을 위해선 기본적으로 j2ee 스펙과 이를 구현한 한가지 이상의 framework 을 알아야 한다. 즉 초보자가 hello world 정도만 찍어보고 뚝딱! 웹페이지를 만들어 낼 수 없다는 것인데 이게 왜 중요하냐면, 어느정도 스펙과 framework 을 숙지한후에 만들어 내는 결과물은 일정수준의 코드 퀄리티를 보장할수 있기 때문이다. 또한 JSR 로 통칭되는 자바진영의 공통스펙과 유명 framework 들은 개발자들간의 용이한 협업을 가능하게 해준다. 이말은 결국, 협업의 효율이 좋고 사람이 나가서 새로 뽑아도 코드를 파악하고 이해하는데 시간이 적게 걸린다라는 이야기다.

이 부분에 대해서 제발 오해가 없었으면 하는것이, php 로도 충분히 고레벨의 프로젝트를 구현할 수 있으며 유명 framework 들이 존재한다는 사실이다. 다만 java 계열보다 무수히 많은 framework 들과 cms 들이 공존하고 있고, 두명의 PHP 개발자를 무작위로 뽑았을때 아마도 다른 플랫폼에서 개발해왔을 가능성이 농후할 것이라는 얘기다. 그리고 PHP 는 간단한 홈페이지를 만드는데 필요한 모든 기능을 자체 라이브러리에 가지고 있는데 이는 배우기 쉽고, 또 결과물을 만들기 쉽게 하지만 역설적으로 쉽기 때문에 전체적인 개발아키텍쳐에 대한 큰 고민없이 뚝딱 무언가를 만들기 쉬우며 실제로 이런 코드들이 빈번하게 발생한다. (후임자를 분노하게 만드는 일명 ‘발코딩’ 혹은 ‘똥’ 이라는 전문용어가 존재한다). 이러한 연유로 초급개발자 풀도 넓은 편이고 “php 로 개발된 무언가는 코드의 재활용성이 떨어지는 경우가 많다”라는 오해가 생긴 것이다.

다시 말하지만 이 모든것은 허접한 일반론일 뿐이니 실력파 php 개발자 분들이 분노하시는 일은 없길 바라고, 개인적으로 자바의 spring 이나 struts 와 같이 통일된 framework 이 없다는것이 더 큰 이유라고 생각한다.

3) 개발을 업으로 삼고 싶다

웹개발을 업으로 삼고 싶다면 자바와 php 를 모두 배울 것을 추천한다. 그리고 자바를 더 깊게 팔것을 추천한다.

자바를 알아야 하는 이유부터 보자. “일반적”으로 자바 개발자들의 수준은 꽤나 높은 편이며, 이는 많은 회사에서 인지하고 있다. 자바웹개발이 상대적으로 어렵고, 일정수준에 도달하지 않고서는 퍼포먼스를 내지 못하는 점도 있고, 계속해서 발전하는 프레임워크와 스펙을 알지 못하고는 현업에 남아있을수 없기 때문에 울며겨자먹기로 열공하는 경우가 많기 때문일지도 모른다. 대체자가 많은 php 개발자보다 ‘고급개발자’로 우대받을 수 있을 가능성이 높고 봉급도 더 높은 편이다. 얼마전 유명 스타트업이 사이트의 급성장과 이를 어떻게 대비했는지를 공유한 블로그가 있었는데, php 에서 자바로 옮긴 이유중 하나가, 새로 뽑은 우수인력들이 자바를 선호해서라는 글도 있었다. 아쉽게도 어떤 회산지 기억이 나지 않아 링크는 불가 (지어낸거 아님 ㅠ.ㅠ)

그러나 php 도 소홀하지 않는것이 좋다. 일단, php 는 구직의 문이 넓다. 중소규모의 회사라면 자바보다는 php 가 부담이 덜하기 때문에 (또 친숙도가 높기 때문에) 직업도 많고 프리랜스 기회도 많다. 또한 php 의 넓은 오픈소스풀 때문에 어쩔수 없이 php 를 건드려야 하는 경우도 많기도 하고.

PHP 보다는 자바가 공부할게 많다. framework 이나 라이브러리를 쓸때도 몇개를 다 써보고 비교해봐야하고, 트렌드가 어떻게 바뀌는지도 따라가기 더 힘들다 (더 자주 바뀌기 때문이다). 열공하자..

4) 부록

최근들어 자바진영에는 JVM 을 기반으로한 스크립트 언어들이 양산되고 있다. php 는 스크립트 언어라며 무시(?)하던 소수의 자바개발자들도 있는걸 생각하면 스크립트 언어들이 우후죽순 생기는 것이 의아하기도 하다. Groovy, JRuby 그리고 Scala 로 대표되는 이런 언어들은 php 와 같이 접근성이 뛰어나고 간단한 사이트들을 만들기에 적합하게 되어 있다. 또한 스크립트 언어이면서도 JVM 을 기반으로 하기 때문에 java 로 제작된 library 들을 사용할수 있다는 장점도 가지고 있다. 메인웹은 자바로 제작하고 관리툴을 스크립트 언어로 작성하는것도 하나의 큰 트렌드인듯 하니 관심을 가져볼 만 하다.

http://itwire.tistory.com/entry/%EB%B3%B8%EA%B2%A9-%EC%9E%90%EB%B0%94-PHP-%EB%B9%84%EA%B5%90%EA%B8%80

공인인증서는 액티브X가 아니다

 IT, 정보보호  Comments Off on 공인인증서는 액티브X가 아니다
May 282013
 

기존에 유지돼 온 공인인증제도와 액티브X는 별개의 문제로 봐야한다는 주장이 제기됐다. 정부 주도로 이뤄지고 있는 공인인증체제에 일부 보완이 필요한 것은 사실이지만 공인인증서를 액티브X와 같은 것으로 오해해서는 보안강화라는 본래 목표를 이룰 수 없다는 설명이다.

28일 정보보호전문가들은 이 두 가지에 대한 개념이 뒤섞이면서 최근 관련된 논의가 정확한 논점을 찾지 못하고 있다고 지적했다.

염흥열 순천향대 정보보호학과 교수는 “우리나라 공인인증체계는 국제전기통신연합(ITU)가 정하는 국제 표준을 따르고 있다”며 “보안이 취약한 액티브X의 경우 대체 기술이 충분히 나와 있는 상태로 2015년을 예정된 HTML5 국제표준이 제정되면 상황이 달라질 것”이라고 밝혔다.

▲ 공인인증 로그인 화면.

■공인인증체계, 국제표준서 높은 등급

국내 공인인증체계는 ITU-T의 실체인증보증표준(X.1254)에 따라 3등급의 보안수준을 갖추고 있다. 염 교수에 따르면 1, 2, 3, 4등급으로 분류된 이 체계에서 3등급은 ID와 비밀번호, 이중인증, 일회용 비밀번호(OTP)를 포함한 인증방식이다. 글로벌 기준으로 국내 공인인증체계 자체의 보안성이 낮은 것은 아니라는 설명이다. 등급이 올라갈수록 보안성이 높다.

■공인인증체계에 액티브X를 쓸 수밖에 없었던 이유

국내에서 공인인증체계에 액티브X를 쓸 수밖에 없었던 이유는 대체기술이 없었기 때문이다. 김승주 고려대 정보보호대학원 교수는 “공인인증서 체계를 쓰거나 쓰지 않는다고 해서 액티브X 문제가 사리지는 것은 아니다”라고 밝혔다.

김 교수는 금융권에서 액티브X를 쓸 수밖에 없었던 이유가 금융위원회가 제기하고 있는 두 가지 의무사항 때문이라고 설명했다.

금융권에서는 계좌이체할 때 전표에 사인을 하거나 도장을 찍는 것과 마찬가지로 인터넷 계좌이체 등을 위해 필요한 전자서명을 요구하고 있다. 또한 1990년대부터 유지해 온 SEED 암호 알고리즘 사용하도록 했다. 이는 소프트웨어적으로 추가기능을 설치하는 방법을 통해서만 구현할 수 있다. 국내 공인인증체계에 액티브X를 사용할 수밖에 없었던 이유가 여기에 있다. SEED는 국가정보원이 구현한 한국형 암호 알고리즘으로 이 역시 도입하기 위해서는 액티브X를 설치하는 수밖에 없었다.

공인인증체계는 전자서명을 요구하기 때문에 액티브X를 쓸 수밖에 없었으나 최근 들어 대체기술들이 개발되기 시작했다. 이에 따라 액티브X를 써야할 필요는 없어진 상황이다. 실제로 일부 금융권에서는 오픈뱅킹이라는 이름으로 HTML5 기반 공인인증체계를 지원하고 있다.

■공인인증체계-액티브X, 구분해야 해법 나와

물론 공인인증체계와 액티브X를 구분해서 본다고 해서 기존에 정부주도로 유지된 공인인증체계에 허점이 없는 것은 아니다. 정부 주도로 공인인증체계를 강제한다고 보안성이 높아진다고 보기는 힘들기 때문이다.

해외에서는 기본적인 보안 수준에 대한 가이드 라인을 정해놓은 뒤 보안체계에 대해서는 자율적으로 결정하고 이에 대해 책임지도록 규정하고 있다. 은행이나 기타 전자서명이 필요한 곳에서도 보안체계를 자율에 맡기돼 그에 따르는 책임은 담당하는 기관에 지게 하고 있다.

염 교수는 “공인인증체계 문제의 핵심은 국가가 인증체계에 얼마나 개입하는 것을 허락하는가의 문제”라고 밝혔다. 액티브X는 다른 기술로 대체하고, 정부가 강제하는 공인인증체계에 대해서는 추가적인 합의가 필요하다는 것이다. 이 두가지 이슈를 같은 것으로 볼 경우 문제는 해결되지 않고 논란만 가중된다는 지적이다.

http://media.daum.net/digital/newsview?newsid=20130528183105393

FTP와 방화벽의 상관관계

 IT  Comments Off on FTP와 방화벽의 상관관계
May 232013
 

FTP는 다른 서비스와는 달리 Active 모드와 Passive 모드 2개의 모드가 존재하며 또한 각각의 모드에서는 2개 또는 2개 이상의 포트가 작동합니다. 20번 또는 1024 이후의 포트는 DATA 전송용이며 21번은 접속 시 사용되는 포트입니다. 인터넷 사용자들이 가장 흔하게 접하는 웹 브라우저들은 일반적으로 Passive Mode 로 설정되어 있는데 반하여, 알FTP 나 WS-FTP, CuteFTP 같은 FTP 클라이언트 프로그램들은 일반적으로 Active Mode 가 기본값으로 설정되어 있다.

(1) FTP Active 모드의 이해
active

Active 모드에서의 작동 방식은 위의 그림에서와 같이 먼저
① 클라이언트에서 서버의 21번 포트로 접속 후 클라이언트가 사용할 두 번째 포트를 서버에 알려줍니다.
② 서버는 이에 대해 ack로 응답하고
③ 서버의 20번 포트는 클라이언트가 알려준 두 번째 포트로 접속을 시도합니다.
④ 마지막으로 클라이언트가 ack로 응답합니다. Active 모드의 문제점은 바로 3번째 단계 즉, 일반적인 TCP/IP의 특징인 ‘클라이언트가 서버에 접속을 시도하는 것’이 아니라 ‘서버가 클라이언에 접속을 시도한다’는 것입니다. 이 때문에 만약 클라이언트 PC등에 방화벽이 설치되어 있거나 FTP를 잘 이해하지 못하는 공유기 등을 사용하여 외부에서의 접속을 허용하지 않는다면 세 번째 프로세스가 작동하지 않게 되어 FTP 접속이 제대로 되지 않는 문제점이 있습니다. 이러한 경우 FTP 접속은 되지만 이후 데이터 목록을 받아오지 못하여 에러가 발생하게 됩니다.

즉, active 모드는 클라이언트에서 서버측 21번 포트로 접속시도 하고 데이터 포트는 서버에서 클라이언트로 접속 하여 데이터를 보내는 방식입니다.

(2) FTP Passive 모드의 이해

passive

서버가 클라이언트에 접속시도를 하는 비정상적인 active 모드와 관련된 문제를 해결하기 위한 대안으로 passive 모드가 디자인되었습니다.
Passive 모드에서는
① 먼저 클라이언트가 command 포트로 접속을 시도하면
② 서버에서는 서버가 사용할 두 번째 포트를 알려줍니다.
③ 클라이언트는 다른 포트를 열어 서버가 알려준 이 포트로 접속을 시도하고,
④ 서버는 ack로 응답합니다. Passive 모드에서는 두 번째 data포트로서 active 모드가 사용했던 20번을 사용하지 않고 대신 1024 이후의 임의의 비 특권 포트를 사용하게 됩니다. 따라서 passive 모드는 서버에서 클라이언트로 연결을 시도하는 active 모드의 문제점을 해결하기는 했지만, 서버의 비 특권포트(1024 ~ 65535)를 방화벽에서 모두 열어 두어야 한다는 또 다른 문제점을 낳았습니다.
그러나 wu-ftp나 proftpd등 대부분의 ftp 데몬에서는 클라이언트가 passive 모드로 접속 시 사용할 수 있는 포트를 제한설정 할 수 있는 기능을 지원하므로 이의 문제점을 미봉책이나마 어느 정도는 해결할 수 있습니다.

위와 같이 passive 모드는 클라이언트에서 서버쪽 21번 포트로 접속 시도 하고 데이터 포트도 클라이언트에서 서버의 20번 포트로 접속하여 데이터를 받아오는 방식입니다.