'Think' 카테고리의 다른 글
사람답다. (0) | 2017.05.09 |
---|---|
기계가 인간은 대신한다. (0) | 2017.04.11 |
소프트웨어 교육의 이유 (0) | 2016.10.05 |
믿을수 없는 믿음 (0) | 2016.10.05 |
마가복음 5: 25-34 (0) | 2016.09.07 |
사람답다. (0) | 2017.05.09 |
---|---|
기계가 인간은 대신한다. (0) | 2017.04.11 |
소프트웨어 교육의 이유 (0) | 2016.10.05 |
믿을수 없는 믿음 (0) | 2016.10.05 |
마가복음 5: 25-34 (0) | 2016.09.07 |
강원도 한 여자중학교의 과학 교사 임모(42)씨는 이번 학기 들어 컴퓨터 수업을 시작했다. 학교가 소프트웨어 선도학교로 지정되면서 한 학급을 대상으로 코딩(Co ding·컴퓨터 프로그래밍) 수업이 개설된 것이다. 그는 원래 컴퓨터를 가르치는 정보 교사였다. 국립대 컴퓨터교육학과를 졸업해 2001년 여자고등학교에 부임했다. 그가 임용되던 즈음 컴퓨터 교육을 전공한 교사들은 유례없는 각광을 받았다. “초·중등학교에서 매주 한 시간 이상 컴퓨터를 가르치라”는 김대중 정부의 교육 지침 덕분이었다.
“자부심이 있었죠. 미래에 꼭 필요한 지식을 가르친다고 생각했으니까요.” 임 교사의 회고다. 하지만 컴퓨터 교육에 대한 관심은 정부가 바뀌면서 조금씩 식어갔다. 2008년 이명박 정부에선 ‘컴퓨터 교육 의무 이수’ 지침이 폐지됐다. 2012년 임 교사는 전과를 위한 연수를 신청했다. 학교에서 정보 과목을 없애기로 했기 때문이다. 이런 경험 때문에 2018년 코딩 공교육을 도입하겠다는 정부 발표에 기대보다는 걱정이 앞섰다. “또 저 같은 정보 교사가 우르르 교단에 서겠죠. 그런데 다시 정책이 바뀌면 그분들은 어디로 갈까요. 저는 그 생각이 가장 먼저 드네요.”
DJ 정부 때 초·중 매주 1시간 교육
MB 정부 때는 의무교육 폐지
벤처 붐 꺼지며 SW시장 위축된 탓
정보교사들, 다른 과목 전과 늘어
중학 2934곳 정보교사 1217명뿐
다시 정보 교사로 돌아갈 길은 열렸지만 그는 아직 고민 중이다. “과학 과목은 없어지지 않겠지만 정보 과목은 또 언제 없어질지 모르는 거 아니냐”고 되물었다.
“백년대계가 아닌 오년대계다.”
정권이 바뀔 때마다 오락가락하는 정부의 컴퓨터 교육 정책을 한 교수는 이렇게 표현했다. 정권이 바뀔 때마다 대학의 관련 학과가 생겼다 없어졌다를 반복하고, 많은 교사가 담당 과목을 바꾸며 진통을 겪었다. 2018년 코딩 교육이 의무화된다는 소식을 교육계가 마냥 기쁘게만 받아들이지 않는 이유다. 전문성 있는 중·고등학교 정보 교사를 길러내는 컴퓨터교육학과는 전국에 8곳뿐이다. 한때 컴퓨터교육학과를 확보한 대학은 18곳(2005년)에 달했다. 김대중 정부가 컴퓨터 교육을 강조하며 1995년만 해도 7곳이던 관련 학과가 2000년 15곳으로 빠르게 늘었다.
컴퓨터 교육에 가장 심하게 찬물을 끼얹은 것은 2008년 이명박 정부가 발표한 ‘정보 교육 의무화 폐지’다. 이듬해엔 정보 과목이 일반 과목이 아닌 심화 과목으로 지정됐다. 일반계 고등학교에선 굳이 컴퓨터 수업을 선택할 이유가 없어진 것이다. 학급 수 기준으로 한때 43.2%에 달하던 중학교 정보 과목 선택 비중(2007년)은 2012년 7.6%로 떨어졌다. 김진형 소프트웨어정책연구소장은 “이명박 정권에선 컴퓨터실 기자재 예산도 단독 지원하는 게 아니라 학교 운영비에 포함시켜 학교장이 재량껏 조정할 수 있게 했다”며 “컴퓨터 교육에 관심이 적은 학교장들은 비용이 많이 들고 관리가 어려운 컴퓨터실을 없애는 경우도 많았다”고 설명했다.
2000년대 초 벤처 붐이 급격히 꺼지며 소프트웨어 관련 직업에 대한 사회적 인식이 나빠진 것도 컴퓨터 교육 시장이 쪼그라든 원인 중 하나다. 컴퓨터를 배우면 좋은 직업을 가질 수 있다는 희망이 없어 이 기간 사교육 시장조차 성장하지 않았다. 익명을 요구한 한 공대 교수는 “많은 소프트웨어 인력이 중소기업에서 대기업 하청을 받아 일하다 보니 저임금 등 근로 환경이 열악하다”며 “소프트웨어 프로그래머조차 ‘내 자식은 소프트웨어 안 가르친다’고 공공연하게 얘기하지 않느냐”고 말했다.
물론 이런 분위기는 정보통신기술(ICT) 산업의 급격한 성장과 코딩 공교육 도입 등으로 빠르게 바뀌고는 있다. 서울 주요 대학의 컴퓨터공학과 경쟁률이 치솟고, 교양 과목으로 컴퓨터를 배우는 학생이 느는 게 대표적이다. 취업난에 시달리는 문과 졸업생들이 컴퓨터 학원에서 코딩을 배우는 경우도 흔하다. 김현철 고려대 컴퓨터교육학과 교수는 “4차 산업혁명으로 인한 소프트웨어 인력 수요는 단기간에 꺼지지 않을 걸로 보인다”며 “늘어나는 컴퓨터 교육 수요에 대처하기 위해 관련 수업을 확대하기 위해 노력하고 있다”고 말했다.
당장 시급한 것은 공교육·사교육 시장에서 아이들을 가르칠 전문성 있는 인력을 확보하는 일이다. 지난해 기준 중학교의 정보 교사는 전국 2934곳 학교에 1217명으로 학교당 0.4명꼴이다. 김재현 성균관대 컴퓨터교육학과 교수는 “최근 정보 교사를 채용하는 학교가 늘며 삼성·LG 그룹에 취직했던 제자들이 회사를 접고 교사로 변신하기도 했다”며 “2018년 공교육 도입을 전후로 인력난이 심해질 것으로 예상되는 만큼 교육대학원 등에서 관련 전공자를 늘려야 할 것”이라고 말했다.
임미진·김경미 기자 mijin@joongang.co.kr
[출처: 중앙일보] 컴퓨터교육과 10년 새 18곳 → 8곳, 코딩 가르칠 교사가 없다
초등학생 코딩 교육을 보는 기대와 불안 (0) | 2016.10.12 |
---|---|
코딩교육 거품 (0) | 2016.10.10 |
활동의 필요성 (0) | 2016.10.05 |
교실 안 골칫거리 스마트폰, MDM이 해법 (0) | 2016.08.29 |
"에듀테크로 미래의 인재 키운다"...국가별 현황 (0) | 2016.08.28 |
나는 얼마전까지만 해도 컴퓨터의 과정을 인간이 다시 배운다는 것에 대해서 뭔가 벌써부터 기계에 뒤처지는 느낌을 받은적이있다. 그래서 이러한 생각에 대해서 정리 하던중에 그런것이 아니라는 생각을 받았다.
인간은 컴퓨터를 만들때, 인간이 할수 있는 모든 방법을 총동원했다. 그것을 간단하게 말하자면, 조건문과 반복문 그리고 함수이다. 우선 조건문과 반목문을 보면, 우리는 어느 행동을 하든지 조건문과 반복문을 벗어 날수없다.
예를들어 핸드폰을 보는과정에서도
1. 핸드폰을 본다. 2. 만약 카톡이 왔으면 -> 카톡을 킨다. 그렇지 않으면 폰을 닫는다 또는 페이스북에 들어간다. 3. 만약 페이스북에 알림이 떴다 -> 알림을 확인한다. 그렇지 않으면 타임라인을 보거나 폰을 닫는다. 등등등 |
이러한 과정을 거친다. 프로그래밍 언어 개발자들은 이를 캐치해 내어서 컴퓨터에 그대로 적용을 시켰다. 사람의 하는 행동을 그대로 이해하고, 시키게 하기 위해서이다. 그리고 우리는 머릿속으로는 그러한 조건과 반복을 생각하지만 몸안에서는 뇌의 신호에 따라서 자동으로 행동한다. 우리가 어떤 신호를 팔에보내고, 다리에 보내고 하나하나 신경쓰지 않아도 몸이 알아서 해준다. 이것이 컴퓨터로 치면 함수호출인것이다. 우리가 함수내용을 전부 알지 않아도, 결과값만 알고있으면 그에 해당하는 입력값을 넣어주면 되는것이다. 만약 팔을 움직이고 싶다고해서 팔에 있는 모든 근육에 다 명령을 내리는 것이 아니라. 생각만하면 (팔을 움직이는 함수만 호출한다면) 팔을 움직일 수 있다. 그래서 우리는 복잡한 생각을 하지않아도, 몸이 알아서 움직여지는 것이고, 말을 할 수 있는 것이다. 이렇게 몸속에서도 일종의 알고리즘이 사용되어서 실행되고 있다. 그래서 우리는 이러한 편한 생각에 훈련이 되어있어서, 어려운 생각을 하려고 하지 않는다. 단순히 우리가 하는것은 입력값을 어떤 블랙박스에 넣고 결과값을 빼내는 일인 아주 쉬운일을 하고있는 것이다.
몸에서 생기는 결과 이외에도 이러한 사고는 일상 생활에서도 존재하는데 어떤 문제가 생겼을때 이를 해결할때 도 주로 사용된다. 예를 들어 물 부족문제가 생겼을때, 우리가 생각하는 과정은 일종의 함수를 호출하는 훈련이 많이 되어있는 바람에 그냥 물을 아껴쓰면 된다라는 모호한 입력값을 대입하게 된다. 하지만 이러한 함수는 만들어져있지않으므로 그냥 모호한 결과값으로 남게된다. 그러므로 우리는 어떠한 논리적 절차를 거쳐서 함수를 만드는 과정이 필요하다. 그러한 과정을 위해서는 물 부족의 원인은 무엇인지를 알아야 할 것이고, 이 원인을 해결하기 위해서는 어떤 방법이 필요하는지를 생각하는 과정을 통하여 구체적인 방법이 제시 된다.
이러한 생각의 훈련의 기본과정은 앞에서도 언급했듯이 개발자들이 프로그래밍언어를 만들기 위해서 인간의 사고방식의 핵심만 잘 표현해 놓았다. 그래서 우리는 이것을 교육과정에 포함시키는 것이고, 이러한 절차적인 사고방식을 통하여 문제해결방안을 좀더 구체화 시키고 해결방안에 근접하기 위함이다. 이것이 알고리즘 즉, 소프트웨어를 배우는 과정인 것이다. 이러한 과정은 사고력이 부족한 어린아이들에게 중요한 교육이 될것이다. 사고력이 성장할때 이러한 생각하는 방법을 가르쳐 준다면 아이들의 사고력은 좀 더 구체화 될것이다.
기계가 인간은 대신한다. (0) | 2017.04.11 |
---|---|
(10/9)말씀 (0) | 2016.10.09 |
믿을수 없는 믿음 (0) | 2016.10.05 |
마가복음 5: 25-34 (0) | 2016.09.07 |
9/2 창 24 :10 - 15 (0) | 2016.09.03 |
<생각>
코딩교육을 가르치는게 아이들에게 논리적인 사고력과 문제해결능력을 키워준 다는것에 대해서는 반박할 여지가 없다. 하지만 컴퓨터 앞에 앉아서 마우스만으로 자신의 생각을 표현하는것 또한 아이들에게 제한적인 환경을 조성해 주는 것이 아닐까. 언플러그드 활동, 알고리즘 교육도 중요하지만, 이를 통해서 아이들이 몸으로 체험할 수 있는 환경을 만들어주면 더 좋지 않을까? 지금 내가 아는 선에서는 피지컬 컴퓨팅의 예로 메이키메이키와 알버트 밖에 없다. 이것보다 더 좋은 장비는 없는 것일까? 아이들이 만든 알고리즘을 사용하여 스스로 체험할 수 있는 경험을 주는것이 중요한 것 같다. 아이에 따라 다르긴 하겠지만, 가만히 앉아서 활동을 하는 것보다 뛰놀면서 활동하는것이 더 좋을것 같다는 생각이 든다. 위의 기사처럼 피지컬 컴퓨팅을 만들어 보는것은 어떨까? 코딩 을 할수있는 블록형 프로그래밍 언어는 지금 충분하고, 보편 적인 것 같다. (스크래지, 엔트리..) 하지만 피지컬 컴퓨팅에 대한 예는 찾아보기 힘들다. 피지컬 컴퓨팅이 안된다면 언플러그드 활동으로 그러한 과정을 이해하고 몸으로 직접 해보는 수업을 하는 것이 필요할 것이다. 아이들은 가만히 앉아있는 것은 학교나, 학원에서 충분할것이며, 소프트웨어 교육또한 이렇게 진행한다면, 아이들은 더이상 흥미를 느끼지 못할것이 뻔하다. 코딩은 코딩에서 끝나는 것이 아니라, 내가짠 알고리즘이 어떻게 동작하는지를 깨닫는 활동이 꼭 필요할것 같다.
기사 원문 [http://www.bloter.net/archives/198691]
판교에 도착해 작은 사무실 앞에서 문고리를 잡았을 때만 해도 그저 그가 만든 교육용 ‘스크래치’ 키트에 관한 얘기를 들을 수 있겠다고 생각했을 뿐이다. 어지럽게 흐트러진 책상을 가운데 두고 마주앉은 한 시간. 스크래치와 3D 프린터에 관한 얘기는 끝났는데, 곧 새로운 대화가 시작됐다. 다시 한 시간이 지났고, 3D 프린터와 스크래치로 만든 ‘게임튜브’는 앙증맞은 장난감에 지나지 않는다는 사실을 깨달았다. 송영광 대디스랩 대표는 교육 시장과 스크래치, 3D 프린터로 퍽 큰 청사진을 그리고 있었다. 어느 작은 스타트업의 사업계획서가 됐을지도 모를 평범한 인터뷰가 40대 아저씨 3명이 품은 ‘꿈과 열정’에 관한 이야기로 바뀌었다. 아직도 꿈을 좇는 어른만큼 시시한 사람이 어디 있느냐고? 글쎄, 그건 모르고 하는 소리다.
△ 송영광 대디스랩 대표
코딩 교육 혁신, ‘스크래치’와 3D 프린터로
3D 프린터로 출력한 노란색의 기계는 언뜻 보면 수제 게임패드처럼 보인다. 송영광 대표는 여기에 게임튜브라는 이름을 붙였다. 아두이노 기판에 3D 프린터로 뽑은 일종의 조립식 게임패드다. 단순히 게임패드에 지나지 않을 물건이라면 흥미롭지 않았겠지만, 송영광 대표는 이 단순한 물건에 아이들의 코딩 교육 환경을 혁신할만한 동력을 심었다.
“프로그래밍 결과로 물리 세계를 컨트롤할 수 있도록 하면 아이들이 좀 더 코딩에 흥미를 갖지 않을까 하는 생각을 했어요. 그렇다면, 값싸게 만드는 방법이 뭐가 있을까. 게임이랑 3D 프린터를 활용했죠. 게임튜브의 가장 기본적인 콘셉트는 소프트웨어를 재미있게 가르치는 데 있습니다.”
게임튜브는 각종 센서를 조립할 수 있도록 설계됐다. 스마트폰에서 흔히 볼 수 있는 가속 센서와 바람의 세기를 측정하는 바람 센서, 그리고 장애물과의 거리를 측정하는 거리 센서 등이다. 바꿔 끼울 때마다 사람은 다르게 조작해야 한다. 바람 센서는 입으로 불고, 가속도 센서를 끼우면 몸을 움직여야 한다. 거리 센서는 손으로 센서를 가리고 여는 식으로 조작하면 된다.
게임튜브로 조작하는 소프트웨어는 바로 게임이다. 그림이 상하좌우로 움직이는 단순한 게임부터 ‘플래피버드’까지 게임 종류는 다양하다. 중요한 것은 게임튜브로 조작할 게임을 아이들이 직접 만들 수 있게 했다는 점이다. 정리하면, 프로그래밍 교육을 받는 아이들이 게임을 만들고, 그 게임을 게임튜브로 직접 조작하도록 한다는 뜻이다. 소프트웨어로 짠 가상세계를 현실세계에 있는 게임튜브로 직접 조작할 수 있으니 어찌 교육에 흥미를 갖지 않을 수 있으랴.
동화책 프로그램을 떠올려보자. ‘아기돼지 3형제’ 동화책을 읽을 때 늑대가 입으로 바람을 부는 장면에서 아이가 게임튜브의 바람개비에 바람을 불면 어떻게 될까. 모니터 속 동화책에서 집은 흔적도 없이 아이가 분 바람에 날려갈 것이다. 지루한 코딩 교육이 게임이 되는 셈이다. 게임튜브는 가상세계의 프로그램과 현실의 아이를 연결하는 매개체다.
“사실, 초등학교 3학년인 딸아이한테 스크래치 프로그래밍을 가르쳐 보려고 했거든요. 그런데 생각보다 흥미를 갖지 않더라고요.(웃음) 스크래치 보면 코딩을 너무 쉽게 할 수 있도록 만들어뒀는데, 좀 안타까웠죠.”
송영광 대표는 지난 2013년 여름 삼성전자를 그만두고 나왔다. 무선사업부에서 과장급 책임연구원으로 실력도, 성실성도 인정받던 터였다. 그가 삼성전자의 문을 열고 세상으로 나오도록 한 것은 바로 가족과 여유, 그리고 창업에 관한 열망이었다. 삼성전자에 다닐 때는 워낙 퇴근도 늦었단다. 어쩌다 시간이 나도 정신적으로 여유가 없어 아이와 놀지 못했다. 직장을 그만두고 아이에게 시간을 쏟기 시작한 까닭이다. 그러면서 스크래치를 활용한 코딩 교육에 관심을 가졌다. 초등학교 3학년인 딸아이는 아빠의 ‘베타테스터’가 됐다. 일과 놀이의 경계가 흐려졌다. 송영광 대표가 ‘아빠의 공작소(대디스랩)’라는 이름으로 창업한 까닭이기도 하다.
결정적인 문제는 정작 딸아이가 스크래치 코딩 교육에 그리 큰 흥미를 느끼지 않았다는 점이다. 게임튜브 아이디어는 여기서 나왔다. 코딩 교육에 흥미를 못 느끼는 딸아이를 비롯한 많은 아이가 프로그래밍 배우기에 흠뻑 빠지도록 하기 위해서 말이다.
“코딩 교육은 교육 현장에서 중요한 문제라고 봐요. 미국도 그렇고, 다른 여러 나라에서 이미 초등학교 저학년 아이들을 대상으로 하는 프로그래밍 교육이 진행 중입니다. 국내에서도 이 같은 시도가 많아질 거라고 생각하고요.”
지난 2013년 미국 버락 오바마 대통령은 정부의 프로그래밍 교육을 직접 홍보하기도 했다. 유명 농구선수와 마크 주커버그 페이스북 CEO도 홍보영상에 출연해 미국 정부의 정책에 설득력을 더했다. 직장에서 평생 하드웨어를 매만진 아빠 송영광 대표의 소프트웨어를 향한 절절한 공감 속에 미국의 프로그래밍 교육 열풍이 스며들었을지도 모를 일이다.
국내에서도 극히 일부 학교에서 코딩 수업을 진행 중이지만, 아직 널리 퍼진 분위기는 아니다. 송영광 대표의 솔루션이 대안이 될 수 있을까. 코딩 결과를 손으로 만질 수 있는 게임튜브로 말이다. 여기에 스크래치는 완벽한 파트너다. 마치 블록을 조립하는 것처럼 프로그램을 뚝딱 주무를 수 있도록 한 개발 언어 가운데 스크래치는 아이들이 가장 쉽게 배울 수 있는 도구다. ‘기왕이면 흥미롭게.’ 송영광 대표가 게임튜브에 녹여낸 프로그래밍 교육 철학이다. 대디스랩은 프로그래밍 교육 스타트업 소프트웨어교육연구소(SEduLAB)와 손잡고, 실제 교육 현장에서 게임튜브를 활용하는 방법을 찾고 있다.
[youtube id=”nwP1CaphIik” align=”center”]
△ 시연 용으로 ‘게임튜브’로 ‘플래피버드’를 조작하도록 꾸며놨다.
△ 각종 센서는 조립식이다.
IT 자본주의 경제, DIY로 넘어서자
게임튜브의 양산 계획과 교육 시장 진출 의지를 듣는 것을 끝으로 그만 만남을 마무리하려 했다. 헌데, 뒤에 이어지는 얘기가 더 귀를 잡아당겼다. 게임튜브가 3D 프린터로 제작됐다는 점에 주목하자. 송영광 대표는 스타트업 생태계를 바꾸는 것이 대디스랩의 궁극적인 목표라고 말했다. 다시 자리에 앉아 이야기를 좀 더 들어봤다. 그대로 한 시간여가 더 흘렀다.
“보통 좋은 아이디어를 가진 사람은 옆 사람이랑 ‘야 이거 재미있겠다’ 하고 그냥 끝나는 경우가 많아요. 실제로 시작하지는 못한다는 얘기죠. 이런 이들이 직접 계획을 실행하고 시제품까지 낼 수 있도록 도와주는 것이 게임튜브 다음 목표입니다.”
일종의 조력자라고 보면 된다. 아이디어를 가진 이들이 좀 더 쉽게 직접 시장에 뛰어들 수 있는 기회를 제공한다는 게 송영광 대표의 다음 계획이다. 게임튜브에서는 스크래치와 교육 시장이 중심이었다면, 다음에는 3D 프린터가 핵심이 된다. 3D 프린터로 아이디어를 제품으로 만들어줌으로써 말이다. 생산 활동을 돕는 하드웨어 값이 싸지면서 경제구조 자체가 변화하고 있다는 게 송영광 대표의 생각이다.
예를 들어보자. 컴퓨터는 100만원만 있으면 빵빵한 제품으로 고를 수 있다. USB나 SD카드로 간단하게 컴퓨터와 연결할 수 있는 3D 프린터도 가격이 해마다 내려가고 있다. 자본주의가 우뚝 선 이후 줄곧 자본이 담당하던 생산 활동을 개인도 할 수 있는 시대가 가까워졌다.
△ 이병철 대디스랩 이사, 송영광 대표, 조용훈 연구소장(왼쪽부터)
“이게 가만 보면, 희한한 세상이 되고 있는 것 같아요. 생산 수단의 가격이 싸지면서 생기는 변화라고 보는데, 이를테면 3D 프린터도 있고요. 컴퓨터만 해도 요즘은 100만원에 살 수 있잖아요. 이건 기적이죠. 아두이노나 라즈베리파이도 널려 있고, 오픈소스 운동으로 소프트웨어도 지천입니다. 여기에 크라우드펀딩이라는 개념도 생겼잖아요.”
이제 아이디어가 있으면 실행할 마음만 있으면 된다. 인프라는 이미 갖춰져 있다. 대디스랩의 3D 프린터 사업은 아이디어를 실제 제품으로 구체화할 약간의 동력을 제공하는 역할이다. 자본이 누려온 생산과 달성의 희열을 아이디어를 가진 개인도 누릴 수 있도록 말이다. 좀 더 다양한 아이디어를 가진, 더 많은 스타트업이 나타나지 않을까.
3D 프린터로 스타트업을 돕는다는 사업계획 하나에서 경제구조의 변화를 역설한다니, 다소 허황된 얘기로 들릴 수 있다. 하지만 카를 마르크스는 노동자가 자본으로부터 소외되는 까닭 중 하나로 생산물로부터 생산자가 멀어지는 것을 꼽았다. 자본 시장에서 노동자는 더이상 자신이 소비할 제품을 만들지 않는다는 뜻이다. 사회학을 이론으로 접한 적 없는 ‘공돌이’ 송영광 대표가 대기업에서의 경험으로 얻은 지혜만큼은 진짜배기다.
“창조활동이 양분화돼 있는데, 아이디어를 가진 이들은 생산설비가 없고, 생산시설을 갖춘 대기업은 아이디어에 관심이 없고. 그 사이를 연결하는 것이 창조의 핵심이라고 생각합니다.”
거창한 꿈은 저 멀리 놔두고, 대디스랩은 우선 한 발짝 내디뎠다. 게임튜브는 현재 미국 크라우드펀딩 서비스 ‘킥스타터’에서 사전 심사를 받는 중이다. 펀딩이 시작되면, 송영광 대표는 우선 4만달러를 모을 생각이다. 게임튜브를 3D 프린터로 500대 정도 생산할 수 있는 자금이다. 송영광 대표는 늦어도 7월 셋째 주에는 펀딩이 시작될 것으로 내다봤다.
[새소식]
‘게임튜브’는 킥스타터 심사를 통과해 7월9일부터 정식 펀딩을 시작했다고 송영광 대표가 알려왔습니다. (2014년 7월10일 오후 3시09분)
초등학생 코딩 교육을 보는 기대와 불안 (0) | 2016.10.12 |
---|---|
코딩교육 거품 (0) | 2016.10.10 |
컴퓨터교육과 10년 새 18곳 → 8곳, 코딩 가르칠 교사가 없다 (0) | 2016.10.08 |
교실 안 골칫거리 스마트폰, MDM이 해법 (0) | 2016.08.29 |
"에듀테크로 미래의 인재 키운다"...국가별 현황 (0) | 2016.08.28 |
누가복음 8: 50
회당장 야이로의 딸이 죽었다. 그곳에 있던 사람들은 모두 슬퍼하였고, 통곡하였다. 이때 예수님은 말씀하셨다. 두려워 하지말고 믿기 만하라. 또한 말씀하셨다. 죽은 것이 아니라 잔다. 그후에 아이의 손을 잡고 불러 이르실 때, 아이의 영이 돌아와 아이가 곧 일어났다.
이 일을 통해서 나는 깨달은 바가 컸다. 우선 그 소녀는 누가봐도 죽었었다. 호흡이 멈추었고, 심박수가 멈추었으며, 영이 떠나갔다. 그런데 예수님은 두려워하지말고 믿기만 하라라고 말씀하셨고, 딸이 죽은 것이 아니라 잔다라고 말씀하셨다. 이것은 거의 불가능에 가까운 믿음이다. 죽은사람을 잔다라고 믿는 믿음. 어찌보면 정말 어처구니 없고, 바보같은 발언일 수 도있다. 마치 신문기사에 시체와 함께 몇 년을 산 사람의 기사가 났을 때 우리가 흔히 하는 생각과 다를바 없는 생각말이다. 하지만 예수님은 이러한 믿음을 가지라고 하셨다. 두려워하지말고 믿기만하라라고 말씀하셨다. 그리고 아이를 살리는 것은 예수님이 하셨다. 사실 우리는 정말 믿는 것 외에는 할 수 있는 것이 없다. 우리가 기적을 행할 수도 없으며, 우리가 할 수 있는 것은 정말 아무것도 없다. 인간이 할 수 있는 것은 단지 그렇다고 믿는 것뿐일 것이다. 어떤 불가능한 상황에서 가능하다고 믿는 그런 믿음. 죽은 아이가 잔다고 믿는 것처럼. 그리고 그렇게 믿고 기도한다면, 하나님께서는 우리가 불가능하다고 생각했던 것을 이루어 주신다.
우리는 생각을 할 수 있는 동물이기 때문에, 우리 머리로 이해가 되지않는 것을 믿는 일은 참 어렵다. 어릴때는 그것이 가능할지 몰라도, 자라면서 그런 얼토당토않는 믿음을 가진사람음 바보취급당하기 십상이다. 그리고 사람은 자신들의 기준에서 본 현상을 통하여 과학이라는 학문을 정의하였고, 철학, 공학, 수학 등을 정의하였다. 이 모든 것은 인간의 관점인 것이다. 즉 한 방향에서만 바라본 것이다. 마치 0과 1로 이루어진 프로그램이 자신의 주위를 둘러보는 것과 같이 말이다. 사실 프로그램은 0과 1로 이루어져있지만 프로그램을 짠 인간은 이진수가 아니라 팔진수 십진수 16진수등의 숫자체계를 가지고 있다. 이는 프로그램 입장에서는 생각 하지못한 숫자체계일 것이다. 그렇게 생각해 본다면 하나님이 생각하는 세상과 우리가 생각하는 세상은 너무나도 큰 차이가 날것이며, 우리가 생각하지도 못하는 세상이 존재할 것이다. 하지만 우리는 이것들이 눈에 보이지 않는다고 믿지 않고, 우리의 법칙을 만들어서 우리의 방식대로 살고 있다. 결국 우리는 우리의 지식을 맹신하여 너무 많은 것에 대해서 법칙을 정하였고, 공식을 정하여서 우리가 그 틀 안에 갇혀 버린 것이다. 그래서 우리는 다시 바보로 돌아갈 필요가 있다. 그저 하나님의 인도하심을 믿는 과정, 우리의 머리로는 이해가 되지 않는 현상일지라도, 무조건 믿는 것. 두려워하지 않고, 믿기만 하는 그런 믿음이 필요할 것이다. 우리가 불가능 하다고 생각했던 일들은 우리가 0과 1밖에 모르기 때문이다. 0과 1뿐 아니라 더 많은 숫자를 알고계시는 하나님은 이러한 일이 불가능하다고 생각하지 않으시기 때문이다. 또한 우리를 사랑하시는 하나님은 우리의 기도를 들어 주실 것이다.
(10/9)말씀 (0) | 2016.10.09 |
---|---|
소프트웨어 교육의 이유 (0) | 2016.10.05 |
마가복음 5: 25-34 (0) | 2016.09.07 |
9/2 창 24 :10 - 15 (0) | 2016.09.03 |
출애굽기 1장 (0) | 2016.09.01 |
다이얼로그를 프래그먼트로 사용하기 위해서는, 다이얼로그 창도 새로 만들어 줘야한다.
이 방법을 공부하는 과정 역식 정말 신기하고 재미있었다. 안드로이드는 공부할수록 신기한 것 같다.
xml
우선 xml에 사용하고 싶은 다이얼로그의 형태를 정의한다. 그리고 여기서 중요한것은 부모 layout의 width와 height를 wrap_content로 만들어 줘야하는것이다. 이것이 여타 다른 프래그먼트를 만들때 match_parent를 하는것과 차이점이 되겠다. 위의 방법만 유의해서 xml파일을 만들어 주면 된다.
다음은 DialogFragment를 상속받은 class파일을 하나 만들어보자
DialogFragment.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | public class DialogFragment extends android.support.v4.app.DialogFragment { ... public static DialogFragment newInstance(String param1, String param2) { DialogFragment fragment = new DialogFragment(); Bundle arg = new Bundle(); arg.putString("param1", param1); arg.putString("param2", param2); fragment.setArguments(arg); return fragment; } public DialogFragment(){} @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... } @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { ... AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); builder.setView(view) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { // Yes 버튼을 눌렀을때 발생하는 이벤트 } }).setNegativeButton("No", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { // No 버튼을 눌렀을때 발생하는 이벤트 }); return builder.create(); } } |
DialogFragment의 재미있는 점은 onCreateDialog 메소드가 있다는 점이다. 이를통해 다이얼로그가 띄워졌을때에 대한 화면과 이벤트를 정의하는데, 35행 이하와 같이 builer를 정의해서 그 builder에 PositiveButton과 NegativeButton을 정의해 주는것이다. 이것이 우리가 흔히 알고있는 예/아니오 버튼인 것이다. 위를 통해 우리는 xml파일에 굳이 예/아니오 버튼을 만들 필요가 없으며 간단하게 java파일에서 만들수 있다.
가속도 센서를 이용하여 흔들림 감지 (0) | 2016.10.12 |
---|---|
ListView에 각각 Seekbar 넣기 (0) | 2016.09.24 |
Custom Listview (0) | 2016.09.24 |
ListFragment (0) | 2016.09.24 |
ScrollView (0) | 2016.09.15 |
ListView에 각각 seekbar를 넣어서 따로 제어하게 하는 부분을 구현하고 싶었는데, 잘 되지 않았다. 그래서 이틀을 삽질을하면서 구글링한 결과 다음과 같은 답을 얻어 내었다.
이번 프로젝트를 하면서 가장 어려웠던 부분인데, 스택오버플로우에서 찾아보니 간단하게 해결 되었다...;;
http://stackoverflow.com/questions/6297791/refresh-seekbar-textview-in-a-listview 원문은 이곳이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | sbProgress.setTag(position); sbProgress.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){ @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { View view = (View) seekBar.getParent(); if(view != null){ TextView tvProgress = (TextView)view .findViewById(R.id.tv_porcentaje_numerico_obtenido); tvProgress.setText(progress + "%"); MyAdapter.this.getItem((Integer)seekBar.getTag()).setProgres(progress); } } @Override public void onStartTrackingTouch(SeekBar seekBar) {} @Override public void onStopTrackingTouch(SeekBar seekBar) {} }); | cs |
11행에 있는 코드와같이 한줄이면 해결된다... 하지만 필자는 11행이 잘 되지 않아서 아래와 같이 변경했다.
1 | listAdepter.this.getItem((Integer)seekBar.getTag()); | cs |
필자는 위와 같은 방법을 사용해서 문제를 해결 하였다.
가속도 센서를 이용하여 흔들림 감지 (0) | 2016.10.12 |
---|---|
DialogFragment (0) | 2016.09.24 |
Custom Listview (0) | 2016.09.24 |
ListFragment (0) | 2016.09.24 |
ScrollView (0) | 2016.09.15 |
SUMMARY
커스텀 리스트뷰를 만들기위해서는
Item xml을 정하고
리스트 뷰를 띄울 fragment를 만들고
BaseAdepter을 상속받은 클래스를 통하여 이 둘을 연결시켜 준다.
또한 BaseAdepte에서는 getView getCount getItemId를 각각 overriding해서 정의 해주어야 한다.
getView는 화면에 띄울 아이템의 메소드를 정의하고,
getCount에서는 아이템의 개수를
getItemId에서는 아이템의 position을 리턴해주게 만들면 된다.
그리고 이 클래스 안에 InnerClass를 정의하여 이를 ArrayList로 만들어서 사용하면 편리하다.
사용법
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | public class Control_listAdepter extends BaseAdapter { public class ListViewItem { ... } private ArrayList<ListViewItem> listViewItemList = new ArrayList<ListViewItem>() ; @Override public int getCount() { return listViewItemList.size() ; } @Override public View getView(int position, View view, ViewGroup parent) { final Context context = parent.getContext(); if (view == null) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate(R.layout.control_item, parent, false); } /*화면에 표시할 부분을 입력해 주는 .*/ return view; } @Override public long getItemId(int position) { return position ; } @Override public Object getItem(int position) { return listViewItemList.get(position) ; } } | cs |
DialogFragment (0) | 2016.09.24 |
---|---|
ListView에 각각 Seekbar 넣기 (0) | 2016.09.24 |
ListFragment (0) | 2016.09.24 |
ScrollView (0) | 2016.09.15 |
xml 경계선 (0) | 2016.09.15 |