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 이 있다면 당연하게 이 학생의 퀄리티를 신뢰할 수 있을 것이고 입학 사정에서 유리한 고지를 점할 수 있을 것이라 본다. 구글/페이스북/아마존 등 탑 실리콘밸리 기업들이 이를 인정하고 채용을 할 정도이니 말이다.

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