Saturday, November 17, 2012

인간게놈프로젝트(Human Genome project)와 생물정보학(Bioinformatics)

Bioinformatics가 언론의 통해 기사화 되고 널리 알려지기 시작한 계기는 Genome Project 의 막바지인 1990년대 후반이 되면서 부터 였다.  인간게놈프로젝트( HGP: Human Genome Project)라 알려진 이 프로젝트는 10년의 시간에 걸쳐 미국 주도의 다국적 연구 컨소시움에 의해 총 30억달러 우리돈 3조원 이상이 소모된 달탐사 프로젝트 이래 최대의 과학 프로젝트 였다.

하지만, 1990년대 후반 크레이그 벤터( J. Craig Venter )가 셀레라(Celera genomics)사를 설립 대규모 자동 게놈 해독기를 장착하고 shortgun sequencing이라는 초고속 게놈 해독법을  이용해 인간 게놈을 분석하면서 이 지루한 프로젝트는 흥미진진한 소설 같은 상황으로 전개가 된다.

셀레라의 분석 기술로는 정부 주도의 다국적 팀에 의해 10년 이상이 소요될 것으로 예측되는  프로젝트를 불과 2-3년 안에 완료 할 수 있었고, 미생물 게놈을 빠른 시간 안에 분석 해 발표하면서 이는 기정 사실화 되었다.  정부 주도 하의 다국적 팀에게 이는 엄청난 위협이었고, 위기감을 불러 일으켰다. ( 과학자의 입장에서 보자면 수년간 노력한 일이 수포로 돌아가는 것과 마찬가지인데, 과학 연구에서 2등은 큰 의미가 없기 때문. 이와 관련한 스토리는 벤터의 자서전 Life decoded에 자세히 기록되어 있는데, 정부 주도 팀의 관료적 행태들은 구역질이 날 정도의 장면들이 많다. )


Shortgun genome sequencing 

Shortgun sequencing 은 인간의 긴 30억개 염기 서열을 평균 500-1,000 개 염기 길이의 작은 단위로 잘라 읽은 후, 각각을 퍼즐 맞추기 식으로 이어 붙여 전체 30억개 염기 서열 부위를 완성하는 형태다.
Shortgun sequencing 방법 모식도


Shotgun sequencing 방법은 얼핏 매우 간단해 보이지만,  이 방법은 Bioinformatics 가 없이는 애초에 불가능한 서열 분석 방법이었다.

Shortgun sequencing을 통해 예를 들어 세개의 염기 서열 조각이 아래와 같이 주어진다고 하면 어떻게 이어 붙여야 할까?

AGTGT, GTAAC, ACTAG

아래와 같이 이어 붙이면 된다.
AGTGT
        GTAAC
                ACTAG

--------------------------
AGTGTAACTAG

아래와 같은 방식도 가능하다.
ACTAG
        AGTGT
                GTAAC
--------------------------
ACTAGTGTAAC


어떤 쪽이 옳은 것일까?  이런 서열 조각이 수천만개 있다면 어떨까? 어떻게 이 조각들을 제대로 꿰어 맞출 수 있을까?  이는 굉장히 정교한 수학적 모델을 필요로 했으며, 엄청난 컴퓨팅 파워를 필요로 하는 문제로 정통 생물학자들이 해결할 수 있는 문제가 아니었다.

이 문제를 푸는데 적용할 만한 수학적 이론은 Shortest common superstring problem (SSP), Eulerian graph problem 등이  있었고, Genome sequencing에 적용할 만한 이론들로  Michael Waterman 등의 기여로 대체로 정립,개발되어 왔지만, 실제로 이를 대량의 염기 서열 조각을 이어 붙이는 시스템에 적용하여 제작된 전례가 없었다.


생물정보학자 전쟁 :: Eugene  Myers  vs. Jim Kent 

Eugene Myers 를 필두로 하는 Bioinformatics 팀이 셀레라 측의 Shortgun sequencing을 위한 염기 서열 조각 맞추기 문제를 위한 시스템을 성공적으로 완성했다. Gene Myers라고 흔히 불리는 Eugene Myers 는 NCBI에서 1990년 지금까지 가장 광범위하고 성공적으로 사용되는 생물학 프로그램 BLAST 를 공동 개발한 Bioinformatics 초기 영웅 중 한명이었는데, 그가 Celera에 합류하여 라떼 커피를 친구삼아 밤낮 가리지 않고 일에 몰두한 덕에 비소로 셀레라의 Shortgun sequencing 기술이 완성될 수 있었다.

Shortgun sequencing 시스템을 하드웨어적, 소프트웨어적으로 완벽히 갖추고 인간 게놈 분석의 막바지에 다다르고 있었던 셀레라 사에 비해, 다국적팀( 인간게놈컨소시움)은 정부의 중재로 셀레라 사와 함께 인간 게놈 분석 초안을 발표하기로 약속한 몇달 전이 되기 까지 이 게놈 조각 퍼즐 맞추기( Sequence assembly ) 를 위한 시스템이 완성되지 않아 초조하게 발을 구르는 상황이었다.

10년의 노력, 3조원의 정부 연구비를 정당화 하기 위해서 이 시스템은 너무나 간절했던 것이었다. 이 때, UCSC 생물학과에서 박사과정 학생이던  Jim Kent (William  James Kent )가 David Haussler 와의 협력 하에 학교에서 새로 구매한 50대의 컴퓨터를 리눅스 클러스터로 사용하여 한달 만에 이 시스템을 완성한다.  Haussler와 협력이라고 하지만,  이 프로그램의 코드는 100% Kent 혼자서 한달 동안 밤낮없이 달려들어 완성한 것이었다.  Kent가 완성한 이 프로그램을 이용해 비로소 다국적팀도 셀레라사에 뒤지지 않게 성공적으로 전체 인간 게놈 지도를 완성할 수 있었다. ( 정확히는  Kent의 프로그램을 이용한 다국적 팀이 3일 빨리 완성)

Kent가 생물학과 박사과정 학생이었지만, 사실 그는 3D graphics 엔진을 개발하는 컴퓨터 프로그래머로 일하던 전문 프로그래머였는데, 생물학에 매력을 느껴 community college에서 생물학 과목을 수강한 후, UCSC 생물학과 박사과정에 늦깍이 진학을 한 특이한 이력을 가지고 있던 학생이었다.

이 때의 성과를 바탕으로 UCSC는 UCSC genome browser라는 웹 기반 게놈 검색/분석 시스템을 서비스하게 되는데, 현재 이는 BLAST와 마찬가지로 생물학자들에게 매우 일상적으로 이용되는 Bioinformatics 서비스로 자리 메김했고, 덩달아 UCSC 는 그저그런 UC 계열 대학에서  세계 최정상의 게놈 연구 기관 중 한 곳으로 자리 메김 하게 되었다.

( Kent의 사례는 왜 다양한 background를 가진 직원/학생들을 창의적 업무를 요하는 회사/대학에서 뽑아야 하는지를 극명하게 보여주는 또하나의 좋은 예가 된다 )


Bioinformatics on the go 

Bioinformatics 라는 분야는 Computational biology 라고 명명된 좀 더 수학적 이론에 치우친 분야를 토대로 게놈프로젝트 이전 1970년대 부터 이미 존재해 온 분야였지만, 인간게놈프로젝트를 기점으로 그 필요성과 역할이 크게 확대되었으며, 이에 대한 수요도 크게 늘어나게 되었다.

인간게놈프로젝트를 기점으로 비로소 독립된 Bioinformatics 교육 프로그램들이 미국의 대학들에 설립되기 시작했고( 연구 조직이 있었던 곳은 꾀나 있었지만, 독립적 학위 과정 프로그램을 가진 곳은 없었다), Michael Waterman이 1982년 부터 그 기틀을 잡아왔던 USC, 인간게놈프로젝트를 통해 유명해진 David Haussler 가 중심이 된 UCSC,  그외 Boston University 가 초기 독립된 Bioinformatics 학위 과정을 대학에 개설했는데, 이중 UCSC는 학부생 레벨( Bachelor degree)의 코스를 유일하게 설립해 운영을 시작했다.

국내에서는 2001년 숭실대학교에 최초의 학부 과정 학과가 개설(현재는 의생명공학부)되었고, 부산대학에 최초의 대학원 과정이 개설되었다. 2002년에는 서울대에 생물정보협동과정 대학원 과정이 개설되었고, 2003년에는 정문술 회장의 300억 기부로 KAIST에 Biosystems 이라는 이름으로 Bioinformatics 를 교육하는 학과(현재는 Bio & Brain Engineering 학과)가 만들어졌다.

인간게놈프로젝트에서 극명하게 드러난 것은 생물학이 이제 Large scale data 생산하는 시대에 접어들었고,  생물학이 이 large scale data의 분석을 통해 연구되는 Information science 즉 정보과학의 시대로 접어들었다는 사실이었다.

이는 게놈프로젝트 이후 생물학의 트렌드를 보면 극명히 드러나는데, 이 후에 생물학의 세부 분야들은  Genome 처럼 총체라는 뜻을 더해주는 -ome이 붙는 High-Thoughput data science 로 이름이 붙여졌고 ( Exressome, Proteome, Interactome, Metabolom , etc ) , 뛰어난 생물학 연구 팀에는 의례히 뛰어난 Bioinformatics 인력 혹은 공동연구팀이 함께 연구를 이끌어 가고 있음을 확인할 수 있다.  다시 말하면, 이제 첨단 생물학을 연구하기 위해서는 bioinformatics 로 대변되는 정보 과학적 분석 능력이 필수가 되었다는 말이 된다.

최근에 게놈 분석 비용이 획기적으로 낮아지면서, 게놈의 대중화와 이와 연계된 산업적 폭발이 목전에 와 있는데, 여기서도 게놈의 분석/관리/서비스를 위한 Bioinformatics 인력이 주도적 역할을 하게될 터인데,

게놈프로젝트 이후 많은 대학에 학위 과정이 개설되어 많은 인력을 배출해낸 미국에 비해 한국은 그나마 교육과정을 개설했던 학교들에서 오히려 Bioinformatics 이외의 분야들로 타겟을 바꾸어 학과를 포지셔닝 하면서, 제대로된 Bioinformatics 교육 커리큘럼을 갖춘 학교가  전무한 실정이다.  사실 미국을 제외하면 Bioinformatics 학위 과정이 활성화된 나라가 거의 없긴 한데, 그래서 자연히 앞으로의 Bioinformatics 분야도 미국이 주도적으로 발전시켜 나갈 수밖에 없지 않나 생각한다.

여담으로 현재 국내에서 중급 Bioinformatics 인력 조차도 구하기 쉽지 않은데, 앞으로 꾀나 오랜 시간 이런 흐름이 지속되지 않을가 조심스레 예측해 본다.



Thursday, August 30, 2012

스티브 잡스 vs. 루카스 와트맨 :: 개인유전체 정보를 이용한 암 치료 혁명

 스티브 잡스는 사망 후에도 히트작을 하나 만들어 내는데, 전세계에서 엄청나게 팔려나간 그의 자서전이 바로 그것이다.  잘 알려져 있다 시피 스티브 잡스는 치료법이 거의 없는 췌장암에 걸려 죽음을 앞두고 있다가,  치료가 가능한 희귀한 형태의 췌장암이라는 것이 밝혀지고 수술을 통해 6년을 더 살다가 다시 암이 재발해 숨을 거뒀다.  앞서 언급한 스티브 잡스의 자서전엔 그가 겪은 암의 치유 과정이 좀 더 자세히 묘사되어 있는데,  대체 의학에 대한 그의 믿음 때문에 치료 시기를 놓쳐 걷잡을 수 없는 상태로 암이 악화되어 갔고, 그의 의료진은 할 수 있는 모든 것을 다 시도할 수밖에 없는 상황에 놓여 있었다.

재발한 암에 고통받던 시기 스티브 잡스의 마지막 애플 컨퍼런스 기조연설


게놈 분석으로 암 치료를 시도한 스티브 잡스

앞서 언급했듯, 췌장암은 특별한 치료 방법도 없고, 약도 개발되어 있지 않다.  무기력하게 죽음을 기다릴 수밖에 없는 상황의 스티브 잡스의 치료에 지구상 최고 수준의 의료진(스탠포드, 하버드 등의 의료 연합팀) 이 실낱같은 희망을 가지고 시도한 마지막 암 치료 방법은 '개인 유전체 분석' 이었다.

잡스의 의료진이 선택한 게놈 분석은 전장 지놈 분석( Whole Genome Sequencing ) 으로 인간의 30억개 DNA 서열을 모두 읽어 분석하는 방식이다. 이런 whole genome 분석은 2001년 인간게놈프로젝트(HGP: Human Genome Project ) 에서 30조를 들여서야 가능했지만, 지금은 천만원 단위로 그 가격이 낮아져있고, 잡스의 게놈을 분석할 당시인 2009년~2010년  경엔 천만원 정도를 들이면 가능한 수준으로 낮아져 있었는데, 잡스의 사망 후 밝혀진 내용에 따르면 이에 십만달러 우리돈 1억 정도가 들었다고 한다. 현재 실험실 레벨에서의 전장 게놈 분석 비용은 3백만원 아래다.

암 환자의 게놈을 읽는 것이 어떻게 암의 치료로 이어질까? 컨셉은 매우 간단하다. 간략하게 서머리 해보면,

  1. 암 환자의 정상 세포와 암세포의 게놈을 읽는다.
  2. 두 게놈을 비교하여 암세포에 변형이 일어난 DNA 를 찾는다.
  3. 변형이 일어난 DNA 로 인한 비정상적 세포 기작을 일으키는 유전자를 찾는다.
  4. 3번 과정에서 찾은 유전자를 타겟으로 하는 약의 처방 이나 시술을 시행한다. 

위와 같은 순서로 요약할 수 있다.  문제의 원인이 되는 DNA 를 찾고, 이 DNA 가 포함된 유전자를 표적으로 하는 약을 찾아 처방한다는 것이 게놈 분석을 통한 암 치료의 핵심이다. 여기서 중요한 포인트는 문제가 되는 유전자를 표적으로 하는 약은 '암치료 약'이 아닐 수 있다는 사실이다. 평범한 감기약도 암을 유발하는 DNA 가 포함된 유전자를 타겟으로 하면 암을 치료하는 약이 될 수 있다는 사실이다.

Why Genome Sequencing for Cancer Treatment? 

이쯤에서 상기해야 하는 사실 ' 우리는 서로 모두 다른 게놈 DNA 서열을 가지고 있다' 

치료 방법이 없는 스티브 잡스의 게놈을 왜 분석했을까? 그래봐야 치료법이 없는 암을 앓고 있지 않았나? 맞다. 하지만 그의 게놈은 지구상 그 누구의 게놈과도 다른 유일한 DNA 서열로 이루어져 있다. 그의 암을 일으킨 DNA 들은 기존의 암치료제들이 표적으로 삼지는 않지만, 이미 존재하는 다른 약들은 표적으로 삼을 가능성이 존재한다. 이 '개인 특이적 DNA 다형성' 이 암 치료에 게놈 분석을 도입하고, 효과적으로 이용될 수 있는 이유다.

애석하게 스티브 잡스의 게놈 분석에서는 치료에 효과적으로 사용할 만한 정보를 찾는데 실패했고,  그는 죽음을 받아들여야 했다.

잡스가 죽고난 이후, 2012년 게놈 분석을 이용하여 암을 효과적으로 치유한 사례가 뉴욕타임즈 기사에 실리면서 화제가 되고 있는데, 더욱 화제가 될 만한 것은  이를 적용한 대상의 암 환자가 워싱턴 대학에서 암을 연구하는 의사라는 사실이다.


루카스 와트맨( Lukas Wartman )

루카스 와트맨은 대학 시절 여름 방학 때 잠깐 병원에서 일하면서 암 연구에 매료되었고, 세인트루이스 소재 워싱턴 대학 의과대학에 진학하여 암 연구 의사가 되기로 결심한다. 하지만 2002년 그의 의과대학 마지막 해 스탠포드 대학 레지던트 프로그램 인터뷰가 있던 날 아침 처음 겪어보는 엄청난 피로감과 함께 이런 계획들은 난관에 봉착하게 된다.

백혈병( 정확히는 급성 림프구 백혈병 , ALL : Acute Lymphoblastic Leukemia ) 에 걸렸던 것이다. 그는 스탠포드에서 레지던트 프로그램을 하려던 계획은 취소하고, 워싱턴 대학에 남아 치료와 레지던트 프로그램을 병행한다.  2년여의 화학요법 치료를 마치고 건강히 5년이 지나 암이 치유된 것 처럼 보였지만, 암은 다시 재발한다.  남동생의 골수를 이식받고난지 3년지 지난 후에도 다시 암이 재발한다.

담당 의료팀은 모든 방법을 시도해 봤지만, 아무 것도 효과가 없었다.


와트맨( 왼쪽 ) 과 그의 보스이자 연구 동료, 그리고 주치의인 존 디페르시오( John Dipercio )


더이상 가능한 방법이 없던 시점, 마지막 희망은 그의 게놈을 분석하여 치료를 하는 획기적 기술이었다. 워싱턴 대학 유전학 연구소의 책임자 리차드 윌슨과 엘라인 마디스 팀이 그의 게놈을 분석하기 시작했다.

DNA가 아닌 RNA 가 암을 치료하다 

연구팀은 먼저 그의 DNA 를 분석했다. 예상대로 많은 변형 DNA 들이 발견되었지만, 이들 DNA 를 표적으로 하는 약이 없었기 때문에 아무런 도움이 되지 못했다.   그래서 그들은 또다른 유전체 정보인 RNA 로 방향을 틀었다. 그리고 예상치 못한 발견을 하게 된다.

연구팀은 백혈병 세포에서 FLT3 라는 유전자가 광범위하게 발현이 되고 있음을 알아냈다. FLT3 유전자는 정상 세포에서 세포를 성장시키는 역할에 관여한다. 암이 무엇인가? 세포의 끝없는 성장이다. 곧, 과발현된 FLT3 유전자는 와트맨의 암 세포를 빠르게 성장시키는 암의 원인 유전자가 되고 있다는 가정을 할 수 있게 된다.

이 보다 더 와트맨에게 희망을 준 사실은 Sutent 혹은 Sunitinib 이라 불리는 FLT3 유전자를 표적으로 하는 신장암 약이 막 허가를 받아 시판되고 있었다는 점이다. 하지만 약값은 하루 $330불로 매우 비쌌고, 와트맨의 보험 회사는 약값 지불을 거부했다.

보험 회사가 두번이나 그의 간청을 무시하자, 그는 Sutent 의 제조사 화이자(Pfizer) 에 접촉해 그의 연봉으론 7개월 보름 분의 약값 밖에 지불할 수 없다며 약 제공을 간청했지만 여전히 묵살 당하고 만다. 동료 의사들의 도움으로 약을 제공받게 된 와트맨은 약을 복용한지 2주 백혈병 세포로 가득했던 골수가 완전히 깨끗해져 있음을 생검 검사를 통해 확인하게 된다.  이후 여러가지 검사를 통해서도 그의 백혈병은 치유되었음이 확인된다.  ( Cytometry, FISH 테스트 등)

이후 화이자는 와트맨에거 Sutent 를 무료로 제공하기로 결정했고, 그는 지금까지 건강하게 지내고 있다.   워싱턴 대학 병원은 와트맨과 같은 유전적 변이가 암에서 발견될 때, Sutent 를 처방하여 치료할 수 있도록 하기 위한 Clinical trial testing 의 런칭을 준비중이라고 한다.


스티브 잡스, 와트맨, 그리고 당신 

같은 게놈 분석을 암치료에 적용하고도 스티브 잡스는 죽었고, 와트맨은 치유되었다.  와트맨은 운이 좋았다. 운 좋게 그의 변이 유전자를 표적으로 하는 약이 개발되어 있었고, 스티브 잡스는 아마도 이런 유전적 변이와 이를 표적으로 하는 약을 찾을 수 없었을 것이다.

하지만 와트맨과 같은 사례는 앞으로 더 많은 숫자와 주기로 반복될 것이다. 이런 사례들은 각각 새로운 암 치료 '유전자 변이-표적 약'  조합을 가지게 되고,  암으로 고통받는 수많은 사람들중 상당수를 구원하게 될 것이다.

스티브 잡스, 와트맨 처럼 게놈 분석을 하기 위해선 아직도 꾀나 많은 돈이 든다. 하지만 유전체 분석 비용은 가파르게 떨어지고 있고, 암 유전체 분석만을 위해서 구체적으로 상품을 꾸린다면 지금도 천만원 보다 적은 돈으로 이런 치료를 시도해 볼 수 있다 ( 마진을 거의 붙이지 않는다면 ).

우리는 이런 기술이 가능한 세상에 살고 있고, 이런 기술이 앞으로 암에 걸린 당신을 치유하게 될 것이다.

Saturday, July 28, 2012

평범한 사람들이 모인 팀 VS. 특급 전문가 1명 :: 간단한 확률로 본 집단 지성의 힘

 우리는 전문가의 힘을 과대 평가하는 경향이 있다. 실제로 인류 역사를 한단계 진보시킬 만한 희대의 천재들이 존재했던 것이 사실이다. 뉴턴이 그랬고, 아인슈타인이 그랬다. 가까이는 스티브 잡스도 있다. 하지만, 우리가 일상적으로 접하는 상황에서의 전문가는 이런 레벨의 사람들이 아닐 확률이 높다.

대게 우리가 접하는 전문가 혹은 '천재'라고 칭송하는 주변의 사람들은 특정 분야에 오랫동안 열심히 일해오며 '전문성'을 키워온 사람들이다. 이런 사람들은 '척하면 아' 하고 알 정도로 그 분야에서 벌어지는 일들을 놀라울 정도로 빠르고 효과적으로 처리한다. 가까이는 내 옆의 김대리가 될 수도 있고, 좀 더 넓게는 어느회사의 김 과장, 어느 대학 교수 아무개와 같은 식으로 특정 분야의 전문가들은 돋보이는 존재다. 그래서 언론에서도 어떤 사안에 대한 깊이 있는 통찰과 전망이 필요할 때 이런 전문가들을 찾아 나선다.


과연 전문가 1명의 파워는 얼마나 막강한 것일까? 최근에 번역 출간된 책 '앨빈 토플러와 작별하라' ( 원제: Future bubble ) 에서는 전문가들의 예측은 그냥 한귀로 듣고 한귀로 흘리는게 좋을정도로 형편 없다는 사실을 방대한 사례들을 바탕으로 설명한다.

그럼, 좀 더 범위를 좁혀서, 내가 일하는 회사, 혹은 학교 연구팀에서 이런 최고의 실력을 갖춘 전문가의 의견은 어느 정도로 유의할까?




특급 전문가 vs. 평범한 사람들로 이루어진 팀


특정 전문가가 p1의 확률로 올바른 결정을 내린다고 하자. 동시에 전문가 보다는 못한 p2 의 확률로 올바른 결정을 내리는 사람들이 모인 팀이 있고, 다수결로 팀의 결정을 내린다고 하자. 어느 쪽이 더 높은 빈도로 올바른 결정을 내릴까?

특정 전문가가 올바른 결정을 내릴 확률 P(s)=p1
p2의 확률로 올바른 결정을 내리는 팀원 N명의 다수결이 올바른 결정일 확률 P(s) 는 아래와 같다.


이를 계산해서 그래프로 그려보면 아래와 같다.
p1 = 개개인이 옳은 판단을 내릴 확률,
 P( correct | number of team ) = x명으로 구성된 팀이 옳은 판단을 내릴 확률.
각각의 선은 구성원 멤버 숫자가 다른 팀들을 의미한다.
검은색 선의 경우 팀이 1명으로 구성된 팀 , 즉 특급 전문가 1인의 판단을 의미한다.
그래프 위쪽의 회색 선은 P(correct | number of team)  = 0.95
 즉, 95%로 옳은 판단을 내릴 확률을 표시하는 선이다. 






특급 전문가를 이기는 평범하지만 특별한 집단

 위의 그래프에서 보여지듯, p1의 확률이 0.5 이상인 경우( 즉, 동전던지기 보다는 나은 확률인 경우 ), 특급 전문가 1인 보다는 평범한 팀이 더 높은 확률로 올바른 결정을 내릴 수 있다. 75%확률로 옳은 결정을 내리는 7명이 모이면 93%의 확률로 옳은 결정을 내릴 수 있고, 11명이 모이면 96.5% 확률로 옳은 결정을 내릴 수 있다. 이는  90% 확률로 옳은 결정을 내리는 특급 전문가보다 평범한 팀이 더 옳은 판단을 내릴 수 있다는 말이다. 하지만 이런 결론을 내리기 위해서 몇가지 가정이 필요하다.

1. 독립적인 사고를 하는 팀원
 보통 집단 내에서는 집단의 의견을 좌지우지하는 강력한 권한을 가진 '팀장' 혹은 이에 상응하는 역할을 하는 팀원이 존재하는 경우가 많다.  동등한 권한을 가진 팀원이라 하더라도 똑똑하다고 인정받거나, 평소 성과가 좋아 많은 사람들의 신뢰를 받는 '특급 팀원'이 바로 이런 이들. 팀장 내지 이런 '특급 팀원'의 의견을 '보통의 팀원'들이 쉽게 따라가는 경우가 많다.  정말 같은 의견을 가진 경우도 있겠지만,  그렇지 않은 경우가 많을 것이라 본다.

팀장이나 특급 팀원, 좀 더 넓게는 지도교수, 회사의 사장 등 어떤 사람 앞에서도 독립적으로 사고할 수 있는 사람만이 '올바른 결정을 내리는 자그마한 팀'이 가져야 할 팀원이다.  다양한 경력의 팀원들이라면 같은 분야의 팀원으로 구성된 팀보다 상대적으로 좀 더 독립적인 사고능력이 높은 팀이라고 할 수 있을 것이다.


2. 동등한 결정 권한
 독립적인 사고를 하는 팀원으로 구성된 팀이라도 자신의 의견으로 팀의 의사를 결정지어 버리는 권위적인 팀장이 버티고 있다면 특급 전문가를 앞서는 소수의 팀으로서의 능력은 사라지고 만다.  팀원들의 판단이 동등한 권한(1/N) 을 가지고, 이들의 의견이 다수의 의견으로 취합될 때, 비로소 특급전문가를 이기는 강한 팀이 될 수 있다.



팀원 숫자는 홀수가 낫다,  짝수라면 ... 


확률 계산을 따르자면,  홀수 인원의 팀은 짝수 인원의 팀보다 더 높은 확률로 옳은 결정을 내린다. 홀수인 팀은 3명을 예로 들자면, 옳은 의견을 낼 1명과 그렇지 않은 1명을 상쇄하고 남는 나머지 한명이 옳은 확률을 내면 팀은 옳은 의견을 선택한다. 하지만 4명으로 이루어진 짝수 인원의 팀이 옳은 의견을 내기 위해선 3명이 옳은 의견을 내야 한다.
붉은 색이 팀원 수가 홀수인 경우, 검은색이 팀원 수가 짝수인 경우.
같은 모양의 점이 들어간 붉은색과 검은색 라인에서 검은색이 팀원 수가 1명 더 많은 짝수 팀이고,
팀원이 늘어났지만, 오히려 y축의 옳은 선택을 할 확률 P 가 낮아짐을 확인할 수 있다.
( 라인이 조밀해 실제 눈으로 판별은 몇몇 점에 대해서만 가능한 듯 하지만 )


'정'과 '반' 이 홀수팀에선 평균적으로 상쇄되고 남은 한명이 옳은 의견을 내면 팀이 옳은 의견을 내는데 반해, 짝수팀은 '정'과 '반'이 같은 경우에 팀은 틀린 결론을 내게 되는데서 이런 차이가 나타난다.

짝수팀에서 나타나는 이런 문제를 해결 하기 위해선 , '정'과 '반'의 숫자가 같은 경우, 랜덤으로 한명( 혹은 가장 확률이 높은 투표권자)을 선정하고 그의 의견에 따르는 장치를 마련하면 홀수팀+1의 짝수팀이 더 높은 확률로 옳은 의견을 낼 수 있다. 


큰 회사가 더 믿을 만 하다, 더 잘한다?
큰 회사, 똑똑한 사람들이 많이 모인 그룹이 소수의 팀, 작은 회사보다 더 강력할 것이라고 생각하는 경우가 많다. 하지만, 이 모델에 따르자면 10명이 넘어가면서 그 차이는 거의 존재 하지 않는다.

오히려 실질적으로는 큰 그룹의 의사소통 비용 ( 들이는 돈, 시간, 장소 등등) 이 기하 급수적으로 늘어나기 때문에, 소수의 강력한 팀에 비해 서로 의견 조율도 어렵고, 결정 과정도 기민하지 못하다. 가장 큰 문제는 숫자가 많기 때문에 이런 경우에 팀장 몇명, 혹은 대표 1인의 의견이 매우 강력하게 의사결정에 적용이 된다는 점이다.  위의 분석에서도 보여지듯,  강력한 1인 보다는 적당히 강력한 다수의 의견이 옳을 확률이 더 높다.


2-3명으로 시작하는 실리콘밸리의 많은 기업들이 신화가 된데는 이런 의사소통 과정의 효율성과 동등한 권한을 가진 동료들의 확률 높은 의사 결정 과정이 뒷받침 되었던 것도 분명히 큰 역할을 했으리라 생각한다.  


새로운 의사결정을 많이 하며 빠르게 나아가야 유리한 '새로운 산업', 즉 첨단 산업의 경우에 소수의 팀으로 이루어진 작은 회사들이 대기업에 앞설 수밖에 없는 이유를 바로 이런 의사소통과 결정 과정에서 찾을 수 있지 않나 생각한다. 




마무리 
  '옳은 판단'을 하는 특정한 시스템을 가정하고 고작 두개의 변수만을 가지고 통계 계산을 해 시뮬레이션 한 결과이기 때문에, 이 글에서 도출된 내용들을 그대로 실생활에 적용하는데는 무리가 따르지만,  미지의 문제에 대해 옳은 판단을 내리고자 하는 다양한 상황에서, 독립적인 사고를 하며, 동등한 권한을 가진 그룹이라면 글에서 시사하는 내용들을 한번쯤 떠올려 적용해 보는 것도 의미 있으리라 ...

더 읽을 거리 






Wednesday, May 9, 2012

jQuery Mobile on PhoneGap :: Cross-domain page request 설정

jQuery mobile 로 remote 서버의 페이지에 접근하는 경우는 두가지다.

1. ajax 처리

ajax처리는 javascript 혹은 jQuery로 간단히 처리할 수 있다.
아래의 jQuery 코드는 www.geference.com 의 exam.php를 실행하고 그 결과를 data로 받아 경고창에 뿌려준다.  jQuery mobile 에서도 잘 작동한다.


$.post( 'www.geference.com/exam.php' , function(data){ alert( data) } )




2. remote 서버 페이지로 페이지 이동

jQuery mobile 의 페이지 이동은 $.mobile.changePage() 함수가 담당한다.
하지만 아래의 코드는 제대로 작동하지 않는다.


$.mobile.changePage( 'www.geference.com/exam.php')



기본적으로 jQuery mobile은 cross-domain 페이지 이동이 안 되도록 설정 되어 있다.
cross-domain 페이지 이동을 가능케 하려면,  아래 설정을 app의 시동시에 등록해 두어야 한다.


$.support.cors= true;
$.mobile.allowCrossDomainPages = true;


phonegap 1.3.0 버전을 기준으로 테스트해 본 결과, $.support.cors 는 기본 설정이 true로 되어 있어, 따로 설정을 하지 않아도 되지만, $.mobile.allowCrossDomainPages 는 기본이 false로 되어 있어 명시적으로 true로 설정해 주어야 한다.

phonegap에서 white list 설정을 풀어주어야 하는 것도 잊으면 안 된다.

Monday, April 30, 2012

jQuery mobile :: content 영역 사이즈를 window 사이즈에 넘치지 않게 표시하는 방법

jQuery mobile 은 각 페이지 요소를 표현하는 CSS 설정이 default로 함께 딸려 있다. Prototype 용으로 이런 default 설정을 그대로 사용하는 것이 매우 편리하지만, 앱 디자인을 customize하기 위해선 default CSS 설정을 제거하고, 새롭게 CSS 를 설정해 디자인을 조정해야 한다.

본 post에서는 jQuery mobile 의 페이지 기본 요소인 header, content, footer 로 이루어진 페이지에서 이들 세 요소가 전체 화면 영역을 차지하도록 하는 한 가지 방법을 소개한다.



# jQuery mobile 의 기본 페이지 설정

<section data-role='page' >

  <div data-role=header >

      HEADER

  </div>

  <div data-role=content>

      CONTENT

  </div>

  <div data-role=footer>

     FOOTER

  </div>

</section>



구체적으로, header와 footer 를 설정하고 남은 영역을 content 가 완전히 차지하게 하는 것이 목표. 이 때 content가 차지하는 영역은 전체 화면 영역에서 header와 footer를 차지하는 영역을 제외한 나머지 영역을 단 1px 도 넘거나, 부족하지 않게 하는 것이 핵심이다.


방법1 :: Static  할당 
header와 footer 그리고 전체 화면 크기를 확인해보고, 전체 화면 크기에서 header와 footer를 제외한 영역을 px단위로 정확하게 <div data-role=content> 에 할당한다.

문제점: 서로 다른 모바일 기기들은 각기 다른 화면 사이즈를 가지는데, 이 방법을 이용한다면 각 모바일 기기들에 따라 서로 다른 content 영역 사이즈를 할당해야 하는데,  상당히 번거롭다는 점 뿐만 아니라, 현실적으로 존재하는 모든 device를 테스트 하기 어렵다는 근본적인 문제에 봉착한다.



방법2::  Dynamic 할당
 각 요소 사이즈를 javascript를 이용해 계산하고, content 사이즈를 할당하는 방법. javascript를 통해 동적으로 사이즈를 할당하기 때문에, 다양한 device에서도 제대로 된 영역의 사이즈를 계산하고 할당할 수 잇다.



Step 1) header와 footer 영역 사이즈 계산 
data-role=header, footer, content 모두에 padding 값이 설정되어 있다. 요소가 차지하는 전체 사이즈는 height + padding + border 이기 때문에 header와 footer 가 차지하는 공간을 계산하기 위해서는 height+padding+border 를 계산해주는 jquery의 outerHeight 메소드를 이용한다.



var head_height=$('[data-role=header]').outerHeight();

var footer_height=$('[data-role=footer]').outerHeight();




Step 2) Content 영역의 default CSS 제거 
content 영역의 padding, border 사이즈를 고려하여 height 를 알아내고, height 사이즈 만을 변경할 수도 있지만, 이 보다는 default padding, border 사이즈를 0으로 두고, height 사이즈를 변경하고, 필요하면 이후 다시 padding, border 를 CSS 를 이용하여 할당하는 쪽의 코드가 더 간결하고 명확하다는 개인적인 생각이다. 따라서 여기서는 content의  default CSS 를 제거한다.



# content 의 default padding, border 사이즈를 0으로 설정한다.

div[data-role=content]{

  padding:0;

  border:0

}




Step 3) header와 footer 가 차지하는 영역을 제외한 영역을 height가 차지하도록 설정
앞서 계산한 header와 footer 의 영역을 제거한 나머지 공간을 content가 차지하도록 설정을 한다.


  # 전체 화면의 높이 $(document).height() 에서 앞서 계산한 head와 footer의 높이를 뺀 공간의 높이를 계산하고 이를 content 영역의 높이로 설정

  var content_height= $(document).height() - head_height - footer_height ;

 $('[data-role=content]').css('height', content_height+'px');




Sunday, April 22, 2012

온라인 대학 :: 교육 산업의 파괴적 혁신


Udacity 창업자 Sebastian Thrun.  스탠포드 교수직을 사임하고 Udacity를 런칭.
구글 펠로우이자, Udacity에서도 다양한 강의를 직접 강의하고 있다. 

최근 미국에선 대학 교육의 파괴적 혁신이 혁명적으로 진행되고 있다. 이러한 혁명의 시작은 스탠포드 대학의 Sebastian Thrun의 인공지능입문 강의의 폭발적인 반응과 함께 성공적으로 런칭한 Udacity( 이에 관한 자세한 내용은 http://health20.kr/2515 를 참고)이고, 올해 3월 부터 본격적으로 강의가 시작되어 성공적으로 정착하고 있는 Coursera ( cour-say-ruh 로 발음하도록 뉴욕타임즈 기사에 실려 있으니 한국어론 코사이러 정도로 표기하면 될까? )를 또다른 대표적인 대학 교육 혁신 기업으로 들 수 있다.


 그렇다, '기업' 이다.

 몇년 전 런칭한 MIT OCW(open course ware)는 MIT 대학의 강의들을 동영상/녹취로 강의 내용과 강의에서 제공되는 각종 숙제/보충자료 그리고 중간/기말 고사 문제와 해답 모두를 웹사이트에 모아 공개하는 웹사이트지만, 이는 비영리목적이며 이를 위한 기부금을 따로 받아 운용하고 있다.

 하지만, Udacity나 Coursera는 모두 스탠포드 대학 교수들이 직접 창업을 하였지만, '이윤'을 추구하는 기업이며,  돈을 벌 수 있는 비즈니스 모델도 명확하게 가지고 창업을 했고, 이들이 가진 비즈니스 모델 또한 실리콘밸리의 벤처투자가들에게 명확하게 인정이 되어 Coursera 같은 경우엔 실리콘밸리에서 가장 존경받는 클라이너퍼킨스를 위시한 서너군데의 벤처캐피탈로 부터 우리돈으로 160억 이상의 자금을 투자 받아 설립이 되었다.

Udacity의 검색엔진 개발 강의에 참여하는 구글 창업자 세르게이 브린.
사진은 강의 인트로 동영상 중 한 장면



대학 교육 혁신 기업들의 비즈니스 모델 

Coursera의 CEO 가 밝힌 비즈니스 모델은 크게 두가지다.
Coursera 창업한 스탠포드 대학 컴퓨터공학과 교수 2인 Andrew Ng과 Daphne Koller 


첫번째는 '프리미엄 교육 서비스' 다. 대학 교육을 제공하는 기업으로 당연히 첫번째로 생각할 수 있는 비즈니스 모델이다. Udacity나 Coursera는 기존의 온라인 강의 사이트들 처럼 그냥 학교 수업 내용을 비디오로 찍어 올린 수준이 아니라, 이를 위해 새로운 도구와 기법들을 다양하게 개발하여 온라인에서 강의를 효율적으로 소화할 수 있게 만들어 올리고 있으며, 이는 앞으로 더욱 정교하고 효과적인 형태로 발전을 거듭할 것이라 예상된다. 하지만 역시나 온라인 교육이라는 한계는 필요한 경우에 질의 응답 등을 이용자가 원하는 만큼 할 수 없다는 것에 있지 않나 싶다. 프리미엄 교육 서비스는 이런 부분에서 가능하지 않을까? 한달에 일정한 돈을 내면, 정해진 숫자 만큼의 질의에 대해 '교수 직강 답변' 을 받을 수 있게 한다던가 하는 형태로. 프리미엄 교육 서비스 컨텐츠는 이런 질의 응답 외에도 창의적으로 다양하게 만들어지지 않을까 예상해 본다.

두번째는 한마디로 '헤드헌팅'.  Udacity 창업자 세바스찬의 첫번째 강의 인공지능특강은 전세계에서 16만명이 수강을 했고, 이 중에 끝까지 수업을 완주한 숫자가 2만여명, 그리고 이중 성적이 만점에 근접한 학생들이 1천명 가량 되었다고 하는데, 이들을 실리콘밸리의 IT 기업들에 취업할 수 있는 기회를 주었고, 상당수가 실제로 취업을 하였다고 한다.  현재 Udacity와 Coursera가 제공하는 강의들은 대학/대학원 수준의 컴퓨터 공학/통계/수학 등 이공계 과목들을 위주로 런칭이 되고 있는데, 이런 강의들 특히나 세계 최고 대학의 교수들 그리고 업계 전문가들이 진행하고 이들이 직접 내는 과제와 시험들에서 좋은 성적을 거두는 학생들은 정말 뛰어난 학생들일 것이다. 실리콘밸리 그리고 미국의 기술 기업들은 이런 인재들에 항상 목말라 있다. 이런 인재들을 질좋은 강의로 끌어들여 회사의 DB에 넣어두는 것 자체가 회사의 자산이 되고, 이 정보를 바탕으로 중간에서 기업들의 요구에 맞는 학생들을 중계해주는 서비스는 충분히 지속가능한 비즈니스 모델이 되리라 예상한다.


Udacity, Coursera, MITx, Khan Academy,  iTunes U :: 개인적 경험 

MIT OCW 에서 부터 바람이 분 대학 교육 컨텐츠의 온라인화는 Khan Academy와 Udacity가 성공적으로 런칭되면서 가속화 되고 있다. Coursera와 같은 스타트업 기업들 뿐만 아니라, 애플도 iTunesU 를 독립적인 앱으로 런칭해 제공하면서 본격적을  경쟁에 뛰어 들었다.

나는 Udacity, Coursera, MIT OCW, Khan Academy , iTunesU 의 강의들을 섭렵해 봤는데, 이에 대한 평가를 좀 해보자면, MIT OCW과 iTunesU 는 대학의 강의를 날것 그대로 옮기는데 초점이 맞추어져 있다. 강의를 동영상으로 그대로 찍어 제공하고, 진도에 맞추어 제공되는 보충자료와 숙제 그리고 시험 자료를 제공하여 MIT 나 하바드 대학에 다니지 않고도 이들 대학에 다니는 학생과 완전히 같은 강의와 내용을 공부할 수 있게 한다.

Coursera도 이와 같은 맥락에 있다. Coursera는 스탠포드, UC버클리 등 5개 대학의 강의를 제공하는데( 현재 Princeton, Stanford,  University of Michigan , University of Pennsylvania 의 4개 대학이 공식적인 Coursera의 파트너로 참여하고 있고 UC Berkeley 는 강의를 제공하고 있지만 공식적인 협력 파트너는 아니다), 기본적으로 강의를 맡은 교수들은 자신이 현재 대학에서 강의하는 강의들을 제공한다. 하지만 MIT OCW이나 iTunesU 와 같이 실제 강의실에서 진행되는 수업 그대로 찍어 올리지 않고, 온라인에서 받아들이기 편한 형태로 칠판 대신 전자펜으로 직접 쓰면서 진행이 되고, 강의도 일주일 3시간 짜리를 10~20분 정도로 토막 내어 여러개의 강의로 나누어 제공이 된다.
또 중간 중간 퀴즈도 넣어 사용자의 집중력을 붙들어 메어 두고, 스스로 강의 내용을 제대로 소화하고 있는지 돕는 장치도 마련되어 있다.

Udacity는 Coursera 보다도 더 잘게 강의 내용을 나누어 제공한다. 보통 하나의 단락은 1-3분 내외로 하나의 토막은 하나의 컨셉만 담고 있고, 각 토막의 마지막은 퀴즈를 제공해 내용을 체크하고 넘어갈 수 있도록 한다. 또 코스 길이가 제각각인 Coursera에 비해 Udacity 강의들은 대부분 7주 강의로 통일되어 사용자가 학습을 설계하는데 좀 더 편하다는 느낌이다.  Udacity가 강의에 이용하도록 제작한 도구(소프트웨어와 전자펜 시스템)는 Coursera의 그것에 비해 더 자연스럽고 보기 편하다.

전체적으로 Udacity의 형태가 가장 온라인 교육에 적합하게 느껴지는데, 온라인 강의에 대한 사용자의 집중을 가장 잘 잡아둔다고 개인적으로 느껴지기 때문이다. 3분 내외로 짧게 짧게 핵심적인 컨셉을 강의하고 이를 확인하는 퀴즈로 진행이 되니, 지루할 틈이 없고, 키보드를 만지작대거나 다른 브라우저를 중간에 열어보는 일이 없다. Coursera는 20분 내외의 길이라 처음엔 적당하다고 느껴지지만, 중간에 지루해지거나, 조금이라도 아는 내용이 나오면 쉽게 잠깐 다른 창으로 옮겨 뉴스를 본다거나 하는 경우가 많이 생겼다. ( 물론 나 스스로의 집중력이 문제이기도 하겠지만 ㅋ)


Learn & Grow 

돈 한푼 안 들이고, 세계 최고 대학의 교수들 그리고 업계 최고 전문가들이 진행하는 온라인 강의를 들으며 공부할 수 있는 꿈같은 세상이 이미 펼쳐져 있다. Udacity의 7주 짜리 강의를 1년 동안 꾸준히 하나씩 겹치지 않고 공부한다면 6개 과목을 공부할 수 있다.(7주+1주 휴식=2달 per a subject ) 6개면 대학에 풀타임으로 등록해서 한학기 동안 하기 버거운 정도의 내용이다 ( 모두 깊은 전공과목 임을 감안한다면) , 이것만 꾸준히 해도 대학을 졸업한 입장에선 부족한 부분을 채우는데 전혀 부족함이 없고, 오히려 엄청나게 많은 공부를 할 수 있는 기회가 된다.

공짜에다 최고 전문가들이 진행하는 강의다 보니, 강의 인트로만 보면 모두 공부해 보고 싶은 맘에 가슴이 두근두근 거리지만,  절대 욕심내서 여러개를 할려고 하면 제대로 따라가기 쉽지 않다.  Coursera의 과목들은 일주일에 최소 10시간 정도를 강의를 제외한 숙제에 할애할 것을 요구한다. 실제로 스탠포드의 똑똑한 학생들이 평균적으로 10시간 머리를 싸매고 고민해야 해결할 수 있는 숙제들이라는 말이다. ( 당연히 전문성이 없는 분야의 강의라면 10시간 이상을 투자해야 제대로 따라갈 수 있다는 말이기도 하다. )

 전업 학생이 아닌 이상 매주 10시간 한 과목 숙제하는데 시간을 내기는 쉽지 않다, 그런데 두과목을 동시에 듣는다면 20시간, 어렵다. 그래서 욕심내지 말고 한과목만 그것도 정말 열심히 해보겠다는 생각으로 수업들을 수강해야 강의를 성공적으로 완주할 수 있을 것이고,  이렇게 성공적으로 강의를 완주( 모든 숙제를 제출하고 시험을 치루는 것까지 )하고, 성적이 상위권에 들면 수업을 진행한 교수의 이름으로  자랑스러운 Certificate 을 받을 수 있다. 이  Certificate 은 내 생각에 앞으로 상당한 신뢰와 권위를 가진 스펙이 될 수 있을것이라 생각한다.

단적으로 유학을 가는 경우를 생각해 보면,  미국 대학의 입학 사정 위원회는 한국의 서울대 정도는 알겠지만(미국 전체 대학에서 한해 배출되는 박사들의 출신 대학 1위가 중국의 칭화대고 2위가 인도의 IIT 3위가 서울대라는 통계에 근거해 본다면...) 이외의 대학은 이름도 들어보지 못한 대학일 경우가 많다. 당연히 이름도 못들어본 대학의 높은 GPA는 별 의미가 없고, 교수들의 추천서도 큰 의미가 없다. 그래서 신뢰할 수 있는 성과인 '논문', 공인 GRE 점수, TOEFL 점수를 보고 입학을 결정하는 경우가 대부분이다. 이럴 때 Udacity나 Coursera의 수준높은 강의( 학계 최고의 교수들이 진행한 강의) 를 듣고 여기서 상위권의 성적을 올렸다는 Certificate 이 있다면 당연하게 이 학생의 퀄리티를 신뢰할 수 있을 것이고 입학 사정에서 유리한 고지를 점할 수 있을 것이라 본다. 구글/페이스북/아마존 등 탑 실리콘밸리 기업들이 이를 인정하고 채용을 할 정도이니 말이다.

어쨌든,  많이 공부하고, 성장하자!

Tuesday, March 20, 2012

jQuery:: Namespaced event

Javascript, jQuery 에서 하나의 event에 여러개 handler function을 연결하고 컨트롤 할 수 있다.
이를 좀 더 쉽게 사용할 수 있도록 jQuery에선 Namespaced Event 기능을 제공한다.
간단히 요약하자면 event와  handler 의 '연결'을 class 로 name을 주고 이를 컨드롤 할 수 있게 하는 형태다.

흔히 쓰이는 event와 handler 연결 형태는

 $('#button').click( handler1 );
 $('#button').bind('click', handler2);
 $('#button').bind('click', handler3);

와 같은 형태인데, 위의 경우엔 id=button인 element를 클릭하면 handler1, 2,3 세개 handler 함수가 동시에 호출 된다. 경우에 따라서 handler 들을 개별적으로 컨드롤 해야할 경우가 생긴다. 이런 경우 namespaced event 를 사용하면 매우 편리하다.


사용자 로그인 전과 후의 기능을 차별화 하려고 하는 상황을 가정해 보자.
버튼 A를 누르면

1. 로그인 전에는

  • 로그인 창을 띄워준다.
  • 버튼 색깔을 빨간색으로 지정한다.

2. 로그인 후에는

  • 버튼 색깔을 빨간색으로 지정한다. 
  • 사용자 정보 창을 띄워준다. 
아래와 같이 버튼이 지정되어 있다면,

<button id="login">Button</button>


로그인 전 버튼 클릭이 담당하는 모든 handler 함수를 버튼에 연결하고,

 $('#login').bind('click.loginPageShow', loginPage );
 $('#login').bind('click.changeColor',changeColor );



로그인 하는  경우 로그인 페이지 창 띄우는 handler를 버튼 '클릭' event에서 삭제하고, 사용자 정보 창 띄우는 handler를 버튼에 아래와 같이 연결할 수 있다.

 if( login() ) {
    $('#login').unbind('click.loginPageShow' );
    $('#login').bind('click.showUserinfo',showUserinfo );
 }

Wednesday, February 22, 2012

신약개발 실질적 비용은 4조에서 11조

최근 들어 신약 개발 비용은 천문학적으로 높아졌고, 또 높아지고 있다. 보통 신약 하나 개발하는데 1조원 든다 정도로 얘기들을 하는데, Forbes의 Matthew Herper 라는 기자가 이에 관해 심도 있는 조사를 해 본 결과 실제로는 1조가 아니라 약 4조~11조 정도가 소모된다고 한다. (Forbes 기사 )

흔히 알려진 것과 다른 결과가 도출된 이유는 '실패한 신약'에 대한 소모 비용까지 계산에 포함했기 때문이다. 예를들어 2011년 노바티스가 10개의 신약 개발을 추진했고 이 중에 8개가 실패했다면 2개의 신약 성공에 들어간 비용은 10개의 신약 개발 비용과 같다고 놓고 신약 1개 개발 비용을 계산했다는 이야기다.



실질적 신약 1개당 개발 비용


가장 효율적으로 신약 개발을 한 회사는 Amgen 으로 1개당 $ 3.6 billion ( 우리돈 4조 정도) 를 썼고, 그 다음이 Novartis 로 $3.9 billion 이고, 가장 비효율적으로 비용을 소모한 회사는 AstraZeneca 로 개당 $11 billion ( 우리돈 약 11조 이상), 그 다음이 GlaxoSmithKline 으로 $8.1 billion( 우리돈 8조 이상 ) 을 소모했다.

잘 알려져 있는 사실이지만, 신약 개발 비용의 90%는 임상시험에 소모된다. 1,2,3차 임상을 거치면서 소모되는 비용은 엄청난데, 이 과정에서 reject 되면 그 동안에 소모된 모든 노력과 비용은 그냥 거품 처럼 사라져 버린다.

FDA의 신약 허가 기준은 Vioxx 등의 시장 실패 신약 ( 시장에 출시되고 5년이 지난 시점에서 독성이 인정되어 시판이 중지된 신약으로, 단일 약 실패로 인한 피해액이 최고로 알려져 있고, 이로 인해 피해를 본 환자들의 추산 숫자도 수만명 단위 ) 등으로 인해 점점 더 강화되고 있으니, 신약 개발 비용이 쉽사리 줄어들 것 같지 않아 보인다.

과도한 신약 개발 비용을 낮추어줄 가능성은 전혀 없는 것일까?


개인유전정보를 활용한 신약 개발
FDA에서 허가되는 신약의 임상 시험 결과를 본 적이 있는가? 일반인들이 기대하는 수준은 100명이 먹으면 적어도 90명정도는 효과를 보는 수준을 기대할 것이다. 하지만 실제로 시장에 나오는 약의 효과 수준은 이런 기대를 전혀 충족시키지 못하는 경우가 많다. 특히나 Chronic disease에 대한 약들이 대게 이런 결과를 보여주는데, 100명중 플라시보를 복용한 환자들 20명이 효과를 본다면, 신약 허가를 받는 약은 이 보다 조금 높은 25명 30명 수준만 되어도 통과된 사례가 있다.

 즉, 신약으로 개발이 되어도 이를 통해 효과를 보는 사람은 그리 많지 않은 수준이라는 것이다. 여기서 중요한 포인트는 '100명 중 30명에서는 왜 효과가 나타나는가' 이다. 이 30명은 나머지 70명과는 다른 특성을 가진 그룹일 가능성이 있다. 유전적으로 특이한 패턴을 공유한 그룹일 수도 있고, 이와 더불어 특정한 생활 습관을 가진 그룹일 수도 있다.

 지금까지는 이런 그룹에 대한 특성을 분석하기가 쉽지 않았다. 이들의 개인유전정보를 분석하는 것도 엄청난 비용 때문에 어려웠고, 개인의 전방위적 healthcare information 같은건 아예 축적되어 있지도 않았기 때문이다.

하지만 앞으로는 이런 분석들이 절대 불가능한 일이 아니다. 이미 30X Human whole genome 분석 비용은 소비자 가격 기준으로 미국에서 이미 2000달러( 200만원) 대로 떨어졌다. 이는 실험 분석+기초적 분석 까지 포함된 가격이다. 또 스마트 기기들과 다양한 sensor 들의 발전은 개인의 전방위적 개인의료정보 ( EMR or EHR ) 를 수집하여 분석 가능한 형태로 축적할 수 있게 한다.

임상 초기 단계에 실패할 만한 결과를 얻었다고 해보자. 예컨데 100명 중 10명에서만 효과가 나타났다고 하면, 기존에는 그냥 여기까지 소모된 모든 비용을 날리게 되지만, 앞으로는 개인유전정보/의료정보를 가지고 효과가 나타난 그룹 10명을 분석해 볼 수 있다. 분석을 통해 10명의 그룹에서 특징적인 유전적 혹은 특이적 의료정보를 발견하게 되면, 신약의 타겟 환자 그룹을 더욱 명확하게( 그리고 좀 더 협소한 그룹의 환자들에게) 정의하여 새롭게 임상 시험을 하고 기준을 통과할 가능성이 생겨난다.

개인유전정보/의료정보의 활용은 천정부지로 올라간 신약개발 비용을 낮추고, 효율적으로 신약이 개발될 수 있도록 하는 형태로 앞으로 이용되게 될것이고, 이런 형태로 제약 회사들과 접점이 생겨나게 될 것으로 생각한다. 그렇게 되면 신약 개발은 더이상 거대 글로벌 제약사들만의 전유물이 아니게 될 것이고, 비로소 신약개발의 봄이 오게 되지 않을까... 하는 생각을 해본다.

Friday, February 10, 2012

jQuery 에서 동적 이벤트 등록시 이벤트 중복 문제

Javascript 에서 addEventListener 그리고 jQuery에서 .bind , .click 등 으로 다양하게 이벤트를 등록할 수 있다. 하지만, 어떤 DOM에 이벤트가 등록되는지에 따라 이벤트는 원하는 대로 동작하지 않는 경우가 발생할 수 있다. 몇가지 상황을 들어 본다.

1. 동적으로 생성되는 DOM에 대한 이벤트 등록
동적으로 새롭게 생성되는 이벤트에 대한 등록은 상대적으로 안전하다고 본다. 생성되는 이벤트에 대해 이벤트가 1:1로 등록이 되게 코딩을 한다는 가정 하에서. 하지만, DOM이 여러번 생성되고 동적 생성시 동적 삭제가 제대로 동반되지 않을 때 문제가 발생할 수 있다.

$('#create').click( function(){
     $('<div id=button >Button</div>').appendTo('body');
     $('#button').click( function(){
          alert('good');
     });
  });

위의 코드는 어떻게 동작할까? create 을 누르면 id=button인 버튼이 생성이 되고, 버튼을 누르면 'good' 이란 문구를 띄우는 창이 발생하는 이벤트가 등록된다. create를 두번 누르면 어떻게 될까?

버튼이 하나더 생긴다! 하지만, 새로 만들어진 버튼에는 이벤트가 등록되지 않는다. 동시에 처음에 만들어졌던 버튼을 누르면 alert 창이 두번 뜬다. id=button를 가진 첫번째 엘리먼트에 이벤트가 등록되므로 이후로 만들어지는 버튼에는 이벤트가 등록되지 않는다.

id 가 같은 엘리먼트가 여러개 만들어지는 건 피해야하지만, 그럼에도 불구하고 굳이 이 상황을 해결하고 싶다면, 즉 만들어지는 버튼 각각에 대해 이벤트를 등록하고 싶다면? 아래와 같이 각 엘리먼트 발생시 직접 이벤트를 연결해주면 된다.

$('#create').click( function(){
     $('<div id=button>Button</div>').appendTo('body').click( function(){
          alert('good');
     });
  });

2. 존재하는 DOM에 대한 이벤트 등록
보통 문제는 존재하는 DOM에 대한 이벤트 등록이다.
$('#button').click( function(){
       $('#start').click( function(){
               alert('What?');
       });
  });

위의 코드는 버튼( id=button인 엘리먼트)을 클릭하면, id=start 인 엘리먼트에 alert 를 띄우는 이벤트를 등록한다. 버튼을 한번 누르고 나면 이후에 start 를 눌렀을 때, 한번 alert 창을 띄운다, 이것이 이 코드를 작성한 사람의 의도일 것이다.

그런데 버튼을 두번 누르면 어떻게 될까?

start 엘리먼트에 이벤트가 두번 등록된다. 그래서 start 를 누르면 두번 alert 창이 뜬다. 한번 더 버튼을 누르면? 당연히 세번 alert 창이 뜬다.
이 문제를 해결하는 가장 간단한 방법은 버튼을 누를 때 마다 아래와 같이 기존에 등록된 'click' 이벤트를 제거하는 것이다.

$('#button').click( function(){
       $('#start').unbind('click');
       $('#start').click( function(){
               alert('What?');
       });
  });

기본적으로 동적 생성되는 DOM 이 아닌 경우라면 이벤트 등록을 중복하지 않는 것이 후폭풍을 막는 지름길이 아닐까 생각하고, 써야하는 상황이라면 항상 이벤트 중복이 되지 않게 주의를 기울여야 함을 기억해 놓자!!