1
2023.03.20
개발자 양성, 어떻게 할 것인가?
“개발자 혁신 학교에서의 3 년”
김 수 보 (전)멘토단장, 이노베이션 아카데미
이 글의 내용을 인용하실 때는 꼭 출처를 명기해 주세요.
2
시작하는 말
이 글은 이노베이션 아카데미에서 경험했던 “42Seoul”과 우리가 만들려고 했던 “새로
운 교육모델”(가칭 Project-X)에 대한 것들이다.
‘쓸까 말까, 굳이…?’
고민을 많이 했다.
회사를 옮길 때면 회고를 쓰곤 했지만, 대부분 일기장에 쓰는 게 전부였다. 하지만,
이곳에서 보낸 3년은 매우 값지고 의미 있는 경험이어서 그러기엔 좀 아까웠다.
더구나, 소프트웨어 교육을 어떻게 해야 할지 고민하는 분들이 “교육계”에 많았다. 그
래서 이 경험을 나누는 게 더 의미가 있겠다는 생각을 했다.
모든 이야기를 쓸 수는 없다. 내가 그만큼 알고 있지도 못하고 교육 전문가도 아니기
때문이다.
하지만, 25년간 IT 업계를 살아온 선배로서 하고 싶은 말은 있다. 좀 더 좋은 환경에
서 좋은 후배들과 오래 함께 일하고 싶기 때문이다.
그래서 부족한 내용이나마 이 글을 써 보기로 했다.
Project-X는 기존의 강의수업이 아니라, 집단학습으로 운영되는 개발자 훈련모델이다.
기본 설계는 초대 학장이신 “이민석” 교수님이 했고, 멘토단은 교육실험을 통해 모델
을 더 정교하게 다듬었다.
3년 동안 재학생 2,000명 중 개별면담만 1,200회가 넘었고, 팀 단위 면담도 300회가
넘었다. 함께 했던 멘토들은 기업 CTO출신들로 이미 오랫동안 신입사원 교육경험도 풍
부하고, 대학생 멘토로도 활동하고 있어서, 학생들의 성장과정을 충분히 비교 판단할 수
있었다.
3
그런 면에서 이노베이션 아카데미에서 했던 도전들이 좀 더 사회에 많이 알려졌으면
하는 바람이 있다.
이 글에선 이야기의 흐름이 흐려지는 걸 방지하기 위해 독자를 좁혀 보았다.
이 글의 독자는 200~1,000명 규모의 “개발자 대학교”를 만들고 싶어 하는 사람이다.
물론 이 정도 규모의 학교를 만들려고 하는 사람은 거의 없다.
하지만, 동작원리를 궁금해하는 분들은 많다. 동작원리만 알면 수업을 설계하거나, 새
로운 교육과정을 만들 수 있기 때문이다.
대형 시나리오를 이해하면 작은 시나리오는 금방 적응할 수 있기 때문에 가능한 이노
베이션 아카데미의 모습에 투영해서 풀어가 본다.
하지만, 어떠한 교육이론도 현실을 앞설 수는 없다.
현업 CTO의 눈으로 보면 많은 교육이론들이 넘치거나 모자랐다.
이럴 때 해답은 학생들이다.
현장에서 학생들과 호흡하다 보면 어떻게 다듬어야 할지 알게 될 거다.
에꼴42는 꽤 경직된 모델이다. 이제 10년차가 되어 한창 청년의 길을 걷고 있지만,
결국 늙어갈 거라고 본다.
Project-X는 그걸 깨려고 노력을 많이 했다. 시대의 변화에 맞춰 계속 변화하기를 바
랬다. 그래서 이 글에선 더 넓은 의미로 “새로운 교육모델”이라고 표현했다.
부디 이 경험들이 후배 개발자를 양성하는 데 많은 도움이 되었으면 좋겠다.
2023.3.20 김 수 보
4
추천사
늘 무언가를 마치고 나면 “기록을 남겨야지”라는 생각했습니다.
그래서 이노베이션 아카데미가 처음 만들어질 때의 과정을 백서에 담았는데, 예상했던
것보다 훨씬 더 많은 분들이 관심을 보여주어서 너무 감사했습니다.
기관마다 교육 철학과 관점이 다르겠지만, 교육 제공자와 학생들 간의 공동체 안에서
“교육”이 성장하고 지속된다는 것만큼은 이견이 없는 것 같습니다.
그래서 공동체 안에서의 성장과정과 경험들이 널리 공유된다면, 반드시 좋은 방향으로
교육이 발전할 것입니다.
42Seoul 이라는 실험이 계속되고 있지만 3년이 지난 시점에 그 경험을 공유하는 것
은, 그것 만으로도 큰 의미가 있고 비슷한 고민을 하는 소프트웨어 교육자와 학생들에게
도 분명히 큰 도움이 될 거라 믿습니다.
이 책에는 42Seoul의 교육 경험을 바탕으로, 개발자 양성을 위한 혁신교육의 기본
방향과 이에 대한 의미가 가볍게 정리되어 있습니다.
이 글의 저자인 김 수보 CTO는 재단의 멘토로서 초기부터 합류해 학생들과 교육시스
템을 다양한 각도로 살펴보고 가장 많이 연구한 분입니다.
우리의 경험들이 소프트웨어 개발자 교육 또는 프로젝트 기반 교육을 하고 싶어하는
분들께 새로운 영감과 도전의 기회를 제공할 수 있으면 좋겠습니다.
2023.3.19.
이 민 석
이노베이션 아카데미 초대학장
국민대학교 소프트웨어학부 교수
5
추천사
실패를 가르치는 건 교육자로서 아주 큰 용기가 필요합니다.
이노베이션 아카데미가 지향하는 혁신교육은, 학생들이 실패를 통해서 스스로 일어서
도록 방법을 깨우치게 하는 것이었습니다.
학생들은 이 방법을 통해 친구들과 함께 일어서게 되고, 앞으로 걸어갈 수 있게 됩니
다.
그렇게 강한 아이들을 키울 수 있는 교육 훈련 프로그램을 만들었던 것. 그리고 그걸
증명하기 위해 노력했던 3년은 제 인생에서 정말 행복했던 순간입니다.
감사합니다.
2023.3.18
이 호 준 CTO
이노베이션 아카데미 (전)멘토
6
목차
시작하는 말.............................................................................................................................................................................2
제1장. 소프트웨어 교육을 고민하다..........................................................................................................................9
1. 4차 산업혁명 시대..................................................................................................................................................9
2. 기업들의 숙제....................................................................................................................................................... 10
3. 현재 교육의 한계................................................................................................................................................. 11
4. 교육의 숙제 ........................................................................................................................................................... 15
5. 우리나라 교육제도............................................................................................................................................... 18
6. 에꼴42에 대한 평가............................................................................................................................................ 22
제2장. 어떻게 개발자가 되는가? .............................................................................................................................. 25
1. 개발자 성장곡선................................................................................................................................................... 25
2. 개발자 성장모형................................................................................................................................................... 27
3. 개발자의 학습방식............................................................................................................................................... 29
4. 개발자 커뮤니티................................................................................................................................................... 36
제3장. “42”를 만나다....................................................................................................................................................... 39
1. 소개.......................................................................................................................................................................... 39
2. 진짜 될까? ............................................................................................................................................................. 40
3. 학생들 사례 ........................................................................................................................................................... 41
4. 회고.......................................................................................................................................................................... 43
제4장. “42”를 이해하다.................................................................................................................................................. 49
1. 에꼴42란?............................................................................................................................................................... 49
2. 교육 동작방식....................................................................................................................................................... 56
3. 교육모델.................................................................................................................................................................. 59
4. 교육운영.................................................................................................................................................................. 71
7
5. 인트라넷.................................................................................................................................................................. 85
6. 자주 묻는 질문..................................................................................................................................................... 87
제5장. 새로운 교육모델................................................................................................................................................. 94
1. 왜 필요한가?......................................................................................................................................................... 94
2. 교육의 모습 ........................................................................................................................................................... 99
3. 학교 만들기 .........................................................................................................................................................105
제6장. 교육 설계하기 ...................................................................................................................................................114
1. 교육과정 설계.....................................................................................................................................................114
2. 교육방식 설계.....................................................................................................................................................138
3. 학습 커뮤니티.....................................................................................................................................................156
4. 교육도구................................................................................................................................................................175
제7장. 교육의 운영........................................................................................................................................................182
1. 학교의 모습 .........................................................................................................................................................182
2. 입학생 선발 .........................................................................................................................................................184
3. 공동체 운영 .........................................................................................................................................................187
4. 교육 진단 .............................................................................................................................................................195
5. 대응활동................................................................................................................................................................203
6. 기업연계활동 .......................................................................................................................................................204
제8장. 정리하면서 ..........................................................................................................................................................205
1. 이 교육모델의 장점 ..........................................................................................................................................205
2. 개발은 훈련모델.................................................................................................................................................207
3. 기업과 학교 .........................................................................................................................................................208
4. 커스터마이징 .......................................................................................................................................................209
제9장. 기본 용어.............................................................................................................................................................211
1. 교육기관................................................................................................................................................................211
8
2. 구성요소................................................................................................................................................................213
3. 교육방식................................................................................................................................................................215
표목차...................................................................................................................................................................................219
그림목차..............................................................................................................................................................................221
참고 문헌............................................................................................................................................................................223
글쓴이...................................................................................................................................................................................224
9
제1장. 소프트웨어 교육을 고민하다.
1. 4차 산업혁명 시대
그림 1. 4차 산업혁명 시대(출처:삼성SDI)
2016년 “세계경제포럼”에서 “클라우스슈밥”회장은 이렇게 이야기했다.
“네번째 산업혁명은 기존 산업혁명과는 근본적으로 다릅니다. 물리적 세계와 디지털
세계가 융합됨으로써, 모든 정치, 경제, 산업이 변화될 뿐 아니라, 그게 인간사회에 주는
가치마저 바꿔 놓을 겁니다.”
인터넷과 컴퓨터가 지식세계를 변화시킴으로써 세번째 산업혁명이 일어났다면, 네번째
산업혁명은 IT가 현실세계로 내려오면서 모든 것을 바꿀 거라는 거다.
실제로도 AI, IoT, 빅데이터 등 IT 기술은 이제 현실세계를 구성하는 요소가 되었으며,
이로 인해 제조, 자동차, 금융 등 모든 산업이 바뀌고 있다.
그가 “산업혁명”이라고 표현한 건, 산업변화를 강조하기 위해서였을 뿐 거기에만 국한
된 이야기는 아니다.
이미 AI는 뉴스기사를 만들기 시작했고, 자동차를 운전하기 시작했고, 미래를 예측하
기 시작했고, 인간처럼 대화하기 시작했다.
IT 기술은 이제 “네이버”, “구글” 같은 검색포털이 아니라, 나한테 현실적 만족감을 주
10
는 제품이 되어버린 거다.
이런 변화를 주도하는 세력은 누구일까?
당연히 기업가들이다.
IT기술을 이용해 끊임없이 세상을 더 편리하고 새롭게 만든다.
그 꿈을 현실로 만드는 사람들은 누구일까?
바로 IT 개발자들이다.
소프트웨어나 하드웨어 기술을 가지고, 기업가가 꿈꾸는 것을 현실로 만들어준다.
어떤 개발자는 직접 창업을 해서 혁신적인 가치를 만들기도 한다.
2. 기업들의 숙제
공장에 필요한 로봇을 만들고, 피자매장에 필요한 AI로봇을 만들고, 자동차에게 필요
한 “자율주행”을 만들려면 필요한 재료들이 있다.
바로 “데이터”, 컴퓨터를 훈련시켜주기 위한 정보들이다.
이런 정보는 어디에서 올까?
바로 “사람”. 가장 발달한 “인공지능”이기 때문이다.
그런데 이 과정은 모두 스마트폰이나 컴퓨터로 이루어진다. 즉 IT 세계이다.
기업들은 변화에 뒤쳐지지 않기 위해 기업 내 모든 작업들을 IT화 시키고, 정보들을
데이터화 시킨다. 이런 변화를 “디지털 대전환”(Digital Transformation, 줄여서 DT)이라
고 부른다.
즉, 수작업 장부로 관리되던 “제품 출고일지”를 엑셀로 만들고, 엑셀로 관리하던 장부
를 데이터베이스로 옮겨 담는다. 그렇게 하면, 공장은 제품판매와 출고상황에 따라 제품
생산을 지능적으로 변경할 수 있게 된다.
11
즉, 데이터를 집중화 시키고 다양한 현장에서 사용할 수 있게 만드는 것으로도 비용
구조와 사업전략을 새로 짤 수 있게 된 거다.
이렇듯 DT 란, 기업이 가진 정보를 가치 있게 만드는 활동이자, 기업을 체질적으로
바꾸는 변화이다.
그래서 기업들은 여기에 뒤쳐지지 않기 위해 많은 노력과 투자를 기울이고 있다.
가장 먼저 하는 일이 우수한 인재의 확보, 바로 “채용”이다.
하지만, 인재수는 결코 많지 않다. 사람은 공장에서 찍어내듯이 만들 수 있는 제품이
아니기 때문이다.
우수한 개발자는 더욱 그렇다.
우수한 개발자는 학교에서 키워내는 게 아니라, 사회로 나와서 그렇게 크는 것이다.
왜냐하면 “우수한”이란 다양한 현장에서 실력이 증명된 사람에게 붙여지는 칭호이기
때문이다.
즉, 교육은 학교가 아니라 사회 속에서 성장할 수 있도록 노하우를 길러주는 시스템
이어야 한다. 하지만 우리 사회는 그런 시스템이 많이 약하다.
수능식 교육은 학생들을 수동적으로 만들고, 학교는 그런 학생들을 제품 찍어내듯이
배출하고 있다.
특히 소프트웨어 교육을 위한 시스템은 아직 갈 길이 멀다. IT 산업의 역사가 짧아 교
육방향이 아직 자리잡지 못했기 때문이다.
3. 현재 교육의 한계
각 나라의 우수 대학들이 IT 인재를 키워내고 있다.
12
하지만, 수요에 비해서는 인원수가 턱없이 부족하다. 개발자가 필요한 곳은 많은 반면
기존 교육시스템은 사람을 한 땀 한 땀 정성 들여 키워내기 때문이다.
퀄리티는 우수하겠지만, IT산업의 변화속도를 생각할 때 이렇게 운영되는 건 한계가
있다. 소수의 인재로 전 산업을 커버할 수 없을 뿐더러, 다양성과 규모의 문제를 해결할
수 없기 때문이다.
IT교육 만큼은 기존의 시작에서 벗어나 다르게 접근할 필요가 있다.
무엇이 문제일까?
현재 교육구조의 문제점을 진단해보자.
구분 현재의 교육구조 단점
교육내용 컴퓨터 기초이론
교재 기반 단계별 학습
산업현장과 동떨어져 있음
교육시간이 오래 걸림
교육기관 대학교, 전문대학
- 컴퓨터공학과(소프트웨어)
- 융복합학과, 교과과정
정원확대가 어려움
교과과정 만들기가 어려움
교수자 확보 어려움
교육방식 교수자1
강의식 새로운 교육 = 교수자 양성이 필수
실습, 훈련 시간이 없음
교육자 교수자 교수자 육성에 시간이 오래 걸림(박사급 이상)
새로운 교육과정을 만들기 어려움
교육결과 학점 획득을 통한 졸업 현장에 투입하기 위해 재교육 및 훈련이
필요함.
표 1. 현재 교육구조의 문제점
전통적인 교육시스템은 “교수-수업 방식”을 따른다.
수업은 반드시 교수가 해야 하고, 강의수업은 대부분 전달식 교육으로 이루어지고, 학
생은 전공과목 이수, 수업시간 충족, 점수획득 등을 해야 졸업장을 받을 수 있다.
전통적인 이 교육방식은 19세기 이전, 전문가를 모시고 아이들을 가르치던 “도제식
교육”에서 시작되었다. 당시에는 정보와 지식 자체에 접근하기 어려웠기 때문이다.
1
교수자 : 교사, 교수, 강사 등 가르치는 행위를 하는 사람을 포괄적으로 일컫는 말
13
이 교육방식은 한 명의 교사가 소수의 집단을 교육하기에는 무리가 없지만, IT교육을
하면서는 몇 가지 어려움이 생겼다.
첫째, 실습훈련을 하기 어렵다.
기술 교육은 교실수업만으로 하기 어렵다. 학생들이 직접 코딩을 해봐야 아는데, 그러
려면 노트북도 필요하고, 통제된 개발환경도 필요하다. 더구나 학생들마다 코딩속도가 달
라, 정해진 교육일정을 나가기도 어렵다.
숙련도를 높이려면 실습훈련처럼 운영해야 하는데, 수업 방식으로는 교육 포맷을 짜기
가 어렵다. 시험평가 방법도 어렵다. 지면시험으로는 코딩실력을 확인하기 어렵기 때문이
다.
둘째, 교재를 만들기 어렵다.
IT기술의 변화방향은 예측할 수 없다.
스마트폰 이야기하다가 5G 이야기로 뛰고, 갑자기 또 AI로 뛰어 버린다. 비트코인 이
야기하다가, NFT와 STO, 디지털 화폐로 이슈가 옮겨가 버린다.
IT는 당면한 문제를 해결하기 위해 현재 기술들을 빠르게 융합시키면서 발전했다. 변
화가 복잡하고 다양했다.
그래서 교재가 나올 때쯤 새로운 기술이 등장해버린다.
예를 들어 “빅데이터 기술”는 원래 Gmail 가입자에게 무제한 용량을 주기 위해서 탄
생했다. 그런데 지금은 그것보다는 AI를 위한 머신러닝에 사용된다.
그래서 공부는 해야 하지만, 교재는 만들기 힘든 그런 시장이다.
셋째, 교수자를 구하기 어렵다.
대학교 교수가 되려면 전공분야의 박사학위를 취득하고, 다양한 논문을 통해 연구경력
14
을 인정받아야만 될 수 있다. 아무리 빨라도 10년이 넘게 걸린다.
1950년대 60년대, IT산업이 느리게 흐르던 시절에는 그래도 되었다.
그 때는 학교 기술이 산업기술이었다. 슈퍼컴퓨터를 만들고 운영체제를 올리고, 프로
그래밍 언어를 탑재하는 것까지 교수들이 직접 설계해다.
하지만, 지금은 아니다. 19세기와 20세기를 지나면서 그런 분위기는 완전히 사라졌다.
산업기술의 발전 속도가 빨라지면서 학교 기술과 분리되기 시작했다. 학교는 기초기술,
산업은 응용기술로 갈라진 거다.
그나마 이젠 산업 쪽에서 기초기술 연구까지 하고 있다. 최근의 기초기술은 구글, 페
이스북, 애플 등이 선도하고 있고, AI처럼 산업 데이터에 기반한 경우는 아예 학교에서
연구를 시작하기조차 어렵게 되었다.
이런 흐름에서 IT기술을 10년, 20년씩 공부한다는 게 말이 안 된다. 그러니, 좋은 교
수를 구해서 개발자를 양성한다는 건 더욱 어렵다.
넷째, 교육을 보급, 확대하기 어렵다.
현재 제도권 시스템은 교수자가 있어야만 교육을 받을 수 있다.
그래서 교수가 반드시 필요하다. 그런데 교수가 없다.
교육교육이나 융합교육을 해야 한다. 그러면 전공학과 교수들이 수업시간을 늘리거나,
대학원생들이 강사로 투입된다. 하지만, 턱없이 부족하다.
그런데, 새로운 머신러닝 기술이 뜬다. 학생들이 이걸 배우고 싶어한다. 하지만 교수를
구할 수 없다. 교육을 할 수 없다. 이런 악순환이 반복된다.
지방대학으로 가면 더욱 심각하다. 교수도 없고, 멘토도 없다. 개발회사도 없고 개발자
도 없다. 그러다 보니 대학이 새로운 기술 트렌드를 소화하기도 어렵고, 소프트웨어 교육
을 확대하기도 어렵다.
15
즉, “교수-수업 중심”의 현재 교육모델로는 IT 교육을 절대 잘 할 수 없다.
시간, 공간, 사람의 제약을 심하게 받을 뿐 아니라, 실습훈련교육이 아니기 때문이다.
오직 선택 받은 소수의 학생들만 교육을 제대로 받는다.
요약하자면, 이렇게 말할 수 있다.
“새로운 시대에 필요한 개발자를 양성하는 교육은 없다.”
훌륭한 교수님과 훌륭한 학생들은 있지만, 훌륭한 교육시스템이 없는 거다.
4. 교육의 숙제
왜 그렇게 되었을까?
IT 산업의 발전속도와 변화의 량이 너무 예외적이기 때문이다.
반면 교육시스템은 교수자 중심의 교육모델에 묶여 경직되어 있어 대응이 불가능했다.
이 이야기를 하려면 “교육”에 대한 이해가 조금 있어야 한다.
옛날에는 부잣집 자제를 가르치기 위해, 명망 있는 사람을 불러와 스승으로 앉혔다.
그렇게 가르치는 행위가 곧 교육이었다.
중세시대의 대중 교육도 마찬가지였다. 성당에서 목사님이 설교하는 방식, 그게 오래
된 교육의 모습이었다.
즉, 가장 전통적인 교육은 지식 수용자들의 상황을 전혀 고려하지 않고, 주입식 전달
식 교육으로 이루어졌다. 문맹률이 높았기 때문이다.
하지만, 18세기 산업혁명 이후 산업이 복잡해지자 수준 높은 교육이 필요해진다.
복잡한 기계의 사용법도 익혀야 했고, 기록하기 위해 글자도 알아야 했다.
특히 민주사회의 보급과 함께, 공교육이 확대되면서 인간관과 교육철학까지 도입된다.
16
20세기에 들어 “존 듀이”가 인간관, 사회관 등을 기반으로 교육이론을 정립하면서, 이
후 교육의 모습은 복잡해진다.
아동중심의 교육에서 성인중심의 교육으로, 특수계층 중심에서 대중교육 중심으로 바
뀌었고, 교육은 단순히 개인이 가르치는 행위에서 학교라는 사회적 시스템으로 확장된다.
이 과정에서 교육의 형태는 자연스럽게 교수자 중심의 교실 수업으로 굳어져 버렸다.
그런데 공교육을 확대하면서 교육의 형태를 정하는 바람에 새로운 교육형태를 도입되
기 어려워졌다.
그런데 소프트웨어 개발은 기본적으로, 지식습득활동 외 코딩이라는 기술습득훈련까지
동반되어야 되는 교육이다. 이런 교육을 현재 교육의 틀 안에 집어넣으려다 보니 개발자
를 길러낼 수 없는 거다.
교육 훈련
가치지향적 활동 가치중립적 활동
인간 신념체계의 변화 제한된 특수기술의 연마
전인적인 변화 일부의 변화
지적이고 창의적인 참여 단순한 기계적 학습
표 2. 교육과 훈련의 차이점 (R.S.Peter)
그런데 소프트웨어 개발은 기술훈련이면서 다음 세가지 특성을 모두 가지고 있다.
“공학자 특성”, “연구자 특성”, “사업가적 특성”
이 세가지 특성을 모두 고려하여 교육이 설계되어야 한다.
먼저 “공학자적 특성”을 예를 들어 보자.
2021년 신한은행은 3,000억원 규모의 차세대시스템 구축에 나섰다. 42개월에 걸친
대형 프로젝트이며 해야 할 업무(TASK)가 1천개에 넘는다.
이런 프로젝트는 아이디어와 창의성으로 승부하는 작업이 아니다. 건설처럼 정교한
“공학적 접근”을 해야 성공할 수 있는 작업이다.
17
그래서 미리 설계를 튼튼하게 하고 각 TASK는 분업으로 개발한다. 모아서 테스트를
하고, 준비된 프로세스를 따라 운영에 들어간다.
반면, 2022년 OpenAI가 발표한 ChatGPT는 그렇지 않다.
“연구자적 특성”이 두드러진 케이스다.
ChatGPT는 2017년 구글의 “트랜스포머”에서 시작된 연구다. 무려 5년이 걸렸다.
그나마도 이제 막 완성도 높은 제품을 만들어낸거지 아직 판매를 시작한 게 아니다.
구글의 “알파고”도 대중의 주목을 끄는 데까지 6년이 넘게 걸렸다.
2010년에 시작한 “딥마인드”를 인수, 2014년부터 바둑프로그램을 개발했고, 2016년
이세돌 9단과 대결하면서 비로소 유명해진거다.
“연구”가 아니었다면, 그 긴 기간을 투자가들이 기다려주지 못했을 거다.
“창업가적 특성”은 어떨까?
“배달의 민족”을 보자.
창립자였던 김봉진 대표는 2010년 전화번호부 앱을 출시한다.
하지만, 반응이 좋지 않았다. 전화번호부 DB는 KT가 가장 방대했기 때문이다.
고민하던 김봉진 대표는 “전단지앱”으로 정체성을 바꾼다.
아무렇게나 바꾼 건 아니고 관련 사업을 찾다가 성공가능성을 인식한거다.
빠른 변화가 가능했던 건 자기 형이 개발자였기 때문이다.
형이었던 “김광수” CTO도 사업적 감각이 남달랐다. 그에게 이런 감각이 없었다면, 그
렇게 빠른 피봇팅은 하지 못했을 것이다.
“파이썬 프로그래밍”을 강의하는 건 쉽다. 하지만, 교육이라면 이런 사람들을 길러낼
필요가 있다.
18
5. 우리나라 교육제도
가. 초,중,고등학교
그림 2. 우리나라의 교육제도(2022.05, KARIC)
우리나라의 교육제도에 대해서 알아보자. 크게 4단계로 나뉜다.
“유아교육, 초등교육, 중등교육, 고등교육”
“초등교육”은 일반교육, 기초교육이고, “중등교육”은 진로교육, 기술교육이다.
“고등교육”은 사회에 필요한 전문 인력을 길러내는 곳인데 대학교가 여기에 포함된다.
이 중 유치원과 초,중,고등학교 12년을 아울러서 “K-12 교육2”이라고 부른다. 여러 가
2
K-12 : K twelve, K through twelve, K to twelve, from Kindergarten(유치원) to 초.중.고등학교
12년으로 이루어지는 의무교육을 말한다. 우리나라의 교육제도는 “미국”을 본 따 만들어졌기 때문
에 미국의 의무교육도 K-12교육이라고 지칭한다.
19
지 교육이론으로 정교하게 짜여 있어 일반인의 시각으론 이해하기 힘들고 거리감이 있다.
자세한 설명은 건너뛰자.
다만 2018년 소프트웨어 교육이 의무화 이후 사용되는 교재를 찾아봤는데 몇 가지
걱정이 되었다.
구분 초등학교 중학교 고등학교
교육목표  소프트웨어 소양교육
 도구 활용을 통한 코딩
이해
 소프트웨어 소양교육
문제해결 학습을 통한
알고리즘 이해 및 프로그램
제작능력 함양
 컴퓨터 융합활동을 통한
창의적 산출물 제작 및 대학
진로 연계 학습
교과내용  놀이 중심의 학습활동
(컴퓨터 사고 이해)
 소프트웨어 툴 활용학습
(부제해결 방법 익히기)
 문제해결 프로젝트 학습
(프로그램 제작 기초)
 논리적 문제 해결력 학습
(알고리즘 절차 익히기)
 창의적 아이디어 산출물
제작(프로그램 제작 심화)
 프로그램 언어학습
(심화문제해결 학습)
창의적
체험활동
 논리적 사고 체험활동
(코딩 활동)
 컴퓨터 프로그램 제작
(공작기기 작동원리 구현)
 컴퓨터 시스템 융합활동
(R&D 활동)
표 3. 2018년 시작된 소프트웨어 교육과정
첫째, 생각보다 교재가 어렵다.
교재 내용부터 교구 사용까지 개발자가 아니면 쉽게 알기 어려운 내용들이다.
무엇보다 ‘학생들이 잘 이해할까?’라는 고민이 된다.
태권도 막 배우러 온 친구에게 9단 날아차기를 가르치는 것 같다.
둘째, 이 과정을 잘 지도해 줄 선생님이 있을까?
어린 학생들에게 이해시켜 주려면 아주 정말 쉽게 설명해 줘야 한다.
적어도 10년 이상 개발경력 있는 사람이, 교수법을 잘 배워서 쉽게 설명해주는 노하
우를 익혀야 할 것 같다.
셋째, AI 등 새로운 교재를 보면 이걸 선생님들이 가르칠 수 있나 의심이 된다.
너무 내용이 많고 온 산업 전체를 총망라해 놓은 느낌이다. 학교에서 수업만 하던 선
생님들이 이걸 잘 설명해줄 수 있을까? 나는 못할 거라고 본다.
특히 아이들의 질문을 받아줄 수 없기 때문에, 양방향 소통은 되지 않을 거라고 본다.
20
교육부에서 세운 상위레벨은 괜찮아 보인다. 하지만, 학교현장으로 내려왔을 땐, 교재
나 수업이 너무 어렵다는 생각이 든다.
학생들이 깨닫고 배우길 바라는 게 아니라, 강사가 일방적으로 자기 지식을 자랑하는
느낌이다.
나. 대학교
그림 3. 대학교에서 접할 수 있는 코딩교육들
대학교육은 어떨까?
요즘 전공자들은 4학년이 되면 졸업논문 대신 “캡스톤 프로젝트3”를 한다.
작은 프로젝트 하나씩은 해보고 나가게 된다.
하지만, 취업하기에 부족한 경우가 많아 적지 않은 학생들이 부트캠프에 참여한다.
목표는 이력서에 써넣을 프로젝트 하나 해보는 거다.
3
캡스톤 : 돌아치를 세울 때 마지막에 끼우는 지붕돌을 말하는데, 교육과정에선 마지막에 하는 최종과제
란 걸 의미하게 되었다.
21
비전공자들은 어떨까?
복수전공이라는 제도가 있지만 학업부담이 크다.
실무교육이 아니어서 취업에는 큰 도움도 안 된다.
하다 보면 ‘하는 게 맞나?’ 이런 의심이 든다.
정부지원 부트캠프도 쉽지 않다. 선발기준이 높아 일단 코딩학원을 먼저 다녀야 한다.
첩첩산중이라 대부분 온라인으로 입문해보는데, 그나마 혼자서 문법 공부를 해보다가
금방 포기해버리고 만다.
그나마 동작했던 모델이 “멋쟁이사자처럼” 같은 커뮤니티 모델이었다.
다. 정부,기업교육
정부교육과정이나 기업교육은 어떨까? 학교교육과 비교해 보았다.
정확하진 않고 느낌적 느낌만 비교해보자.
구분 교육기관 교육대상 교육목표 교육기간 교육내용 교육방식
장기교육 초중고 어린이,
청소년
훌륭한 국민
(기본소양)
12 년 교양교육 강의
대학교 성인 진리탐구,
전문인
4 년 전공필수 +
전공선택 +
교양
강의
전문대학 성인 전문직업인 2 년 전공필수 +
전공선택
강의,실습
에꼴 42 성인 전문직업인 3 년+ 전공필수 완전 실습
단기교육 학원(부트캠프) 성인 취업 1~3 개월 하드 스킬 강의,실습
공공(취업) 미취업자 취업 1~6 개월 하드 스킬 강의,실습
공공(재교육) 재직자 다양 1~6 개월 하드 스킬 강의,실습
기업(신입) 신입사원 업무관련
하드 스킬
1 개월 하드 스킬 강의,실습
기업(재교육) 재직자 업무관련
하드 스킬
1 개월 이하 하드 스킬 강의,실습
표 4. 교육기관별 교육방식의 차이
22
가장 큰 차이는 “교육기간”이다.
정부는 6개월 이하의 단기교육을 담당한다.
이미 취업전선에 뛰어는 케이스이기 때문에 장기교육보다는 실무전환교육에 맞춘다.
“소프트 스킬”보다는 “하드 스킬”에 집중하며, 필요한 부분만 골라서 장착시켜준다.
대학교육의 목표가 “사람”을 길러내는 거라면, 단기교육의 목표는 “기술 장착”이다.
단기교육의 단점은 “교육수준”의 복잡도를 높일 수 없다는 거다.
1단계, 2단계 밟아 가기엔 시간이 부족해 고수준의 교육을 기대하기 어렵다.
그래서 공공교육이나 기업교육은 부트캠프 타입의 코스워크만 존재한다.
아쉽게도 산업파워를 높이는 진짜 교육은 거의 이루어지지 않는다.
6. 에꼴42에 대한 평가
2019년 서울 개포동, 이노베이션 아카데미에서 “42Seoul” 과정이 오픈 되었다.
42Seoul은 “에꼴42 서울캠퍼스”를 부르는 명칭으로, 교육과정은 “42”라고 말한다.
참고로 이노베이션 아카데미는 소프트웨어 개발자 양성을 위한 혁신학교로서 설립되
었으며, “42”는 설립초기 운영할 교육프로그램으로 도입되었다.
나는 계약직 멘토로 합류했는데, 초대학장인 이민석 학장님과의 인연이 큰 지원동기가
되었다.
멘토의 역할은 학생들이 원활히 공부할 수 있도록 지원하는 것과, 우리 사회에 필요
한 진짜 혁신교육모델을 만드는 것이었다.
처음 접한 42는 좀 많이 당황스러운 모습이었다.
우선 42는 파리 본사가 전체를 통제하는 일종의 프랜차이즈 학교다. 전체 교육과정은
42 고유의 것으로 각 캠퍼스에서 변경할 수 없고, 취업과 연결된 기업연계 활동만 할 수
있었다. 프랑스의 교육이념과 철학을 따르고 있어, 우리나라와는 지향점이 조금 달랐다.
23
더구나 IT인프라를 중심으로 한 “콘텐츠 기반 학습모델”4이었기 때문에, 교육시스템을
잘 이해하지 못하면 교육효과가 엄청 떨어졌다.
그리고 커뮤니티 학습 모델이었기 때문에 운영방식 자체가 엄청 까다로웠다. 커뮤니티
문화형성을 위해 제때 필요한 학습법을 넣어줘야 했는데, 그런 일을 하기 매우 어려웠다.
반면, 42가 했던 여러 가지 교육실험들은 충분히 보고 배울 점이 많았다. 그 핵심원리
들을 분해해서 정리해보면 이렇다.
구분 이슈 기존교육
42
교육이론 세부내용
교육장치 하드 스킬 강의를 통해 가르침
: 시범교육, 이론교육
Problem contents 문제 풀이를 통해 스스로 익혀야 함
(구글링, 강의청취 등)
학습시간, 몰입도가 중요
융복합 능력 대응느림
: 학과신설, 강사필요
Project-driven
learning
프로젝트 방식으로 subject 제작
빠른
기술변화
대응못함
: 학과신설, 강사필요
Content-driven
learning
새로운 기술을 subject 로 만들어
배포
강사 부족 대응못함
: 강사양성 어려움
Peer-learning Piscine 으로 학습방식 훈련
: 동료를 Teacher 로 활용
지식전달 강의를 통해 가르침
: 강사가 핵심
Peer-evaluation
: 동료평가
이론은 알아서 학습(교재, 강의 등)
동료와 지식, 경험 교류
결과측정 시험(Examination) Examination 문제은행 기반 시험(Pass/Fail 방식)
학교운영 동료(자원)의
고갈
해당없음 Learning
community
150 명 이상의 대그룹 학습
필요에 따라 이합집산하여 과제수행
학습의
다양성
다양한 교육내용 개발 Full open apply 다양한 학생선발(오픈선발)
: 누구나 도전 가능
성장 속도 해당없음 Group study 그룹 과제를 통해 협력학습
학업동기 해당없음 Gamification
Association
놀이활동, 경쟁의식
봉사활동, 기여활동 등
돌봄활동 해당없음 Group activity 그룹활동, 후원활동 등
교육연계 타학교 교과 연계 등 좌동 비즈니스 스쿨을 단위과제로 취급
산학연계 산학프로그램 Entrepreneurship 학생들이 알아서 자치적으로 판단
취업연계 인턴쉽 좌동 학생들이 알아서 인턴쉽 수행
표 5. “42교육”에 내포된 의미
4
콘텐트 기반 학습 : content based learning, 학습자를 풍부한 량의 콘텐츠에 노출시켜, 상황에 맞는 학
습을 할 수 있도록 구성된 교육방식
24
현업 개발자의 시각으로 보면, 42가 동작하는 모습은 특이한 게 없는 것 같다.
그냥 잘되는 개발자 커뮤니티의 한 부분을 학교로 옮겨온 것 같다.
다만 이게 학교에 구현되어 있다는 건 매우 반가우면서도 신기한 일이었다.
하지만, 교육분야의 시각에서 보면 대단히 혁신적인 모습이다.
개발자 학교를 “커뮤니티 모델”로 만든 건 세계 최초이고, “집단학습 모델”로 1,000명
이상의 규모를 운영한다는 것도 대단히 높게 평가하고 있다.
그러나, 교육원리가 새로 만들어진 건 없다. 집단학습, 집단지성, 동료평가 등은 우리
나라에서도 오랫동안 연구되던 모델들이다. 다만, 1,000명이 넘는 대그룹 단위로 해본 경
험은 없다.
안에서 지켜본 42교육모델은 개발자 교육에 있어 꽤 좋은 대안처럼 보였다.
강의수업만으로 채울 수 없는 많은 것이 해소되어 있었다.
그런 면에서 어떤 것들은 우리 교육에도 과감히 도입해 보는 게 의미 있어 보였다.
25
제2장. 어떻게 개발자가 되는가?
1. 개발자 성장곡선
개발자는 어떻게 탄생할까?
개발자를 교육하려면 개발자가 어떻게 만들어지는지를 이해할 필요가 있다.
그림 4. 학습곡선(Learning curve)
대부분의 성장은 이렇게 이루어진다. 개발자도 이렇게 성장한다.
이 곡선을 학습곡선(1885년, 헤르만 에빙하우스5)이라고 하는데, 투입시간 대비 성장
정도를 표현한 곡선이다.
아직 지식과 경험이 형성되지 않는 초기에는 느리게 성장한다. 어느 정도 지식과 경
험이 쌓이고 나면 가파르게 성장하다가, 고수가 되고 나면 성장이 정체된다.
당연한 이야기인 것 같지만, 이론으로 정립되기 전까진 사람들마다 의견이 달랐다.
5
Hermann Ebbinghaus : 1850 ~ 1909, 독일 심리학자이자 교육자, 망각효과와 간격효과를 발견한 인물,
학습곡선을 처음으로 설명한 사람
26
이젠 이 곡선에 맞추어 교육설계를 할 수 있다. 입문 초기에는 꾸준히 학습량을 채우
게 하고, 성장이 가팔라지는 시기엔 다양한 경험을 하게 한다.
그런데 이걸 좀 더 가까이서 바라보자. 그러면 또 다른 곡선이 된다.
가까이서 바라보면 이렇다. “우당탕탕” 하면서 왔다갔다한다.
지식습득은 이렇지 않지만 기술습득은 대부분 이렇게 일어난다.
계속 도전하고 실패하고, 찾아보고, 반성하고, 교정하는 활동을 반복한다.
개발자의 성장곡선은 정확히 이렇다.
새로운 개념과 기술이 계속해서 나오고 누가 가르쳐주지 않기 때문에, 끊임없이 실험
해보면서 스킬과 경험을 업그레이드한다.
스타트업에서는 이걸 팀 단위로 빠르게 반복한다.
쉽게 반복할 수 있는 이유는 실패해도 피해가 크지 않기 때문이다.
시설산업과 달리 다시 개발하면 되기 때문에 비용부담이 적다.
즉, 개발자는 이런 학습패턴과 성장패턴에 아주 익숙해져야 하는 사람이다.
따라서, 교육 프로그램을 이렇게 설계해도 전혀 이상하지 않다.
그림 5. 우당탕탕 학습곡선(Bumpy learning curve)
27
2. 개발자 성장모형
개발자 성장 모형이란, 개발자를 구성하고 있는 경험이나 지식의 해부도를 말한다.
그림 6. 개발자 성장모형
기술분야나 기업별로 다를 수 있으므로, 웹 개발자 사례를 간단히 정리해 보았다.
절대적 잣대는 아니지만 범용적인 사례로 봐도 무방하다.
위 그림에서 “교육학습”은 학교에서 공부할 수 있는 수준을 말한다. 학교 수준이란 재
정문제, 교실문제, 전산실습실 등 현실적인 제한을 감안한 것들이다.
“현업수준”은 학교에서 할 수 없다. 고객, 실데이터, 법적책임 등의 다양한 변인들을
학교 내에 꾸밀 수 없기 때문이다.
하나씩 살펴보자. 가장 기본이 되는 건 컴퓨터 이론이다. IT란 기본적으로는 컴퓨터를
다루는 직업이기 때문이다.
하드웨어의 동작원리 이해는 필수다. 하드웨어가 소프트웨어 구조를 제한하고 성능에
영향을 끼치기 때문이다.
28
“개발플랫폼”은 OS 위에서 운영되는 개발자 플랫폼들이다. 안드로이드, UWP, iOS6 등
이 있다. 플랫폼을 이용해 개발할 수 있도록 여러 가지 API를 제공한다. 모든 걸 알 필
요는 없지만, 일할 만큼은 알아야 한다. 어떤 식으로 작동하고 어떤 식으로 다루어야 하
는지 연습해둘 필요가 있다.
“개발환경”은 IDE(Integrated Development Environment)라고 한다. VScode 같은
툴이다. IntelliJ 도 좋고 Eclipse도 있다.
개발을 시작하려면 제일 먼저 내 노트북에 IDE를 구축해야 한다. 프로그램을 깔고 이
것저것 설정을 잡아줘야 한다.
그런데 개발환경을 익힌다는 건 단순히 편집툴을 익힌다는 게 아니다. 어떻게 개발할
지, 어떻게 실행될지 등, 일하는 환경과 프로세스를 결정하는 과정을 연습하는 거다.
여기까지 되면, 먼저 간단한 프로그램을 만들어본다.
일반적으로는 “Hello, World”라는 메시지를 화면에 출력해본다.
Java면 Java로, 파이썬이면 파이썬으로, 웹이라면 브라우저에 출력해본다.
이것저것 설치하다 보면 그게 왜 필요한지 어떻게 작동하는지 알게 된다.
그제서야 비로소 개발을 시작할 수 있게 된다.
여기까진 일반적으로 학교에서 해 볼 수 있다.
그 다음 단계는 프로젝트다. 이런 내용이다.
“안녕하세요, [인생네컷]입니다. 우리는 각 대학교 앞에서 스티커사진 매장을 무인으로
6 안드로이드 : 구글 스마트폰 플랫폼, iOS : 아이폰용, UWP : 윈도우 플랫폼, 일반인이라면 아~ 하고 넘
어가자. 맥락만 이해하면 된다.
29
운영하고 있습니다. 사진 필터를 좀 더 선명하게 개선할 방법과 광각 느낌의 필터를 개
발하고 싶습니다. 이걸 개발해주실 분을 찾습니다.”
당연히 돈을 받고 하는 거다. 고객과 목표, 기한이 있다. 이걸 끝낼 수 있으면 단순히
코딩을 넘어 직업적으로 일을 할 수 있게 된다.
학교에선 기한을 늘리거나 기능규모를 줄여서 난이도를 낮춘다.
하지만, 역시 혼자 하기엔 기능수가 많고 복잡해서, 대부분 2-3명이 모여서 한다.
더 복잡한 건 학교에서 배울 수 없다.
데이터, 성능, 보안 이슈들을 포함한 복잡도가 올라가는데, 이걸 다 학교 내에 구축할
수 없기 때문이다. 구축한다고 하더라도 유지하는데 어려움이 크다. 더구나 업무 지식이
배경지식으로 필요하다면 더더욱 학교 내에서 운영하기 어렵다.
3. 개발자의 학습방식
가. 신입사원 교육과 다르다.
개발자의 성장방식과 성장모형에 대해선 설명을 했다.
그런데 이걸 학교에서 가르치려면 연구를 좀 해야 한다.
회사에서 신입사원을 가르치는 방식으로는 학교에서 가르칠 수 없다.
왜냐하면 “신입사원”은 회사에선 최하위 레벨이지만, 학교에선 최상위 레벨이기 때문
이다. 학교에선 정말 아무것도 모르는 사람부터 가르치기 시작해야 한다. 하지만, 회사에
선 “신입사원”이 된 것만으로도 대화는 통한다는 뜻이다.
많은 CTO들이 회사에서 가르치는 것처럼 학생들을 가르치면 알아들을 거라고 생각한
다. 절대 그렇지 않다.
교육의 대상은 레벨 제로, 백지상태인 사람부터 시작한다. 더구나 대화가 통하지 않는
30
경우도 많아서 그 훈련부터 해야 하는 경우도 있다.
이런 교육은, 기업에 노하우가 없다.
그래서 학교 교육을 설계할 때는, 기업의 노하우로 접근하면 안 된다.
백지 친구들이 어떻게 학습하는지 관찰을 하고, 하나씩 밟아가도록 잘 유도해야 교육
이 올바로 진행된다.
나. 핵심은 학습량
긴 이야기를 하기 전에 간단히 핵심부터 짚고 넘어가자.
모든 이야기는 이걸 하기 위해 구구절절이 펼친 것이기 때문이다.
레벨 제로인 친구가 개발자가 되는 건 결국은 학습량 = 훈련량이다.
많이 보고, 읽고, 생각하고, 많이 개발해봐야 한다.
이게 핵심이다.
IT기술은 파편화되어 있기 때문에, 핵심요령을 익힌다고 해서 마스터할 수 없다.
물론 웹을 할 거냐, 앱을 할 거냐에 따라 익혀야 할 내용이 쉬워지기도 한다.
기획자가 취미 삼아 할 수 있는 정도라면 좀 더 쉬워지기도 한다.
하지만, 거기에 필요한 기초 학습량이 뒷받침되지 않는다면, 아무리 핵심요령을 익혔
다고 해도 개발을 하기 어렵다.
다. 호기심과 경험학습
그러면, 소프트웨어 개발은 어디서부터 시작할까?
바로 “호기심”이다. 그리고 “따라하기”다.
내가 궁금한 게 생기면, 원리를 알고 싶어 그걸 분해해본다. 그리고 똑같이 흉내를 내
31
어 직접 만들어 본다. 다분히 공학적이고 남성적인 이 접근법은 아쉽게도 가장 정통적인
시작방법이다.
이렇게 직접 행동함으로써 학습하는 걸 “Learning by doing”이라고 한다.
그리고 이 “흉내내기”를 경험학습이라고 한다.
“경험학습”은 개발자가 새로운 기술을 익히거나, 새로운 지식을 탐구할 때 무의식 중
에 하는 행동들이다.
그림 7. 콜브박사의 경험적 학습모델
이 과정을 네 단계로 나누어 보면 이렇다.
 구체적 경험 Concrete Experience: 직접 어떤 상황을 겪는다.
 반성적인 관찰 Reflective Observation: 사건들을 되돌아보고, 과거의 경험과
연관하여 개념적으로 이해하려 한다.
 추상적인 개념화 Abstract Conceptualization: 깨달은 것들을 추상적인 개념
으로 정리한다.
 능동적인 실행 Active Experimentation: 생각한대로 되는지 새로운 상황에서
스킬을 발휘해본다.
여기서 중요한 것은 “회고”, 즉 “반성적 관찰”이다. 자기 잘못을 교정하려는 행위가 성
장으로 이어진다.
32
개발자들은 원인을 찾기 위해 정보를 뒤지거나 새로운 코드를 짜서 테스트를 한다.
제대로 동작하면 새로운 곳에 적용해보거나 더 업그레이드를 시킨다.
개발자에게 경험학습은, 단순 경험이 아니라 반성을 통해 개선하려는 자발적 탐구활동
을 일컫는 말이다.
이걸 학교에 도입하려면 어떻게 해야 할까?
우선 경험학습이 전통적인 강의학습과 어떻게 다른지 이해해야 한다.
경험학습 전통적 학습
경험을 통해 배우거나, 행위를 함으로써
배운다.
현실과 관련이 없는 이론적 개념을 배우는 것
배움은 교실 밖에서도 배울 수 있다. 배움은 교실에서 일어남.
관찰, 반성, 문제해결, 창작을 통해 배운다. 배움은 지식을 암기, 반복학습함으로써 머리
속으로 흡수하는 것
많은 책임이 강사에서 학생에게로 이동한다. 강사는 가르칠 내용을 제공하거나, 시험에
대비한 지식을 전수하는데 집중한다.
학생은 얻고자 하는 지식을 스스로 식별하고
그걸 획득해야 한다.
학생은 정해진 커리큘럼에 따라 공부를
해야만 한다.
학생이 자기의 학업과정을 관리한다. 무엇을 해야 하는지, 언제 해야 하는지를
선생님이 학생들에게 이야기해준다.
실수(실패)가 인정된다 : 실수는 배움의
과정으로 받아들여진다.
실수는 배움에 있어 금지된다.(잘못된 걸로
인식된다.)
성장동기를 학생들이 스스로 찾게 된다. 성장동기를 대부분 학생이 아닌, 외부에서
제공한다.
표 6. 경험학습 vs 전통적학습의 차이점, (David Kolb, 1984)
위 도표는 미국의 심리학자인 David Allen. Kolb7 박사가 만든 내용이다. Kolb박사는
경력개발 및 임원교육을 연구하는 유명한 교육이론가이기도 했다.
이 모델은 1970년대 이후 경험학습이론을 발전시키는데 큰 영향을 주었으며, 기업교
7
David, A. Colbin : 1939년생, 하바드대학 사회심리학 박사, 경험학습, 경력개발, 임원교육 등에 관계되는
“교육이론”들을 다수 정립했다.
33
육에 주로 사용되다가 점차 학교에도 도입된다.
장점은 경험학습은 교사 없이도 일어난다는 거다. 교사는 보조 역할을 하면 된다.
단점으로는 회고와 반성이 없으면 지식화 되지 않는다는 거다.
그래서 교육과정을 설계할 때 “회고, 반성”을 의도적으로 포함시킬 필요가 있다.
라. 점진적 반복학습
개발을 익히는 과정은 수학을 공부하는 과정과 다르다.
그림 8 Mastery learning vs Spiral Learning(aop.com)
수학은 한 단원씩 마스터해가며 다음 단원으로 올라간다. 모든 걸 다 배우고 나면, 마
지막에 시험을 친다.
이렇게 공부하는 방법을 “마스터 학습법 Mastery Learning”이라고 부른다. 앞에 배운
게 뒤에 배울 것의 기초가 될 때 하는 공부법이다.
하지만, 일반적으로 개발을 익히는 방법은 그렇지 않다.
먼저 Hello, World를 찍는 간단한 웹프로그램을 짠다. 그 다음 CSS를 입혀 예쁘게
34
만들고, JavaScript를 넣어서 움직이는 기능을 만들어 간다. 마음에 들지 않으면 중간에
다 버리고 새로 짠다.
이렇게 뭔가를 더해 가면서 구현을 하고 이해가 되지 않을 때 필요한 것을 찾아 공부
하는 방식이다.
마치 그림을 배우는 과정과 흡사하다. 계속 새로운 그림을 그리면서 다양한 소재와
그림기법, 그림실력을 키운다. 이렇게 공부하는 방법을 “나선형 학습방식 Spiral
Learning”이라고 한다.
그림 9. Spiral learning model (의학수업 모형, 소프트웨어 교육모형)
“나선형 학습방식”은 원래 “의대 수업”에서 시작되었다. 우리 몸의 장기는 서로 분리
되어 있지만, 분리해서 대처할 수 없기 때문이다. 즉, 복잡하게 엮여 있는 것들을 함께
공부할 때 쓰는 방법이다.
처음에는 간단한 수준을 섞어서 배우고, 시간이 흐를수록 점점 더 복잡한 걸 배운다.
“소프트웨어” 수업에도 “나선형 모델”이 도입되는데 이유는 비슷하다.
컴퓨터도 내부적으로는 복잡하게 얽혀 있어, 하나만 익혀서는 개발을 할 수 없기 때
문이다.
35
마. 코드 리뷰
팀에 막내가 들어오면 대리가 챙겨준다.
기본적으로 “코드”를 본다. 그게 결과물이기 때문이다.
코드를 보며 이런 저런 이야기를 나누는데, 그런 행위를 “코드리뷰”라고 한다.
채점하려고 보는 건 아니다. 소스코드를 병합하거나, 상용에 배포하기 전에 오류 날
만한 게 없는지 더블로 체크하는 거다. 잘못된 게 있으면 불러서 함께 본다.
대리, 과장급이 되면 서버 구조를 칠판에 그린다. 어떻게 짜야 할지, 어떤 결과를 내
야 할지 함께 토론한다.
이렇게 일하는 스타일을 “개발문화”라고 한다. 의역을 하자면 “업무스타일” 정도 된다.
개발자는 기본적으로 이렇게 함께 토의를 하면서 문제를 해결한다.
마음씨가 좋아서 그런 건 아니다.
기업 시스템은 한 명이 감당할 수 없을 정도로 크고 복잡하다. 동료를 가르쳐서 함께
일하는 방식이 생존에 유리하기 때문이다. 협동심이나 의리 같은 감정적 공감대가 생기
지만, 그게 핵심은 아니다.
이런 건 학교에선 어떻게 환경구성을 할까?
이렇게 서로를 챙겨주며 공부하는 방식을 “상호학습법”이라고 한다.
교실 수업에서 “상호학습법”은 아래와 같이 다섯 가지 유형이 있다.
상호학습의 유형 진행 방법
Peer Interaction
상호 작용형
학생들이 상호작용함, 교수자는 관찰, 필요시 개입
- 서로 가르쳐주기, 토론, 그룹학습 등
Peer Response
상호 응답형
교수자가 질문하고, 학생들이 대답함(소크라테스식)
- 학생들도 서로 질문하고 가르쳐줄 수 있음
Peer Collaboration
상호 협력형
학생들이 그룹끼리 협력하고, 교수는 지켜보기만 함
- 문제를 풀거나, 아이디어를 실현하기 위해 협력
- 구조화된 방식으로 진행
36
Peer Feedback
상호 피드백형
학생들이 루브릭을 기준으로 서로 평가하고 피드백 해줌
- “루브릭”은 교수자가 만들어 줌
- 교수자 없이 수업이 진행됨
Peer Facilitated
Instruction
학생 퍼실리테이터형
한 학생이 교수자의 지원을 받아 “퍼실리테이터” 역할을 함
- “퍼실리테이터”는 다른 반 학생이 할 수도 있음
- 학생들끼리 할 수 있도록 교과 개발 필요
범례
표 7. 동료학습의 유형(클라크 길버트 외, 2007, 브링햄영 대학)
“상호응답형”은 교수자의 역할이 커 보이지만 아니다. 메인은 모두 참여 학생들이다.
상위 세가지 유형은 회사에서도 일어나는 방식이다.
팀장이나 CTO가 리딩을 하고, 업무를 목적으로 한다는 점에서 다를 뿐이다.
“상호 피드백형”과 “학생 퍼실리테이터형”은 학교에서 눈 여겨 볼만하다.
교수자의 개입 없이 훈련학습이 가능하기 때문이다.
참고로, “퍼실리테이터”란 “그룹활동의 진행자” 역할을 말하는데, 그룹 내 위계질서를
제거함으로써 소통의 평등성을 이끌어낸다. 그게 경험과 지식의 전이를 이끌어낸다.
강사, 튜터 등의 역할도 있는데 이건 뒤에 다루겠다.
4. 개발자 커뮤니티
개발자를 하면서 커뮤니티 사이트에 계정 하나 없는 사람이 있을까?
단언컨대, 없다! 그만큼 커뮤니티는 개발자에게서 뗄 레야 뗄 수 없는 관계다.
해외 커뮤니티(closeriq.com, 2020) 국내 커뮤니티(블로그하는 어른이, 2021)
1. GitHub
2. Stack Overflow
3. HackerNews
4. Hackernoon
5. Hashnode
6. freeCodeCamp
7. Women Who Code
1. OKKY
2. Stack Overflow
3. GitHub
4. phpschool
5. Taeyo.Net
6. 아이폰데브
7. 안드로이드펍
37
8. Code Project
9. Digital Ocean
10. Reddit
8. 우분투 한국 커뮤니티
표 8. 국내, 해외 개발자 커뮤니티 목록
그런데 적지 않은 사람들이 “개발자 커뮤니티”를 잘못 알고 있다.
초보자들은 학교 동아리처럼 상상한다. 선배가 있고 후배가 있다고 생각한다. 그래서
들어갈까 말까 부담스러워한다.
정부는 “협회”처럼 생각한다. “대표자”가 있고 회원을 통제할 수 있다고 생각한다. 그
래서 자꾸 커뮤니티한테 정부의 숙제를 내려주려고 한다.
모두 틀렸다! 개발자 커뮤니티는 그냥 게임 동아리 같은 거다.
본질적으로는 그냥 느슨한 “기술 포럼”이다. 굳이 이름을 붙이자면 “무엇 무엇을 사용
하는 사람들의 모임” 정도가 되겠다.
개발자들은 새로운 기술이 등장하면 본능적으로 모임을 만든다. 너무 정보가 부족하기
때문이다. 이렇게 개발자 커뮤니티는 다양한 이유와 목적별로 만들어진다.
그런데 이런 커뮤니티에 참여하면 무엇이 좋을까?
1. 동기부여와 기술지원
- 코딩은 혼자 하면 지쳐 버림. 커뮤니티는 조력자처럼 작동함. 서로 도와주는 것만으로도
동기가 유지되고 계속 그 일을 할 수 있음
2. 내 스킬을 개발할 수 있음
- 커뮤니티는 지식 DB 처럼 작동함. 다른 개발자들과 협업할 기회를 자연스레 갖게 됨.
- 기술 토론에 참여하다 보면 내가 업그레이드되는 걸 느낄 수 있음
3. 지식의 전달
- 서로 다른 분야의 사람들과 이야기하다 보면, 지식의 확장이 일어나고 다른 분야에서 일할
기회도 얻게 됨
4. 상호 멘토링
- 일하는 방법, 툴사용법, 코드 봐주기 등 서로에게 다양한 멘토링을 해줄 수 있다.
5. 네트워킹
- 다양한 사람을 사귀는 건 사고의 폭을 넓혀주고 내 지식 DB 를 확장시켜주는 것이다.
- 규칙적으로 밋업, 컨퍼런스, 온라인 이벤트 등에 참여한다.
6. 질문에 답 얻기
- 커뮤니티는 전문가를 찾아 답을 얻는 것보다 더 빨리 응답을 해주기도 한다.
38
- 다른 개발자들은 내 코드의 허점을 쉽게 지적해주기도 한다.
7. 퍼스널 브랜딩
- 개발자들은 콘텐츠, 자료, 답해주기 등으로 커뮤니티에 기여할 수 있다.
- 기업들의 주목도가 높아져 채용, 이직의 기회가 커진다.
표 9. 개발자 커뮤니티의 장점(Koding & Kahawa Developers Community, 2022)
굉장히 많은 장점들이 쓰여 있지만, 사실 이런 건 자동으로 주어지는 게 아니다. 커뮤
니티 내에서 적극적으로 행동할 때 얻어지는 무형의 보상일 뿐이다.
즉, 본질적으로 “커뮤니티”란 동아리라는 형상을 지칭하는 게 아니라, 이렇게 행동하
는 개발자들의 문화적 습성을 지칭한다.
음, 그런데 이걸 학교 현장에 도입할 수 있을까?
있다!!!
집단지성과 집단활동을 교육현장에 활용하고자 하는 연구들이 있었고, 꽤 의미 있는
결과들이 많았다. 그걸 활용하면 된다.
단, 초기에 이런 문화를 세팅할 때, 반드시 이런 문화에 익숙한 CTO들의 참여가 필요
하다. 즉, 문화의 도입은 책이 아니라, 몸으로 만들기 때문이다.
39
제3장. “42”를 만나다.
1. 소개
프랑스 에꼴42는 “컴퓨터 공학과” 학생들만 약 4,000명 정도 있는 5년제 대학교다.
학비전액 무료로 진행되며 정규교육권 이외의 친구들이 주로 들어온다.
교수나 멘토 등, 교육인력들이 전혀 투입되지 않은 채, 학생들만으로 굴러가는 커다란
“커뮤니티 학교”라는 점에서 유명하다.
자율입학, 자율졸업제도로 연간 1,000명 정도 입학하고 1,000명 정도 나가는데, 평균
2~3년 정도 사이에 대부분 취업을 해버린다.
취업해도 학교에 나오는 경우가 있어 평생교육기관적 성격을 띠고 있다.
개발자 양성학교라는 점에서 여러 나라가 주목하고 있으며, 학생들만의 커뮤니티 방식
으로 진행된다는 점에서 혁신학교로 불리기도 한다.
기업 관점에선 2~3년간 코딩훈련을 한 친구들을 받는 거라 비교적 빨리 현장에 투입
할 수 있고, 학교 관점에선 자발적이고 능동적인 친구들을 배출하는 프랑스의 교육정신
을 실현하는 거다.
학생들 관점에선, “아 개발은 이렇게 하는구나”라는 사회적 성장 스킬과, 평생 함께 할
수 있는 개발자 친구들을 사귈 수 있다는 게 큰 장점이다.
교육과정은 “42 커리큘럼”이라고 표현한다.
“학사수준”과 “석사수준”으로 나뉘는데, 수업시간 없이 과제를 풀어 제출하는 것만으
로 진도를 나가며, 학사수준의 과제를 다 풀고 나면 졸업생으로 취급해준다.
진도는 수준에 맞춰 알아서 나가면 되는데, 요구기한이 있어 마냥 늘어질 순 없다.
40
독특한 건 이런 과정과 룰을 정교하게 세팅해서 IT시스템을 제공하는데, 학생들은 이
시스템을 중심으로 활동한다는 것이다.
이 IT시스템은 과제 DB와 학습상황을 제공하는 “웹사이트”와 시험과 훈련환경을 제공
하는 “교육장 인프라”로 나뉜다.
2. 진짜 될까?
교육자 없이 교육을 한다는 거. 굉장히 낯설게 들린다.
교육업계 쪽에선 불가능하거나 우스개 소리라고 치부한다. 그렇게 생각하는 이유는 인
간의 인지구조 때문이다.
배우지 못하고 성장한 친구는 인식수준이 경험적이고 주변세계에 머물러 있다. 성장환
경마다 달라 사람들의 가치관이나 능력들이 정말 제 각각이다.
교육의 역할은 이런 사회적 불균형을 맞추어 주고 국민들의 지적 수준을 올리는데 있
다. 교육방식에 차이가 있을지 언정, 교육자의 외적 개입은 반드시 필요하다.
42 교육도 마찬가지다.
42 교육은 강의를 통해 수업을 전달하는 행위가 없을 뿐, 학생들이 스스로 학습할 수
있도록 교육환경을 설계해주는 설계자는 있다.
그 교육방식의 특징이 기존의 “교수-수업 방식”을 따르지 않을 뿐, 엄연히 우리나라에
도 존재하고 있고, 연구되고 있는 학습법이다.
교육은 여전히 그 교육설계자의 의도대로 흘러간다.
학생들은 스스로 학습을 하고, 서로에게 의지하며 성장하고, 시험을 통해 실력을 확인
하고, 기업과 만남으로서 사회로 나갈 준비를 한다.
41
3. 학생들 사례
가. 전공학과 졸업생
“김전공”씨는 A대학교 컴퓨터 공학과에 다닌다. 올해 졸업반인데 아직 자신이 없다.
다른 친구들은 코딩테스트를 본다, 알고리즘 문제를 푼다 하는데, 나는 이론 수업만
듣다 보니 이렇게 취업할 수 있을까 하는 의심이 들었다.
그래서 이번 여름 방학 때 42캠퍼스에 들어왔다. 어떤 매력을 느꼈다기 보단, 프랑스
스타일은 어떨지 궁금했다. 막연히 뭔가 해야 한다는 의무감도 있었다.
42커리큘럼은 학교에서 배운 내용이랑 비슷했다. 과제스타일이 생소하긴 했지만, 전공
과목을 열심히 한 덕분에 어렵지 않게 문제를 푼 것 같다.
전부 코딩해서 제출하는 것도 재미있었고, 동료평가를 하는 중에 많은 친구들과 이런
저런 이야기를 하는 것도 재미있었다.
그룹 과제는 좀 어려웠다. 해야 할 코딩분량도 많았지만, 친구들과 역할을 나누는 과
정에서 불협화음도 있었다. 두 번 정도 팀이 깨지는 바람에 기한에 촉박하게 끝내야 했
던 게 좀 아쉬웠다.
그런데 학사 과정을 다 끝내고 나니 좀 허탈하긴 하다. 이걸로 충분한가 라는 궁금증
은 여전히 남는다.
다른 친구들이 여기저기 원서를 낸다고 하니 나도 원서를 내볼 생각이다.
나. 비전공학과 졸업생
“노전공”은 B대학교 프랑스어 학과를 다닌다. 올해 대학교 4학년이다.
개발을 공부하고 싶은데, 복수전공을 할 시간적, 금전적 여유는 없었다. 그렇다고 주변
에 개발을 물어볼 사람도 없었다.
이번에 “에꼴42”가 들어온다고 하니 관심이 생겼다. 프랑스어 학과인 만큼 이 학교가
42
어떤 학교인지는 잘 알고 있다. 기대된다.
잠시 휴학을 하고 풀타임으로는 1년 정도를 투자할 계획이다.
42에 와서 가장 좋았던 건 물어볼 친구가 많다는 것이다. 그리고 모두 다 친절하다.
처음엔 어떻게 시작해야 할지, 어디서부터 시작해야 할지 막막했다.
그런데 “모르면 왼쪽의 동료에게 물어봐라 그가 모르면 오른쪽의 동료에게 물어봐라”
는 42격언에 따라 열심히 물어봤다. 다들 너무 친절하게 가르쳐줘서 고마웠다.
커리큘럼은 여전히 어렵다. 지금도 친구들의 도움을 많이 받고 있다. 어떤 건 설렁설
렁 넘어가지만, 어떻게 해야 코딩을 할 수 있게 되는지는 확실히 알게 되었다.
지금은 커리큘럼을 따라가는 것 외, 친구들끼리 “파이썬 스터디”를 하고 있다.
프랑스어 학과 친구들은 능수능란하게 코딩을 하는 내 모습을 보며 놀란다.
어떤 기업에 취업할 수 있을런지 아직 모르겠지만, 일단 부딪혀봐야 할 것 같다.
다. 창업희망자
“강창업”씨는 경영학과를 다닌다. 여행을 엄청 좋아해서 “마이리얼트립” 같은 여행사
업을 하고 싶어 한다.
학교를 다니면서 친구들과 작은 스타트업을 해봤다. 외주로 일을 맡겼는데 함께 일을
진행해보면서 알게 되었다. 이렇게 해선 답이 없다는 것을.
일을 주기 위해서는 나도 어느 정도 소프트웨어 개발을 알아야 하겠다는 생각을 했다.
온라인 강의를 들어볼까 하다가 42에 들어왔다.
여긴 개발자 친구들이 많아서 좋다. 여기 있는 동안 함께 일할 만한 친구들을 찾아서
졸업하는 게 목표이다.
그런데 커리큘럼이 너무 어렵다. 지금 하고 있는 과제도 잘 이해되지 않는다. 파이썬
이나 node.js 같은 것도 많은데 지금 이걸 하는 게 도움이 되는지 모르겠다.
43
4. 회고
가. 멘토로서 3년
이노베이션 아카데미에서 멘토의 역할은 “교육지원자”이면서 “교육설계자”였다.
단기적으로 42를 도입했으나, 결국은 우리 시장에 맞는 교육모델이 필요했다.
3년 동안 1,200회 이상 학생들과 면담하면서 코칭, 퍼실리테이팅 같은 (멘토)약결합
방식도 해보고, 멘토들이 강하게 리딩하는 강결합 교육도 해보았다.
굉장히 흥미 있고 깨닫는 게 많았다. 먼저 핵심만 정리해본다.
첫째, “교육방식”은 생각보다 잘 작동한다.
우리 학생들이 자발적이지 않을 거라는 우려는 기우였다.
대부분의 학생들은 규범과 규율에 억눌려 있는 느낌이었다. 초반에 어떤 제한을 해제
하고 나면 학생들은 기꺼이 자발적으로 움직였다.
동료학습은 초반에 어려웠다.
어떻게 서로를 도와줘야 하는지 한 번도 경험해 본적이 없었기 때문이다. 처음에는
너무 잘 해주다가 번아웃되기도 했다. 누군가 적절성을 규정해 주길 바랐지만, 나중에는
학생들은 적절한 지점을 스스로 찾아갔다.
같은 과제를 한다는 것, 다 함께 코딩을 한다는 것. 이런 동질감이 서로에 대한 거리
감을 없애 주었다.
서로의 관심사가 다르다는 건 인정했다. 뭔가 불균형에서 오는 이질감은 여전히 존재
했지만, 함께 한다는 동료의식이 상황을 안정시켰다.
1,000명 이상의 대집단이라 이합집산이 자유로운 게 큰 도움이 되었다.
집단활동은 필연적으로 갈등을 포함하는데, 헤어지면 이게 다 사라진다. 대집단이니까,
학생들은 알아서 짝이 될 만한 사람들을 잘 찾아다녔다.
44
둘째, 딱 “학교 프로그램”이다.
밟아야 할 코스웍은 있지만, 완전자율학습 방식인 데다 동료들을 땔감으로 삼아 성장
하는 방식이라, 많이 헤맬 수밖에 없고 불확실성에 시달릴 수밖에 없다.
어떤 동료를 만나냐에 따라, 학습진도나 학습수준, 학습속도의 편차가 심했다.
그러다 보니 충분한 시간이 없으면 학습이 일어나기 어려운 구조다. 최소 1년 상의
시간을 기다려준다면 학생들의 실력은 일반대학과 비슷할 거다.
하겠지만, 3개월 미만의 단기수업은 운영하기 어렵다는 생각이 들었다. 학생들이 충분
히 실패해 볼 시간여유가 없기 때문이다.
즉, 전체 시스템이 너무 3~5년짜리 프랑스 학제에 맞춰져 있다는 생각이 들었다.
셋째, “취업 프로그램”이 약하다.
프랑스에선 모든 그랑제꼴 취업률이 거의 100%다. 제도적으로 뒷받침되기 때문이다.
그러다 보니 42는 특별한 취업프로그램을 가지고 있지 않다. 학교가 따로 챙겨주지
않아도, 학생들이 알아서 인턴을 하고, 알아서 원서를 내고, 알아서 취업을 한다.
하지만 우리나라의 취업사정은 다르다.
적지 않은 회사들이 인턴을 기피한다. 일하는데 부담되기 때문이다. 어떤 회사는 신입
사원 채용을 피하고, 어떤 회사는 학생들이 기피한다.
그러다 보니 대졸자 첫해 취업률이 65%(2020년)8 밖에 되지 않는다. 그 중에 20%는
첫해 이직을 한다.
취업도 어렵고 직장 적응도 힘든 거다. 즉, 학교의 취업 지원 전략이 프랑스와는 달라
8
출처 : 대졸자 취업률 (한국교육개발원, 취업통계연보 index.go.kr, 2020년)
45
야 한다.
일례로, 기본 커리큘럼을 21명의 CTO에게 보여 드리니, 채용을 긍정적으로 고려하겠
다는 분이 48% 밖에 되지 않았다.
어떤 교육을 더 하면 좋겠냐고 물었더니, 실무형 프로젝트나 제품 만들기를 하면 좋
겠다는 응답이 69%나 되었다.
즉, 42 커리큘럼만으로는 우리나라 기업을 설득하기 힘들다는 거다.
나. 42의 한계
프랑스는 교육제도의 특성상 학업을 마치지 못하는 경우가 많다. 그래서 취약계층을
대상으로 한 장외의 교육프로그램들이 많다.
에꼴42도 이런 포지션에 있는 학교다. 그래서 열림 선발이나 학비무료, 24시간 학교
개방, 생존역량 같은 것들을 매우 중요하게 여긴다.
오랜 식민지 활동으로 민족 구성이 복잡하기 때문에 다문화 가치관, 성평등 가치관
등도 중요하게 생각한다. 이런 것들이 커뮤니티 내 갈등의 불씨이기 때문이다.
하지만, 우리나라는 상황이 다르다.
단일민족이라 갈등의 양상이 세대갈등, 남녀갈등으로 표출된다. 그런데 이걸 어떻게
다루어야 할지 알려진 노하우가 없다.
그리고 대학진학률이 높아 지원자의 대부분은 대학생들이다. 열린 선발로 뽑기 때문에
오히려 취약계층에게 기회가 가지 않는 경향이 있다.
대학생 친구들은 대부분 휴학을 하거나 학교수업과 병행한다.
그런데 3년이라는 학업시간은 휴학을 하기에는 긴 기간이다.
학생들은 보통 1년 휴학 후 “공통과정”을 돌파하고, 학교 복귀 후 병행학습을 하고자
46
하는데 생각보다 쉽지 않다.
학교 수업과 병행을 하기에는 쉽지 않다. 학습량 생각보다 많고 일정이 빡세기 때문
이다. 그래서 중간쯤 이탈하는 경우가 많다.
하지만 중도 이탈률이 높아지면 집단의 수가 작아져서 동료학습이 잘 되지 않는다.
실제로 1년이 좀 넘게 지나면 어떤 그룹은 함께 입학했던 친구들의 2/3가 이미 취업
한 상태가 된다. 남은 친구들은 의욕이 사라져 학업을 지속하지 못한다.
교육모델 자체가 높은 수준의 교육을 시키기엔 어려운 구조다.
반면, 교육만족도는 높은 편이다. 학교에서 못하는 코딩연습을 할 수 있기 때문이다.
42는 정확히 컴퓨터공학과 전문대 과정에 대한 “대체 학교 과정”으로 동작한다.
그런데 우리나라는 이미 그런 학교들이 많다. 경쟁학교를 굳이 꼽자면 한국폴리텍대학
이나 방송통신대학 정도 될 것 같다.
42는 분명히 혁신적이고 우수한 학교지만, 이런 우리나라 분위기 속에서 잘 생존할
수 있을까라는 질문에 대해서는 확신할 수 없다.
프랑스는 인턴쉽 제도가 잘 발달되어 있다. 그래서 42에는 취업 프로그램이 없다.
하지만 우리나라는 아니다. 기업들이 인턴을 기피한다. 지원제도도 약하다.
“대학이 기업과 동떨어져 있어서 일자리 매칭 문제가 안 풀린다.”
이건 모든 대학들이 공통적으로 가지고 있는 고민이다.
이건 혁신 교육을 시작하게 된 계기이기도 하다.
“에꼴42”가 이 문제를 풀 수 없다면, 아무리 좋은 교육이라도 우리 시장에선 생존하
기 힘들 거라고 본다.
47
다. 42의 가치
그렇다면, 42는 가치가 없는 걸까? 그렇지 않다.
정리하자면, 42의 교육내용 자체는 특이하지 않다.
그냥 컴퓨터공학과의 “자유로운 버전”이다.
반면, “교육방식”은 특이하다.
42가 교육방식의 혁신을 택한 이유는, “파이썬”이 아니라 “생존스킬”을 가르치기 위한
거다. 좀 더 범위가 넓다.
이건 우리나라의 산업계에서도 환영할 만한 일이다.
요즘 기업들은 학생들의 수동적인 태도 때문에 함께 일하기 매우 어려워한다.
스스로 자기가치를 알아서 증명해야 하는 직업인이 아니라, 학교가 모든 걸 챙겨주는
학생처럼 행동하기 때문이다.
처음에는 학생들 개인의 문제라고 생각했다. 하지만, 수백 번 학생들과 면담하면서 우
리 사회의 교육 문제임을 알게 되었다.
여기 학교에 처음 온 친구들은 매우 수동적이고 무언가에 찌들려 있다.
자존감이 매우 매우 낮다.
하지만, 어떤 깨달음이 온 순간, 급격하게 성장을 한다.
즉, 학습능력이나 역량이 뒤떨어지는 게 결코 아니다. 다만, 모은 것에 주눅 들어있고
누군가 결정해주기를 바란다는 게 문제다.
그런 사람이 회사에서 자기 몫을 잘 해낼 리 없다.
“커뮤니티 방식”으로 운영된다는 것도 주목할 만했다.
48
훈련 커리큘럼을 만들어 DB에 넣고, 교육기능을 완전히 IT시스템으로 구현했다는 건
신선한 충격이었다.
“IT시스템”을 교육현장에 보급하고 “학습커뮤니티”를 만들어준다면, 강사를 구하지 못
하는 곳에서도 소프트웨어 교육을 할 수 있겠다는 생각이 들었다.
물론 어려움이 있겠지만 충분히 고민해 볼만한 가치가 있다.
49
제4장. “42”를 이해하다.
1. 에꼴42란?
가. 프랑스의 대학교육
에꼴42를 이해하기 위해 프랑스의 교육현황을 간단히 알아보자.
프랑스의 대학은 크게 3가지로 나뉜다.
“일반대학” Université , “그랑제꼴” Grandes écoles, “에꼴” école supérieure
그림 10. 한국의 학제 대비 프랑스 학제(2009, 교육과정.교육평가 국제동향연구)
“일반대학”은 국공립대학으로 공교육을 제공한다.
학사 3년, 석사 2년, 박사 3년으로 운영되는데 학비가 낮은 대신 진급이 빡세다.
50
매 학년 진급고사를 치르는데 졸업할 때까지 20%가 떨어져 나간다.
“교양인”과 “학자양성”을 목표로 하며, 수업과 이론중심으로 교육한다.
“에꼴”은 “전문직업학교”로 “실업교육”을 담당한다.
예술, 건축, 관광 등 특정 직업군을 기르는 곳이며 2년~4년제로 운영된다. 역시 학비
가 저렴하다. 예술학교로 유명한 “루이 뤼미에르 국립학교9”의 경우, 학비를 자국민에게는
무료, 외국인에게는 연간 300유로 정도만 받는다.
“그랑제꼴”은 특수목적으로 설립된 사립대학으로 “엘리트 교육”을 담당한다.
“고등 사범대”, “국립행정학교” 같은 곳인데 역시 5년제로 운영된다.
졸업만 하면 출세가 보장되기 때문에 입학 자체가 어렵다. 2년 정도 준비해야 들어갈
수 있기 때문에, 사교육 열풍의 주인공이기도 하다.
졸업하면 바로 실무에 투입하다 보니 교육과정 전체를 현업 전문가들이 가르친다. 강
사 구하기가 어려워 학기마다 강사가 바뀌기도 한다.
프랑스는 우리나라와는 달리 공교육이 일반화되어 있다.
대학교육 학비가 연간 200유로 정도이기 때문에 거의 무상교육이라고 할 수 있다.
서열화를 막고 평생기술을 가질 수 있도록 돕는다. 개인의 성향이나 능력에 맞게 자
기 직업을 개발하는데 초점이 맞추어져 있다. 그래서 기술분야별로 특성화된 대학들이
다양하게 많이 있다. 제빵학교나 요리학교가 있는 것도 그런 이유 때문이다.
그래서 교육부문에선 프랑스를 많이 벤치마킹 한다.
하지만, 프랑스는 IT산업이 강국인 나라는 아니다. 대부분 서비스업에 종사하고 있으
며, IT산업에 대한 투자는 비교적 최근에 시작을 했다.
9
루이 뤼미에르 국립학교 : 프랑스 교육부 산하의 고등교육기관으로, 영화, 사진, 음향 세 가지 분야의
교육과정을 시행한다. 학생은 총 150여명에 불과하다.
51
에꼴42를 볼 때 이런 상황을 충분히 감안할 필요가 있다.
나. 설립이야기
“에꼴42”의 고유명칭은 “42”이다. “에꼴”은 프랑스어로 그냥 “학교”라는 뜻이다.
즉, “42”는 교육과정의 이름이면서 학교이름이면서 이를 운영하는 법인이름이다.
42는 억만장자 “자비에르 니엘”이 프랑스의 현재 교육을 비판하며, 제도권 밖의 사람
들에게 교육기회를 주고자 2013년 파리에 세운 학교다.
1억 유로(한화 1,387억원)를 기부, 학비 전액 무료 과정으로 운영하고 있다.
그림 11. 42 교육모델의 특징
교육시스템은 “니콜라스 사디락” 교수가 에피텍(Epiech)대학에서 함께 일하던 팀을 데
리고 나와 만들었는데, 물고기가 아닌 물고기 잡는 법을 가르치기 위해 독특한 교육방식
을 사용하는 것으로 유명하다.
42의 설립은 2013년이었지만 독특한 교육방식은 1999년 에피텍 대학까지 거슬러 올
라간다. 즉 교육현장에서 20년 이상 다듬어진 교육법이다.
1995년 사디락 교수는 에피타 대학의 보안근무자로 일을 했는데, 학생들 커뮤니티를
52
만들어 학교시스템의 필요한 기능을 개발하고 운영했다.
이 때의 개발팀을 “보컬”10이라고 불렀다.
1999년 에피타 대학이 IONIS 교육그룹의 회원사로 합류를 하면서, 석사과정에 준하
는 2년제 특수과정을 만들기로 했는데, 이 때 사디락 교수는 “보컬팀”과 새로운 교육과
정을 만들면서 에피텍이 시작되었다.
“보컬팀”은 교육모델을 설계하고, IT시스템을 개발, 교육이 운영되는 과정을 전부 관리
했는데, 42가 설립될 때도 그렇게 일을 했다.
지금의 에피텍은 유럽전역에 17개 캠퍼스가 있고, 총학생수가 5,000명, 교직원수는
200명에 달하는 큰 국제학교가 되었다.
하지만, 몇 가지 과정은 제도권 하에서 실행하지 못했는데, 2010년 “Zup de Co협회
11 ”내에 사회봉사과정으로 “웹아카데미 Web@cademie”를 개설하면서, 학생들 만으로
운영되는 학교모델을 완전히 성공시킨다.
42를 세우게 된 건, “웹아카데미” 1회 졸업생이 “자비에르 니엘”의 회사에 취업, 임원
회의에 우연히 참석했는데, “자비에르”가 그녀의 총명함을 알아보고 이 학교에 관심을 가
지게 된 것이 설립의 계기가 되었다.
당시 그녀는 고등학교를 중퇴하고, 애견카페에서 일을 하다 2년동안 이 과정을 밟았
는데, 그녀의 학습과정을 듣고 자비에르는 큰 감명을 받았다.
42는 에피텍부터 시작되었지만 가는 길은 다르다. 에피텍이 그랑제꼴 과정으로 사회
의 엘리트 교육을 담당하고 있다면, 42는 비제도권에서 보편교육을 담당하고 있다.
10
“보컬” : Bocal, 바순 악기에 들어가는 구부러진 금속 취구관. 특별한 의미 없이 사용되었으나, 당시의
개발팀을 지칭, 42에서도 교육팀이자, 개발팀이자, 교육운영팀인 메인팀을 “보컬”이라 부른다.
11
Zup de Co : 2007년 설립, 취약계층 학생들을 교육시키는 비영리교육기관으로 자원봉사자들에 의해 운
영이 된다.
53
42는 “그랑제꼴드누메릭”이라는 공익단체에 가입되어 있는데, 이는 사회적 약자나 농
민들이 IT 일자리를 갖도록 도와주는 곳으로, 42교육의 정체성을 명확히 알 수 있다.
다. 혁신성
42가 보편교육을 지향하면서, 여러 가지 교육모델들이 바뀌었다.
교육의 정체성을 “지식전달”이 아니라 “생존 스킬 훈련방식”으로 바꾸었다. 파이썬을
가르치는 것보다, 파이썬을 스스로 익힐 수 있도록 한 거다.
학생들이 스스로 알아서 해야 하니 가장 먼저 교수자를 걷어냈다. 기존 교육시스템에
선 “교수자”가 교육을 리딩하기 때문이다.
교수자의 빈자리를 동료들이 채우도록 했다. 다만 교수자가 없으므로 전문적인 내용은
익히긴 어려웠다. 교육내용을 범용적인 부분으로 한정했다.
교수가 없어지면서 수업도 없앴다.
학생들이 과제를 풀면 진도가 나가도록 프로그램을 짰다. 20개 정도 풀면 컴퓨터공학
과 4년 과정을 마스터할 수 있도록 했다. 이게 가능한 건 참고할 내용들이 책이나 영상
으로 충분히 나와 있기 때문이다.
교수자와 수업일정이 없으니, 학생들이 알아서 진도를 나가야 하는데 이게 어렵다. 학
업분위기 조성이 중요했다. 고립되지 않고 서로를 챙겨서 함께 갈 수 있도록 분위기를
만들었다.
산업사회 관점에선 특별할 게 없는 이야기들이다. 사회로 나서는 순간 직장인들은 모
두 이렇게 살아야 하기 때문이다.
다만, “교육업계”는 다르다. 매우 주목을 하고 있다. 기존의 교육 방식으로는 소프트웨
어 교육을 감당하기 힘들기 때문이다. 중학생까지는 “스크래치”로 커버할 수 있지만, 고
등학생에게 필요한 교육도구는 없다. 담당 교원도 부족하다.
대학교의 경우는 더하다. 새로운 기술이 해마다 등장하는 데 거기에 맞추어 교육과정
54
을 업데이트하기 어렵다. 별다른 지침도 없고 어떻게 교육시켜야 할지 감을 잡기도 어렵
다.
제일 힘든 게 교수나 강사를 구할 수 없어 교과수업을 시작하기도 어렵다.
그래서 새로운 교육방식이나 교육모델에 대한 관심이 높다. 42에 대한 기대도 그런
관점에서 출발한다.
라. 판타지와 현실
3無 교육(No Teachers, No Courses, No Classes)이라고 하면 다들 환타지를 가진다.
“아니, 선생님 없이 학생들이 알아서 성장한다고?”
“그러면 이제 선생님이 필요 없는 거야?”
아니다! 그렇게 이해하는 건 “판타지”다.
“교수자 강습방식”에서 “집단학습방식”으로 바뀌는 등 여러 가지 교육방식이 변하지만,
교육은 교육이다.
교수자의 역할도 수업(교육진행)만 사라질 뿐, 교육설계와 평가관리의 역할은 그대로
남아있다.
42 에선 파리캠퍼스의 “Pedagogy”팀이 교육설계와 교육평가를 맡는다.
새로운 교육이 필요하면 “Pedagogy”팀이 고민하여 과제를 설계한다.
평가관리는 정기적으로 실시되는 시험와 동료평가의 결과를 보고, 교육이 제대로 진행
되는지 진단한다.
교육진행은 각 캠퍼스의 교육운영팀이 담당하며, 과제수행이 적절한 속도로 이루어지
도록 학생들을 압박한다.
42 교육은 방치교육은 아니다. 스스로 할 수 있게끔 돌봐 주는 “돌봄교육”이다. 직접
적으로 강의하는 행위가 없어졌을 뿐, 여전히 교육기관의 역할을 하고 있다.
55
마. 교육목표
42는 어떤 교육목표를 가지고 있을까?
어떤 사람을 길러내기 위해 그런 교육방식을 선택했을까?
42는 자기네 홈페이지에 이렇게 정체성을 밝히고 있다.
“42는 다양성과 포용성의 힘을 믿는다. 우리 교육모델은, 이론 교육보다 프로젝트에 기반한 학습
과 팀워크 훈련에 초점을 맞추고 있다. 우리는 최신의 교육혁신 방식과 모델들을 통합하면서, 차
세대 IT 인재들의 역량을 강화시키는 걸 목표로 하고 있다.” – 42.fr
즉, 42의 목표이자 핵심가치는 “다양성” 과 “포용성” 이다.
무슨 소리인가 하겠지만, “다양성”과 “포용성”은 프랑스가 교육법에 명시한 일반적이고
보편적인 가치이며, 프랑스의 모든 학교가 이 정체성을 따른다.
즉, 42 도 프랑스 학교로서 보편적인 지향점과 가치관을 따라간 것이다.
비전은 무엇일까? 그들은 이렇게 말하고 있다.
2013년 설립 이후, 우리는 혁신적인 교육방법으로 최고의 IT교육을 최대한 많은 사람들에게 제공
하려고 노력해왔다. 고등교육부문에서 세계적으로 독특한 이 포지션은 “개방성”, “학비무료”, “우수
성” 같은 가치들에 기반하고 있다. 우리의 최종 목표는 IT전문가들을 (발굴하여) 고용시장에 지속
적으로 합류시키는 것이다.
그런데 이건 프랑스의 교육상황과 직결된다.
프랑스는 1968년 이후 공교육이 일반화되면서 대학이 평준화되었다. 모두 국공립화
되면서 연간 200유로만 되면 대학을 갈 수 있게 된 거다.
대신 그랑제꼴이라는 사립대학이 엘리트 교육을 담당하게 되었다. 완전 실습과정으로
이루어진 출세코스로 학비가 연간 11,000~15,000유로가 된다.
2013년 이전에는 제대로 된 코딩교육을 접할 수 있는 케이스가 “그랑제꼴” 밖에 없
56
었다. 그러다 보니 자비에르 니엘은 재능 있는 친구들이 코딩을 배울 기회를 얻지 못한
다고 당시 교육을 비판했다.
즉, 에피텍에서 하던 그랑제꼴 과정을 42라는 무료교육과정으로 풀어버린 거다.
대단히 파괴적이고 혁신적인 도전이 아닐 수 없다.
그런데 고민이 된다. 우리나라가 처한 상황과는 많이 다르다.
과연 어떤 시각에선 어떻게 해석할 것인가? 이게 숙제다.
2. 교육 동작방식
가. 놀이터 학습
그림 12. 42의 교육환경
“42교육을 한마디로 설명해주세요.” 라고 누가 묻는다면 한마디로 대답할 수 있다.
“42는 환경교육이자 놀이터 교육입니다.”
42는 환경을 설계하고 거기에서 학생들이 놀게 하는 교육법이다. 다만, 성인 놀이터이
고 모든 걸 스스로 해야 한다는 압박감이 있다.
“교육의 질”은 “구성된 환경”에 크게 좌우된다.
57
교육장, 노트북, 네트워크 인프라, 서버 환경 등이 중요하다.
특히 요즘은 개인화된 노트북이 없으면 현대 소프트웨어 교육은 잘 되지 않는다.
“교육내용”은 하드 스킬과 소프트 스킬로 나뉘는데, “하드 스킬”은 교육 콘텐츠와 커
리큘럼 등이 결정한다. “소프트 스킬”은 “교육방식”이 결정한다.
“교육설계자”는 이렇게 교육에 필요한 놀이기구를 설계하고 만든다.
직접 가르치는 행위가 없는 만큼 꽤 철학적이고 정교해야 한다. 학생들이 따라가야만
하는 통로 하나를 만들어주는 게 아니라, 문제를 해결할 때 집어 쓸 수 있는 도구를 만
들어줘야 한다.
“교육운영자”는 학생들이 제대로 학습하는지를 관찰하고 도와준다. 학생들끼리 스스로
해야 하지만 의도된 학습활동이 일어나지 않을 때는 개입하여 가이드 한다.
“어린이집” 모습과 비슷하다. 이런 교육방식을 “구성주의 학습모델”이라고 한다. “구성
주의 학습”에선 교수자가 직접 개입하지 않기 때문에, “놀이환경” 설계가 중요하다. 즉,
놀이환경이 곧 교육환경이다.
42는 중앙집중식으로 운영된다. 교육환경 설계는 파리캠퍼스가 담당하고, 다른 캠퍼스
는 “교육운영”만 한다. 각 캠퍼스에서 자기들만의 교육을 할 수는 있지만, 42 시스템과는
별도로 운영해야 한다.
42는 “교육운영”도 상당부분 학생들 참여로 채운다. “자원봉사”, “동료평가”등 제도적,
비제도적 방식들로 교육진행에 필요한 노동력을 해결한다. 이것 또한 커뮤니티가 동작하
는 방식이다.
58
나. 학습 커뮤니티
그림 13. 42의 커뮤니티 학습방식
“성인사회”에서 “놀이터”는 “커뮤니티”가 된다.
42 학생들은 자신들을 커뮤니티라 부르고 실제로 개발자 커뮤니티처럼 행동한다.
함께 할 동료를 찾고, 학습일정 수립, 필요한 교재 조달, 샘플코드 검색 등 모든 걸
스스로 알아서 한다.
이런 걸 해보지 않았다면 학생들에겐 모든 게 다 스트레스가 된다. 하지만, 이런 과정
이 도움이 된다는 걸 알게 되면, 학생들은 생각보다 빨리 적응해 나간다.
그래서 커뮤니티 내에 좋은 경험들이 자리잡게 하는 게 엄청 중요하다. 일단 선순환
하기 시작하면 계속 선순환 한다.
다만, 악순환이 되면 계속 악순환 된다. 그래서 이상한 분위기가 자리잡지 않게끔 꾸
준히 관리를 해야 한다. 일반적인 커뮤니티 특성을 그대로 따른다.
42 캠퍼스는 학생들이 부정행위를 하거나 문제행위를 일으키면 즉시 스태프에게 보고
가 된다. 스태프는 이런 상황에 대해 굉장히 엄격하게 큰 패널티를 주거나, 개선의 여지
가 없다면 퇴학을 시켜버린다.
실제로 42는 “WURI(세계대학교 영향성 평가)”의 도덕적 가치 부문에서 매년 1,2등을
차지하고 있다.
그만큼 커뮤니티 기반 교육은 분위기 관리가 중요하다.
이 분위기가 곧 “커뮤니티 문화”이며 교육의 질을 결정한다.
59
3. 교육모델
가. 교육철학
“사디락 교수”가 해외 강연을 나오면 종종 이런 이야기를 한다.
“42는 능동적 교육철학(Active Pedagogy)와 구성주의(Constructivism)을 따른다.”
“능동적 교육방식”과 “구성주의”는 “교육학”쪽 용어다.
일반 개발자들은 들어볼 일이 없지만, 교육대학생들은 학부과정 중에 배우는 용어다.
이 이야기를 하자면 너무 길어서 핵심만 요약을 해본다.
대구분 소분류
구조주의 구성주의
구조주의(객관주의) 인지적 구성주의 사회적 구성주의
교육의
특징
등장배경 사회는 규칙으로 규명가능, 통제
및 예측 가능
사회는 불확실, 복잡, 독특, 가치관이 충돌하는 곳
교육의
정의
지식을 이해하고 기억하는 것 지식을 응용할 수 있게 되는 것 (문제해결능력, 창의력)
교육의
목표
진리와 일치하는 지식을
습득하는 것
습득된 개인경험을 사회적,
문화적 타당성에 맞추어줌.
상호작용을 통해 사회.문화적
요소를 습득하는 것
패러다임 Teaching
(잘 가르치키)
Teaching – Learning
(잘 가르치고 잘 배우기)
Learning 우선
(스스로 학습하기)
기타 발생시기 1920 년대(소쉬르) 1920 년대(피아제) 1960 년대(비고츠스키)
교육사례 전통적인 강의교육 (높은 지식을
가진 교사가 중요)
도제식 교육 (도전과제,
인지과정이 중요)
학습공동체, 에꼴 42
(학습이 일어나는 커뮤니티
환경, 보고 따라할 수 있는
롤모델이 중요)
장점 대량인원, 동시교육이 가능
지식형성기에 적합
탐구형 + 연구형 + 과학적
인재
탐구형 인재육성에 적합
창의적사고 + 행동형 +
다양한가치
사회적, 도전형 인재육성에 적합
교수자가 필요없음
단점 교사가 없으면 교육 불가능
빠른 환경 변화시 효용성이
낮음
상상력, 창의력은 관심밖 만남의 공간 부재시 교육효과
없음
폐쇄적 운용시 신규 지식 유입
불가
표 10. 구조주의, 구성주의 교육철학의 차이
60
전통적인 교육은 “구조주의” 라고 한다.
“세상에는 구조화된 지식체계가 있고 그걸 1장부터 10장까지 전달하는 게 교육의 본
질이다, 그걸 아는 사람이 모르는 사람에게 가르치는 게 교육이다” 라고 생각한다.
구조주의 교육의 장점은 강의실에서 이루어지기 때문에, 대량으로 교육이 가능하다는
것이다. 단점으로는 지식전달에는 적합하지만 기술습득이나 훈련에는 적합하지 않다는 것
이다.
기술습득은 뭔가를 해봐야 하는데, 그러려면 학습자가 뭔가를 하고 싶어 져야 되기
때문이다.
“구성주의”는 “지식은 문화와 경험을 통해 학습되는 것이다”라는 관점을 가진다.
그래서 경험과 문화가 잘 전달될 수 있도록 환경을 구성하는 것에 노력을 기울인다.
장점은 자기가 하고 싶어 지는 환경을 만들어 준다는 것이다.
한 명의 스승을 두어 욕구를 자극하는 것이 “인지적 구성주의”다. 효과는 좋은데 한
명이 한 명 밖에 못 가르친다. 교육의 품질은 좋지만, 보급성이 엄청 낮은 거다.
반면, 또래들끼리 사회를 만들어 욕구를 자극하는 것이 “사회적 구성주의”다.
교수자가 없어도 되기 때문에, 교육의 확장성과 보급성은 높은 반면, 지식수준을 높이
는 데는 한계가 있다.
42는 강력한 “사회적 구성주의” 성향을 가지고 있는데, 정체성을 기술지식을 가르치
는 것보다, 기술지식을 배울 수 있도록 “소프트 스킬”을 만드는 것에 초점을 두고 있기
때문이다.
그래서 “배우는 법을 배운다.(Learn to learn)”, “문제 해결력을 익힌다”. 이렇게 표현
하고 있다.
부족한 전문지식은 어떻게 하나? 42는 그건 학교의 역할은 아니라고 본다. 학생들이
빨리 사회로 나가서 사회속에서 성장하기를 바라고 있다.
61
나. 교육과정
교육과정은 “커리큘럼”이라고 부른다. 교재처럼 1장부터 10장까지 나누어져 있지 않
고, 여러 개의 “학습과제”들로 이루어져 있다.
그림 14. 42 커리큘럼 (출처: 42 Heilbronn)
모든 “학습과제”는 “프로젝트 기반 학습방식”(Project based learning, 이하 PBL)으로
만들어져 있다. 문제와 여러 가지 제한 사항을 주고 알아서 코드를 짜오게 한다.
정답은 없다. 사람마다 다를 수 있다. 오픈북으로 치러지는 중간고사처럼 학생들은 나
름대로의 코드를 짜서 시스템에 제출한다.
기본적으로 동작하는 코드이어야 하며, 동료들과 코드리뷰를 통해 PASS를 받아야 다
음 단계로 나갈 수 있다.
“학습과정”은 “학습과제”들로 구성되어 있는데, 크게 2단계로 구분된다.
1단계는 동심원 안의 과정으로 “공통과정(Common core)”라고 부른다.
C 로 Unix를 해체시켜 보는 과제들인데 “컴퓨터 기초과정”에 된다. 전공학과 “필수과
목”들인데, 비전공자가 모든 과제를 푸는데 평균 1.5년 정도 걸린다.
62
2단계는 동심원 바깥의 과정으로 “Specialty step”인데, 의역을 하면 “심화과정” 정도
된다. 여기에는 AI, 모바일앱 같은 실무과제들이나 기업실무 과제들이 포함되어 있다.
1단계를 끝내고 나면, 시스템에 “42member”로 자격이 찍힌다. 그 전에는 “Learner”
이다. 굳이 우리나라 학제와 비교를 하자면, 1단계는 학사, 2단계는 석사레벨이라 할 수
있다.
예를 들어, “철학자의 식탁”문제가 42 교육과정에도 중간쯤에 배치되어 있다.
“철학자의 식탁”이란 컴퓨터의 Dead lock 문제를 상징하는 대표적인 사례로, 전공학
과 3학때쯤 배운다. 전 세계에도 널리 활용되는 예제이다.
과제의 난이도는 기하급수적으로 높아진다. 처음에는 혼자서 할 수 있지만, 중간쯤부
터는 반드시 동료들과 함께 해야 한다. 어렵다기 보다 공부할 내용이 많고, 작업량도 많
기 때문이다.
전공학과 친구들은 어렵지는 않다고 한다. 다만, 학교에서 배운 걸 이렇게 코딩으로
풀어본 적이 없어 매우 재미있어 한다. “아하, 그게 이거야?” 하고 놀라워한다.
반면 비전공자 친구들은 매우 어려워한다.
특히 예술학과 친구들은 True, False로 나뉘어지는 이분법적 사고를 이해하지 못한다.
메모리를 allocate 하고 free하는 개념부터 헤매게 된다.
그대로 3일 정도 지나면 반포기 상태가 되고, 7일 정도 지나면 완전히 포기하고 만다.
빨리 전공자들과 매칭시켜 가르침을 받아야 한다.
이런 학생들은 튜터에게 도움을 요청하거나, 스태프에게 요청해 후원자를 지정 받을
수 있다. 튜터는 보통 공통과정을 통과한 친구들이 하며, 아직 낯설어 하는 친구들이 빠
르게 적응할 수 있도록 도와주는 역할을 한다.
63
다. 교육기간과 졸업
42의 공식적인 교육기간은 5년이다. 외부에는 3년제 과정처럼 홍보한다.
프랑스 학제가 학사 3년, 석사 2년인 걸 생각하면 이해할 수 있다.
42는 “그랑제꼴”처럼 “학교”로 운영되고 있기 때문에, 프랑스 학제를 따라가고 있다.
실제로 입학과 졸업까지 그렇게 관리되고 있다.
다만, 교육과정을 구성하기에 따라 2년제로도 운영이 가능하다.
42의 엄마격인 에피텍은 처음에는 석사과정 2년으로 시작했다. 처음에는 에피타 전공
자들을 받았기 때문에 2년제로도 운영이 가능했던 거다. 파일럿이었던 “웹아카데미”는 2
년 과정인 대신 웹 개발로 커리큘럼을 한정 지었다.
즉, 커리큘럼을 어떻게 구성하느냐에 따라 교육기간이 달라질 수 있는 교육모델이다.
하지만, 에꼴42는 비제도권 친구들에게 학교역할을 해주는 게 목표였기 때문에 5년의
기한을 이야기하고 있다.
그런데, 학제를 논외로 하고, 진짜 교육에 걸리는 시간은 얼마나 될까?
“공통과정”은 1.5년, “심화과정”은 자유. 이렇게 생각하면 된다.
실제 사례로 전공학과 친구가 집에 가지 않고 24시간 학교에서 살았는데, 딱 6개월
이 걸렸다. 그리고 다른 친구는 매일 하루 8시간씩 공부하니 12개월 정도 걸렸다.
하지만, 모든 친구들이 그렇게 공부하긴 어렵다.
통계적으로는 18개월 정도 걸린다고 42 홈페이지에 공개를 했다. 2018년 이전에는 6
개월로 홍보하기도 했는데, 당시에는 교육과정이 좀 쉬웠다. 지금은 대학 전공학과처럼
운영되고 있어 교육기간이 길어졌다.
“공통과정”은 기초과정이기 때문에 이것 만으로는 취업이 쉽지 않다. 이후에는 인턴쉽
이나 기업 프로젝트를 해보는 등 실무훈련을 권하고 있다.
64
물론 기초과정을 소홀히 하면 안 된다. ERD, OSI 7 Layer 등 개념이 명확히 잡혀 있
지 않으면 면접에서 많이 떨어지기 때문이다. 100점 맞을 필요는 없지만, 일 할만큼은
알아야 한다.
현실적으로는 평생교육기관처럼 운영한다. 공통과정만 통과하면 계정이 지워지지 않아
평생 출입할 수 있다. 선배들이 학교로 와서 후배들을 도와주거나 데려갈 수 있도록 기
회를 만들고 있다.
42는 자율입학, 자율졸업제도다. 원하지 않으면 학교에 나오지 않으면 된다. 일정기간
시스템에 로그인하지 않으면 계정이 만료되어 버린다.
입학생들의 25% 정도가 취업 등의 이유로 매년 이탈하며 3년이 지나면 20% 밖에
남지 않는다. 남아 있는 경우도 대부분 회사에 취업을 했다 쉬는 경우들이어서 커뮤니티
에 놀러 온다는 느낌으로 학교를 나온다.
라. 프로젝트형 학습과제
그러면 42의 학습과제는 어떻게 생겼을까? 어떻게 생겼길래 학생들이 알아서 공부할
수 있을까?
대단하지 않다. 그냥 이런 식이다.12
- 과제 : 이곳에 15층 짜리 아파트가 있다. 여기에는 엘리베이터가 2개가 설치되어 있는데, 버튼
하나를 눌러서 동작한다. A는 5층에서 10층을 가고 싶어 하고, B는 3층에서 1층을 가고 싶어 한
다. 이 때 가장 효율적인 엘리베이터 알고리즘을 설계하세요. 참고로 엘레베이터가 1층을 움직이
는데 걸리는 시간은 1초이다.
- 제한사항 : 코딩언어는 자유
- 출력 : 터미널로 A, B의 현재층과 목표층을 입력 받아, 소요되는 시간을 출력할 것
12
실제 42과제는 아니다. 42과제는 NDA(기밀유지협력)에 걸려있어 외부유출이 안 된다. 다만, 학생들이
자기 해답을 GitHub에 올려놓는건 통제하지 않아, 구글 검색을 해보면 쉽게 과제 내용을 짐작할 수 있다.
65
상황과 맥락이 있다. 하지만, 정리된 질문이 아니라 일상언어로 기술되어 있다.
초보자 친구들은 처음부터 멘붕이다. 무슨 뜻인지도 모르고 어디서부터 시작해야 할지
도 모른다
경험 없는 친구들은 절대 혼자 알아서 풀 수가 없다. 반드시 주변의 친구들을 찾아서
물어봐야 한다.
이 문제는 어떻게 풀어야 할까?
사전지식으로 Queue를 알고 있어야 한다. 동시성을 처리하기 위해 Thread도 알아야
한다. 중간취소가 일어난다면 “제어방식”도 설계할 수 있어야 한다. 그러고 보니 꽤 어려
운 과제구나 싶다.
즉, 학생들은 이 과제를 이해하기 위해 동료들의 도움을 받아야 하고, 이 과제를 풀기
위해 필요한 정보들을 찾고 코드를 찾아서 공부해야 한다.
그리고, “내가 생각하는 엘리베이터”에 맞게 알고리즘을 설계하고 이를 코드로 옮긴다.
잘못 생각한 게 있을 수 있기 때문에 친구들에게 테스트를 맡겨본다. 친구들은 자기
생각에 맞추어 이렇게 저렇게 해보고 코드를 피드백 해준다.
42 과제는 이런 식으로 설계되어 있다. 학생들의 행동을 통제하는 게 아니라, 학생들
이 행동을 시작할 수 있게 문제를 던져준다. 그래서 42과제들은 친절하지 않다.
42 과제를 보면 KT 인프라 시스템을 운영할 때 사례가 많이 오버랩 되었다.
보안이나 서버작업 중심으로 구성되어 있는데, 아마 “사디락 교수”가 3년 정도 보안관
련 스타트업을 했던 경험들이 많이 녹아 있지 않나 싶다.
마. 동료학습, 동료평가
42의 학습방식은 동료학습이다. Peer-to-peer 라고 하는데 기본적으로는 2인 학습을
말한다. 그런데 과제는 대부분 1인 과제이거나 3-4인 과제이다. 2인 과제가 없다.
66
즉, 여기서 동료학습이란 2인 과제를 말하는 게 아니다. 동료평가를 말한다.
동료평가는 기본적으로 1:1방식의 “코드리뷰”로 이루어진다.
학생이 코드를 만들어서 시스템에 올리면, 시스템은 랜덤으로 3명의 평가자를 매핑
시켜준다. 학생은 1:1로 평가자를 만나 내 코드를 설명하고 올바로 학습했음을 증명해야
한다.
과제당 최대 3번의 retry를 권장하니, 한 과제를 할 때 최대 9명의 사람들을 만나 내
코드를 설명하게 된다. 공통과정 안에는 약 20개의 과제가 있어, 평균 100명~200명 정
도의 사람과 코드리뷰를 해야 공통과정을 돌파할 수 있게 된다.
하루 평균 8시간 이상 코딩을 하고, 최소 100명 이상 자기 코드를 가지고 리뷰해 본
사람이라면 탐을 내지 않을 회사가 없을 거다.
참고로 코드리뷰란, 프로그램 코드를 보면서 알고리즘과 제작과정 등에 대해서 이야기
를 나누는 개발자 문화를 말한다.
요리학원에서 서로의 요리를 맛보면서 피드백 해주는 상황을 상상하면 되는데, 이 과
정에서 각자의 정보, 경험, 지식 들이 전수되고 뒤섞이게 된다.
즉, 동료평가는 맞냐 틀리냐를 따지고 점수를 매기는 활동이 아니라, 서로의 지식과
경험이 뒤섞이고 전달되는 그런 학습활동이다.
그래서 동료평가를 영어로는 Peer-correction, peer-evaluation이라고 한다.
참고로, 이런 “상호 코칭”활동은 혼자서 공부하는 것보다 10배 이상 빠르다. 복잡한
상황에 대한 이해와 지식분해활동도 도와준다.
42는 혼자서 구글링 하면서 공부하는 “고립학습”을 극도로 죄악시한다.
2020년 코로나가 극심했을 때 대부분의 학생들이 집에서 고립학습을 했다. 당시 분위
기로는 누군가를 만난다는 것 자체가 민폐였기 때문이다.
이 때 학생들의 학습진도율은 매우 느렸다. 평균적으로 7일 소요되는 과제를 평균적
67
으로 30일씩 걸려서 풀었다.
그래서 “줌” 화상회의실을 만들고 학생들이 온라인으로 접속한 채 공부를 하게 했다.
그랬더니 30일씩 걸리는 과제일수가 15일 정도로 줄어들었다.
코로나가 주춤했을 때 학생들이 오프라인으로 등교를 했는데, 이 때 실험그룹에선 과
제일수가 3일로 줄어버렸다.
즉, 동료학습 효과는 고립학습대비 평균 10배 이상의 학습속도가 나고, 복합적으로 문
제상황을 인식할 수 있게 만들어 교육의 질을 올려준다.
바. 시험
42에도 시험이 있다. 동료평가는 “학습”활동이지만, 시험은 “평가”활동이다.
시험은 동심원을 돌파할 때마다 본다.
진급시험처럼 동작하며 시험을 통과해야 다음 단계로 나아갈 수 있다.
시험은 인터넷이 모두 차단된 상태에서 컴퓨터 앞에 혼자 앉아 코드를 짜서 제출하는
걸로 치러진다.
재미난 건 약 5문제가 나오는데 1번 문제를 못 풀면 2번 문제가 열리지 않는 방식으
로 구성되어 있다.
PASS/FAIL 만 판단함으로써 자격요건을 검증할 뿐, 우열을 가리지는 않는다.
시험에 떨어진 학생들은 몇 번이고 다시 공부해서 도전할 수 있는데, 과제를 올바로
풀지 못했다면 통과하기 어렵다.
참고로 시험문제는 문제은행식으로 관리되어 시험을 볼 때마다 바뀐다.
시험 통과율이 낮다는 건 학습이 제대로 이루어지지 않고 있다는 뜻이다.
커뮤니티 분위기가 올바로 작동되지 않는다는 뜻이기 때문에 교육운영자는 긴장할 필
요가 있다. 어디가 문제인지 짚어봐야 한다.
68
사. 역량 챠트
42에도 성적표는 있다. 19개의 스킬이 스파이더 챠트로 표현된다.
의역을 하자면 “역량챠트” 정도 되겠다.
과제마다 다른 스킬들이 붙어 있다. 과제를 풀면 없는 스킬은 획득된다. 이미 획득된
스킬이라면 점수가 올라간다.
각 스킬점수가 모여 하나의 레벨로 환산된다. 21레벨이 만렙이고 “공통과정”을 끝내면
10 레벨이 되도록 설계되어 있다.
역량챠트가 성적표 역할을 하지만 상대적 지표 외에 큰 의미는 없다.
하지만 스킬 항목이 의미하는 바는 있다. 42의 교육내용을 바로 보여준다.
하드 스킬은 Unix, DB&Data 등 기초역량 육성에 포커싱 되어 있다.
재미난 건 Rigor, Group&interpersonal 같은 소프트 스킬도 포함되어 있다는 거다.
즉, 42의 교육은 하드 스킬 뿐 아니라 전인적 교육을 지향하고 있다는 거다.
참고로, 각 스킬들은 스태프에 의해 추가되기도 한다.
그림 15. 42 주요 역량 스킬(출처 : 42 Heilbronn)
69
아. 게임요소
구성주의 교육모델은 경험학습이자 놀이학습이다.
스스로 움직이려는 동기가 없다면 교육은 동작하지 않는다.
그래서 42는 동기부여를 위해 모든 곳에 “게임이론”을 사용한다.
첫 번째로 퀘스트 시스템을 넣었다.
학생들은 본과정에 합류하면, 제일 먼저 76일 이내 첫 과제를 깨야 한다. 그리고, 과
제를 클리어할 때마다 새로운 여유일수를 부여 받는다.
과제를 깨지 못하면, 학생들은 다시 도전해야 한다. 게임에서 던전을 정복하기 위해
반복하여 도전하듯, 42는 학생들이 그렇게 공부하도록 유도한다.
여유일수 내에 과제를 클리어하지 못하면, 학생들 계정은 만료 차단되어 버린다. 이런
시스템을 “블랙홀”이라고 부른다. 교육과정을 “태양계”로 표현한 데 착안한 것이다.
그것도 42가 “The Hitchhiker's Guide to the Galaxy”라는 소설에서 이름을 따왔다
는 모티브에서 착안한 것이다.
퀘스트는 꼭 깨야 하는 것도 있고 아닌 것도 있다. 어떤 퀘스트는 학생들끼리 힘을
모아 깨기도 한다.
예를 들면 해커톤에 참여하여 상을 받거나, 학교가 개최하는 이벤트에 참여하여 보상
을 받기도 한다.
두 번째로 “레벨업” 시스템을 넣었다.
학생들은 누가 빨리 10레벨에 도달하나 친구들과 내기를 한다.
혹은 “웹 프로그래밍”만 무지하게 키우는 친구들이 있다.
어떤 친구는 “그룹. 대인관계” 속성이 있는 이벤트는 무조건 참여를 한다.
70
생각보다 레벨업 시스템은 학생들에게 동기를 부여한다.
굉장히 소극적인 친구라도 “남들 가는 만큼은 따라가야지”라고 생각하게 된다.
세번째는 디지털 뱃지 시스템도 있다.
“빌게이츠 뱃지”, “웰컴 뱃지” 같은 것들이 있다.
뱃지 시스템은 특정 행동에 대한 유도하기 위한 보상도구로 게임화에 많이 사용된다.
그런데, 이건 수집욕구가 강한 나라에서만 꽤 효과적으로 작용하는 것 같다.
우리나라 대학생들은 대부분 시큰둥했다.
아마 대부분 취업에 목매어 있어 그렇지 않을까 싶다.
네번째는 포인트 시스템과 월렛이 있다.
학생들이 동료평가를 받을 땐 “포인트”를 평가자에게 지불해야 한다.
돈을 주고 평가자의 시간을 사는 거다.
만일 포인트가 없다면, 다른 사람에게 평가를 해주고 “포인트”를 벌어야 한다.
즉, 이렇게 강제로라도 움직일 수밖에 없게끔 시스템을 구현했다.
학습행위 자체를 재미로 느끼게 하기 위해 42는 굉장히 많은 노력을 하고 있다. RPG
와 비슷하게 사회시스템을 차용하기도 했다. 사디락 교수는 아예 “워크래프트”처럼 만들
었다고도 한다.
그런데 이건 “구성주의 학습”이 가지는 어려움이기도 하다. 동기를 떨어뜨리지 않기
위해 학생들이 관심 가질 만한 것을 찾아 계속해서 자극해줘야 한다. 물론 학업몰입도를
떨어뜨리지 않는 수준에서 적절하게 진행되어야 한다.
71
4. 교육운영
가. 전체 교육과정
42는 학교로서 운영된다. 독특한 운영방식을 가지고 있는데, 교육과정 전체가 “사디락”
교수와 보컬팀에 의해 창조되었다.
한 번에 짠하고 만들어진 건 아니고, 에피텍과 웹아카데미를 거치면서 10년 넘게 튜
닝 된 것들이다.
그림 16 42 교육과정 (출처 : 42 쿠알라룸프)
42는 열림 선발을 한다. 미성년자만 아니면 아무나 지원할 수 있다.
가려서 뽑는 건 안되고, 반드시 아무런 제한 없이 학생들을 뽑아야 한다.
캠퍼스도 365일 24시간 개방을 해야 하는 게 계약사항이다.
캠퍼스는 가능한 도시 내의 교통 편리한 곳에 위치할 것을 권장한다. 학생들 접근이
쉬워야 하기 때문이다.
이건 편의를 제공하는 측면도 있지만, 집단학습의 특성 때문이기도 하다. 사람이 많아
야 교육이 잘 된다.
72
점진적으로 시간이 흐르면서 사람이 줄어드는 구조다. 매년 25%~30%씩 줄어들어 3
년이 되면 대부분 취업해버려서 남아 있는 사람이 없는 구조다.
졸업에 해당되는 지표는 “공통과정” 돌파율로 본다. 파리 캠퍼스 평균은 80% 전후로
다른 프랑스 대학와 비교하면 꽤 높은 편이다.
별도의 입학시험은 치르지 않고, 4주짜리 부트캠프를 통해 선발한다.
일반적으로 이 부트캠프까지를 “입학과정”으로 본다. 과정을 설명하면 이렇다.
가장 먼저 온라인 테스트를 본다.
간단한 그림 맞추기 게임인데 논리력, 인지력을 검사하기 위한 도구다. 이 게임은 컴
퓨터 학습이 가능한 수준을 아주 아주 포괄적으로 식별하기 위한 거다.
통과자에 한해 대면 방식으로 “체크인 미팅”을 한다. “입학설명회”라고 보면 된다.
42학교와 교육프로그램, 학습방식 등을 설명하고 지원의사를 확인한다.
입학신청은 “체크인 참가자”들만 대상으로 “신청”을 받는다. 선착순이다.
입학시험은 학교에 모여 4주짜리 교육프로그램을 받는 걸로 대신한다.
“피씬”이라고 부르는데 프랑스어로 수영장이라는 뜻이다. “해병대 캠프”를 모티브로 구
성되었다. 학생들은 이 기간 동안 친구들을 사귀고 동료학습방법을 익혀야 한다.
전체 과정은 “인트라넷”이라고 불리는 IT시스템에 의해 진행되는데 완전 자동화시스템
은 아니라 “보컬팀”이 스케쥴을 관리, 통제해줘야 한다.
입학에 성공한 친구들은 IT시스템에 공식계정을 하나 받는 걸로 학교생활을 시작한다.
입학식 같은 건 없고 학교 내부의 튜터들이 나서 학교생활을 안내한다.
프랑스에서 피씬 탈락률은 높지 않다. 똑똑한 사람을 뽑으려는 게 아니라, 동료학습
부적응자를 탈락시키는 게 목적이기 때문이다.
73
한국의 경우는 50% 정도 탈락한다. 정부에서 정한 입학정원이 있기 때문이다.
“공통과정”을 돌파하는 데는 평균 1.5년이 걸린다.
이후 프랑스에선 대부분 인턴생활을 3-6개월 정도 한다. 인턴생활이 끝나면 대부분
정직원으로 전환되는데, 돌아오는 친구들은 학업을 계속하기도 한다.
파리캠퍼스에는 8년 이상 학교에 오는 친구들이 있다. 그야말로 고인물로, 개교 이후
계속 학교를 들락날락하고 있는 거다.
학위나 졸업식은 없다.
프랑스의 경우 학생들은 졸업을 원하는 시점에 “학업인증서”와 “인턴사실확인서”를 출
력해간다. 두 개는 입사시에 거의 필수여서, 이 두 가지 발급사실로 취업여부를 확인한다.
나. “피씬”
“피씬”에 대해서 좀 더 자세하게 설명해 본다.
모든 교육은 원하는 Output을 만들어내기 위해 Input을 조절하고자 한다. 차별 없는
보편성을 기반으로 하지만, 최소한 인적 동질성은 확보하고자 한다. 요리학교가 요리 싫
어하는 친구들을 굳이 선발할 이유는 없기 때문이다.
“피씬”은 동료 학습과 커뮤니티에 맞는 친구들을 식별하기 위한 교육프로그램이다.
“해병대 캠프”처럼 운영되는데, 그룹과제를 할 때 낙오자를 챙기지 못하면 모두에게
빵점을 준다. 연대책임을 지움으로써 우리는 하나의 공동체라는 인식을 새겨준다.
“피씬”은 4주 프로그램으로 운영된다.
개인과제, 팀과제, 시험을 매주 반복해서 치러야 한다.
개인과제는 C의 기본문법과 용법을 익히도록 구성되어 있으며, 팀과제는 협업을 해볼
74
수 있도록 작은 프로젝트가 제공된다.
시험은 컴퓨터 앞에 홀로 앉아서 코드 짜는 걸로 제출되는데, 문제를 제대로 풀었다
면 충분히 풀 수 있는 문제들이다.
학생들은 이 과정을 통해 혼자 하면 실패하고 함께 해야 살아남는다는 걸 체득한다.
그리고, 옆사람에 물어보는 걸 전혀 꺼리지 않게 된다.
이런 변화는 사실 42가 학생들에게 주고 싶은 가르침의 엑기스다.
만일 눈치 빠른 친구가 있다면 4주짜리 피씬 과정만 해도 42를 학습한 거다.
본과정은 공부해야 할 범위가 더 넓어지고 좀 더 다양한 커뮤니티 활동을 통해 사회
적 경험을 풍부하게 만드는 과정일 뿐 핵심은 똑같다.
최종 선발은 모든 점수를 집계하여 통합점수로 판단한다. 환산식은 비공개로 되어 있
는데, 각 캠퍼스별로 다르게 평가할 수 있다. 그런데 점수만으로 판단하진 않는다.
선발 때 “피씬”을 모니터링했던 “보컬팀”의 의견은 매우 지배적으로 반영된다. 커뮤니
티는 분위기가 흐려지면 전체 교육이 망가지기 때문에, 매우 엄격하게 부적격자를 골라
낸다.
예를 들어 코드를 베껴가며 진도를 뽑는 친구들은 탈락이다. 제보가 들어오면 “보컬팀”
이 면담을 통해 확인한다. 조금이라도 의심이 가면 과제를 다시 풀게 한다.
어떤 친구들에겐 경고를 날리기도 하고, 패널티 점수를 주기도 한다. 피씬 태도가 불
량한 사람은 퇴소를 시켜버린다.
판단 기준은 “학습집단의 보호”다.
집단학습은 분위기가 망가지면 돌이킬 수 없다. 노력하지 않고 요령으로 성과를 얻거
75
나, 스스로 성장하지 않는 사람들은 집단의 면학분위기를 흐트린다.
그런 분위기가 만연되면 아무도 서로 돕지 않고, 문제풀이에만 집착하게 된다.
참고로, “피씬” 과정을 C 로 운영하는 이유가 있다.
C는 절차지향형 언어로 꽤 오랜 기간 동안 “교육용 언어”로 활용되어 왔다. 즉, 메모
리 관리만 아니면 배우기 정말 쉽다. 그리고, 컴퓨터 동작 구조와 아주 정직하게 연결되
어 있어 컴퓨터를 이해하기에 매우 적합하다.
일례로 2020년 2기 한 명은 “불문학과” 친구였다. 피씬에 들어오기 전에는 “코딩”에
“ㅋ”자도 몰랐다. 단지 코딩에 대한 호기심에 지원했을 뿐이었다. 그런데 피씬이 끝났을
때 그 친구는 종합평가에서 1등을 했다.
다만 피씬 기간 동안 열심히 친구들을 붙잡고 이것저것 물어가며 하루에 10시간씩
공부를 한 거다.
C는 “공통과정”에서도 폭넓게 쓰게 한다. 불필요한 언어 논쟁에서 벗어나 컴퓨터가
움직이는 동작원리에 집중하기를 바라는 거다.
다. 신경 써야 할 것
이 교육모델에는 신경 써야 할 것들이 있다.
첫째, 동료수준이 고만 고만하면 “학습”이 일어나지 않는다.
비슷한 수준의 사람들, 비슷한 성향의 사람들을 모아 놓으면 학습이 일어나지 않는다.
지적 평형상태이기 때문이다.
즉, 학습 집단의 구성 상태가 교육효과에 영향을 미친다.
학습은 지적 불균형 상태일 때 일어난다.
76
학습은 선불교처럼 깨달음이 아니다. 지식은 모르는 사람이 아는 사람에게서 배우는
거고, 경험은 안 해본 사람이 해본 사람에게서 배운다. 경험의 종류가 많을수록 다양한
방향으로 흐름이 일어난다.
42는 연구자를 키워내는 학교가 아니므로, 뛰어난 사람을 선발하기보다 다양한 사람
들이 혼재하도록 구성한다.
잘 하지 못해도 뽑는다. 동료학습을 통해 성장하는 사람이 중요하다.
그런데 여기에선 “성장”도 중요하게 봐야 한다.
동료학습을 아무리 잘해도 성장하지 못하면 학습법이 안 맞는 거다. 42의 커트라인들
은 충분히 기다려주는 편이다. 그걸 넘지 못하면 아쉽게도 헤어지는 게 맞다.
둘째, 코칭 분위기가 형성되지 않으면 학습이 일어나지 않는다.
42에선 질문을 슬랙에 올린다. 실시간 소통성이 높기 때문이다.
그런데, 2020년 중반 학생들 사이에서 “핑거프린세스” 논쟁이 일기 시작했다.
구글 검색만 간단히 해보더라도 알 수 있는 내용을, 검색도 안 해보고 질문을 올리냐
는 것이었다. 일부 전공자들이 주도했고, 다른 전공자들도 동조를 했다.
슬랙이 점점 그런 분위기로 바뀌고 한 달쯤 지나니까 아무도 질문을 올리지 않았다.
이후 전체적인 학습진도는 정체되어 버렸다. 비전공자들이 도움을 얻을 곳이 없어지자
슬그머니 다른 교육과정으로 갈아타기 시작했다.
맞는 말이냐 틀린 말이냐가 중요한 게 아니다. 서슴없이 묻고 답할 수 있느냐 하는
게 중요하다.
42의 교육방식은 스스로 깨우치는 게 아니다. Teacher를 동료로 바꾼 모델이다.
자유롭게 질문하고 답하는 분위기가 형성되지 않으면, 학습은 일어나지 않는다.
77
그러면 다시 강사에 의존한 교육을 해야 한다. 교육정체성이 깨지는 거다.
상호 코칭을 통해 동반성장 하는 분위기가 문화처럼 형성되어야 교육이 동작한다.
셋째, 학생수가 작으면 학습이 일어나지 않는다.
42는 하나의 학습 집단을 최소 150명 이상으로 구성하라고 말한다.
사실 효과적인 학습은 3-5인 단위의 작은 그룹에서 잘 일어나는데 왜 이렇게 많은
학생수를 뽑으라고 할까?
42는 내가 모르는 문제를 코칭 해 줄 동료를 계속해서 찾는 모델이기 때문이다.
집단의 수가 작으면 지식 수준이 고만고만하기 때문에 금방 배울 게 없어진다.
실제로 1기 선발 때 약 90명으로 “피씬”을 치른 적이 있었다.
사람수가 적은 만큼 분위기는 화기애애 했는데, 전공자 한 명에 의해 전체적인 분위
기가 움직였다. 문제는 그러면서 대부분의 코드들이 비슷해지는 현상이 일어났다.
집단의 수가 적으면 경험의 다양성이 적어져 입체적으로 문제를 바라볼 수 없게 된다.
42는 정답을 찾는 게임이 아닌데, 분위기는 하나의 정답으로 통일되어 간 거다.
안타깝게도 42가 가장 피하고 싶은 상황이다.
라. 교육설계
42교육은 중앙 집중형 모델이다.
“교육설계”는 파리캠퍼스의 “교육팀”이 하며, 글로벌캠퍼스는 운영만 한다. “공통과정”
은 42의 고유자산이며 지적재산권 보호대상이다. 새로운 교육프로그램이 필요할 땐 파리
캠퍼스 “보컬팀”에게 요청한다.
제작일정, 내용은 다 “보컬팀”에게 일임하기 때문에, 원하는 결과물이 잘 안 나온다.
78
만일 우리가 콘텐츠를 제작하여 교육과정에 반영되면, “파리캠퍼스”도 지적재산권을
갖게 된다. 즉, 글로벌로 공개 가능한 콘텐츠만 제공할 수 있다.
참고로 학생들이 만든 결과물은 모두 학생들이 소유한다. 과제 결과물도 마찬가지다.
그런데 교육설계란 어떤 일을 하는 걸까?
2014년에 42 학생이었던 “로리메자르” 사례를 들어보자.
그녀는 당시 42교육문제를 해결하기 위해 “게임화”를 제안했고, 이걸 계기로 42보컬
팀에서 일하게 된다. 그리고, 한 해 동안 “게임요소 개발”과 “멘토링 프로그램”에 대한
교육설계를 담당했다.
그녀는 당시의 경험을 자기 블로그에 이렇게 소개했다.
그림 17. 42과제에 게임요소 추가 제안(로리메자르, 42교육팀, 2015)
2013년, 42의 초기모델은 동료학습 방식이긴 했지만 정해진 수업일정이 있고 데드라
인에 맞춰서 과제를 제출하는 방식이었다.
2014년, 42제작자들은 각자 자기 퀘스트를 선택하는 방향으로 교육방식을 바꾸었는데
학습 일정까지 스스로 관리하게 만들었다.
그런데 이렇게 하니 재학생 중 50% 이상이 학업에 몰입하지 못하고 방황하기 시작했
다. 당시 그녀는 42학생이었는데 이 문제를 “게임화”를 통해 풀어 보기로 “보컬팀”에 제
79
안을 한다.
그녀는 이 문제를 이렇게 정의했다.
첫째, 과제가 너무 많이 나열되어 있어 어떤 걸 선택해야 할지 모르겠다.
첫 번째 과제를 풀면 그 다음 과제가 50개 정도 한꺼번에 열린다. 하지만, 사람들은
5개 이상의 선택사항이 생기면, 심리학적으로 포기하는 경향이 있다.
선택사항을 3개 정도로 좁히고, 점진적으로 과제를 열어 주자.
둘째, 과제에 대한 “정보”가 기술되어 있지 않다.
과제 정보에 관련기술, 영상링크 등은 있는데, 학습목표나 과제간 관련성이 없다. 그래
서 어떤 과제를 풀어야 할지 모르겠다.
과제 첫 페이지에 이건 뭐하는 프로젝트이고 왜 해야 하는지를 설명해주면 좋겠다.
셋째, 많은 과제들이 무의미하게 나열되어 있다.
인지과학에 따르면, “문제를 푸는 순서는 학습 결과를 다르게 만든다. 풍부한 환경에
학생들을 방치하는 것은 장기적으로 상황 판단력을 흐리게 만든다.”라고 한다.
내가 지금 전체 지도 중에서 어디를 지나고 있는지, 다 배우고 나면 뭘 할 수 있게
되는지 등을 알 수 있으면 좋겠다. 과제를 어떤 순서로 풀어야 할지 힌트가 있으면 좋겠
다.
초보자들이 갑자기 만렙 문제에 도전하는 일이 없었으면 좋겠다. 학업의지가 상실된다.
… 등등 그녀는 총 7개 문제를 지적하고 각각의 해법을 제시한다.
그녀는 자기 주장을 뒷받침하기 위해, 인지과학의 “자기결정이론”과 “자기통제학습이
80
론”을 설명했다. 모두 다 채택된 건 아니지만, 2014년의 이 제안은 학생들이 동기를 잃
고 방황하던 대부분의 문제들을 해결했다.
이후 42 제작자들은 게임화에 대해서도 관심을 가졌고, 2015년엔 “해리포터 기숙사”
개념도 추가해 넣게 되었다.
마. 본과정 운영
학교에는 “교육장”으로서의 기능이 있다.
교수자가 없지만 교육장으로서의 역할이 없어지는 건 아니다.
학생들을 관찰하고, 학업을 평가하고, 부진자를 관리해야 한다. 전통적인 교육에선 교
수자가 하는 일이다. 하지만 교수자가 없으니 다른 누군가 해야 한다.
42에선 “보컬팀”이 이 역할을 한다. 다만 학업 자체에는 개입하지 않는다.
집단학습 전체를 관리하고, 정책적인 개입을 하고, 분쟁과 갈등을 해결한다.
원칙은 이렇다.
“공부하고 성장하는 역할은 학생의 것이니 학생이 한다.”
“교육시스템을 유지하고 발전시키는 것은 42의 역할이니 보컬팀이 한다.”
“교수자 중심의 교육법”에선 이게 구분되어 있지 않다. 그래서 교수자 혼자 다했다.
학생들을 성장시키는 것까지 교수자의 역할과 책임이었다.
이 교육모델에선 학교가 학생들 “학업”을 책임지지 않는다. 개입해서도 안 된다. 다만
좋은 “교육환경”으로서의 역할은 충실히 한다.
42 교육모델은 커뮤니티 모델에 기반하고 있다.
81
선배들이 후배들을 키우는 방식으로 성장한다. 주변의 여러 사람이 한 사람을 돌봐준
다. 일방적인 관계로 작동하진 않고 양방향으로 작동한다.
가장 중요한 건 본인 스스로의 의지다. 학교는 동기를 잃지 않도록 계속해서 내적, 외
적 자극을 해준다.
학교에는 여러 명의 “튜터”들이 있다. 튜터 역할은 조력활동, 가이드 활동이다.
“공통과정”을 클리어한 선배들이 한다. 자기가 문제를 풀었던 경험, 자기 생각, 참고했
던 교재 등을 이야기해준다. 지적 평형활동을 말한다.
이벤트 운영이나 교내 관리활동은 학생들 협회(coalition)가 주도한다.
이 협회는 4개로 나뉘어져 있는데, 입학하면 자동적으로 배정된다.
한 협회 당 약 1,000명으로 구성되는데 총학생회나 사회봉사 단체처럼 동작한다.
학교발전 활동에 자원봉사를 이끌어내고, 학교정책을 전달하는 일을 한다.
파리캠퍼스에는 기업들이 많이 찾아온다. 이건 약간의 통제를 한다.
학생들을 저임금 노동력으로 생각하고 오는 경우, 피해사례가 잇달았기 때문이다.
학교는 학생들이 다치지 않도록 보호해줄 필요가 있다.
국내의 경우도 비슷한 케이스가 많다.
학생들을 숙련된 저임금 노동력으로 생각하는 기업들이 꼭 있다. 대부분 좋지 않게
끝나거나 법적 갈등으로 번지기도 한다.
이는 학생들에 대한 이해가 부족하기 때문이다. 학생들은 아직 초보개발자가 아니다.
취업 기준에 이르지 못한 사람들이다. 간혹 잘하는 친구들도 있지만, 상위 1% 수준에 불
과하다.
82
직원구성은 어떻게 될까?
파리캠퍼스의 경우 학생들이 4,000명 정도 되는데, 직원규모가 30명이다.
팀제로 운영되지 않기 때문에 구분하기는 어렵지만, 역할로 나누자면 교육팀, 커뮤니
케이션팀, 마케팅팀 정도로 나눌 수 있다.
교육팀은 전체적인 교육시스템을 관리한다. 교육모델과 교육컨텐츠, IT시스템을 모두
관리하고 통제한다.
커뮤니케이션팀은 상호소통을 관리한다. 학생들과 기업들을 대상으로 한다. 갈등을 해
소하고 집단활동이 의도대로 일어나도록 조율한다.
교육이 제대로 운영 되고 있는지는 어떻게 파악할까?
여러 가지 지표가 있다. IT 시스템 내에 학생들의 “학습속도”, “시험통과율’”, “공통과정
통과율”, “학습시간” 등을 여러 가지 것들이 기록된다.
핵심관리 지표는 “경험치”다. 학생들이 습득하는 모든 경험은 경험치로 환산된다. 가
장 큰 경험치를 주는 것은 역시 “과제풀이” 활동이다.
경험치가 차곡차곡 잘 쌓이고 있다면, 학교가 제대로 운영되고 있는 거다.
그렇지 않다면 학교는 제 역할을 못하고 있는 거다. 여러 가지 정책적 변화를 할 필
요가 있다.
42는 이런 노하우를 매월 글로벌 캠퍼스 회의를 통해서 공유한다.
스태프들이 자기네 캠퍼스 이야기를 하고, 거기에 대해 서로서로 피드백을 해준다.
중학교 교사 커뮤니티처럼, 스태프들도 그렇게 서로를 학습하고 성장한다.
바. 번아웃 관리
동료학습은 생각보다 학생들에게 스트레스가 높다.
83
교재가 없고 교사가 없다 보니, 처음에는 물어볼 곳이 없어 헤맨다. 같이 하던 팀이
깨지기도 하고, 새로운 동료를 구하지 못해 과제가 한동안 뒤쳐지기도 한다.
그런데 그러다 보면 어느 날 현타가 온다. 번아웃 현상이다.
생물학적으로 이 상황은 막아지거나 통제되지 않는다. 쉬어야 한다.
그래서 42 에는 AGU(Anti Gravity Unit)라는 기능이 있어 학업을 잠깐 멈출 수 있다.
일종의 휴학제도이다. “블랙홀”에 빠지는 걸 방어한다는 개념으로 역시 “우주”라는 모티브
에서 차용한 개념이다. 무작정 쉴 수는 없고 몇 개월 단위로 제한이 있다.
“동기”가 이끄는 학습모델인 만큼, 꽤 많은 기능들이 학생들을 배려하고 있다.
꽤 괜찮은 시스템이라는 생각이 든다.
사. 산학연계
42 에는 “파트너쉽”을 별도로 관리한다.
산학연계 프로그램처럼 운영된다. 해커톤이나 비즈니스스쿨 등에도 연계되어 있다.
단, 학업 프로그램으로서 운영된다.
학생들이 사회경험을 쌓을 수 있도록 유도한다. 42 정규프로그램 이외의 것을 기록하
고 관리하도록 되어 있다.
학생들이 해당 프로그램을 하고 돌아오면, 보컬팀이 면담을 하거나 간단한 확인을 통
해 경험치로 환산해준다.
굳이 우리나라 제도에 비유하자면, 고등학교 “생활기록부” 정도 된다.
이런 걸 관리하는 이유는, “소프트 스킬”을 함께 성장시키는 게 교육목표이기 때문이
다.
취업이 잘되는 편이기 때문에 42는 취업연계엔 큰 노력을 들이진 않는다.
84
스타트업이 학생들과 함께 “커뮤니티”처럼 활동하기도 한다.
프랑스 리옹캠퍼스엔 42 Artificial Intelligent 라는 커뮤니티가 있는데, 스타트업 개발
자들 포함 12명의 참여자로 구성되어 있다.
오픈소스를 만들고 이것저것 연구활동을 하는데, 여기 결과물들을 “심화과정”의 AI 과
제로 반영되기도 했다.
이런 팀들은 자연스레 그 스타트업에 흡수되기도 한다.
아. 인턴쉽과 취업
“에꼴42”의 취업률 100%.
프랑스에선 맞는 이야기겠지만, 다른 국가에선 안 맞는 이야기다.
프랑스는 인턴쉽이 매우 활성화되어 있고, 이를 통해 취업하는 케이스가 거의 100%
다. 프랑스 제도 때문이다. 보통 첫 인턴쉽에서 2/3정도가 정직원으로 고용된다.
프랑스의 인턴쉽은, 1988년부터 시작되었다.
“연구인력 및 R&D 엔지니어 고용지원제도”라는 게 발표되었기 때문이다.
중소기업이 1명 이상의 박사를 고용할 경우, 신규 채용 첫해에 한해 연봉의 일부를
정부가 지급한다. 상황마다 다르겠지만, 지차제 지원금 등을 합하면 인턴 채용 시, 기업
은 연봉의 25% 정도만 부담할 수 있다. 인턴채용을 안 할 이유가 없다.
“인턴쉽 참여 확인서”는 학교가 발부하며, 거의 모든 대학교의 졸업조건에 포함되어
있다. 의무사항처럼 작동하고 있는 거다.
42 교육과정에도 이 흔적이 남아 있다.
원래 “공통과정”의 마지막 과제는 “인턴쉽”이었다. 3개월 동안 인턴쉽을 하고 돌아온
친구들에게만 과제통과를 시켜준 거다.
그런데 2020년 이 과제가 바뀐다. 해외캠퍼스 보급이 확대되면서, 인턴쉽을 충분히
85
보낼 수 없는 나라들이 많아진 거다.
그래서 42는 마지막 과제를 “인턴쉽”에 준하는 “웹 프로그램” 과제로 바꾸었다.
간단한 멀티플레이 웹게임은 만드는 것인데, 기본적인 CRUD, 통신, pub/sub 구조설
계 등이 포함되어 있어 난이도가 꽤 높은 편이다.
현업 CTO 로서 내리는 판단은, 이 정도 프로젝트에 참여해서 자기 몫을 할 수 있다
면 솔직히 국내 기업도 쉽게 취업할 수 있다고 생각한다.
5. 인트라넷
42교육은 “학습내용”은 콘텐츠 DB로 구축하고 “학습기능”을 자동화, 학생들이 알아서
할 수 있게 함으로써 교육과정 전체를 디지털 전환시킨 세계적인 우수사례다.
그만큼 IT 시스템이 차지하는 무게는 매우 크다. 42교육 그 자체라고 말할 수 있다.
42에선 이 IT 시스템을 “인트라넷”이 부른다. 교육업무가 진행되는데 필요한 모든 것
이 들어있기 때문이다. 학생들과 교직원들이 함께 쓰고 있다.
보통의 학교에는 여러 개의 IT시스템이 운영되고 있다. 크게 구분하자면 교육 관리 +
교육행정 + 학교행정 세가지로 나눌 수 있다.
용어는 학교별로 다를 수도 있지만, 개념과 역할들은 비슷하다.
시스템 종류 주요내용
학습관리시스템
(교육시스템,LMS)
교육이 일어나는 행위에 중점을 둔 시스템
 (학생관점) 수강신청, 수업참석, 시험평가
 (교사관점) 수업개설, 수업진행, 수업평가 등
학사관리시스템
(학사행정=교육행정)
교육관련 업무에 중점을 둔 시스템
 (학생관점) 입학, 휴학, 졸업, 각종 증명서, 등록금
 (교육과정) 대학원, 대학, 단과대학, 교육과정 개설, 중지 등
 (학교관점) 학적부, 장학금관리, 취업관리, 학생증관리, 교육인증 등
학교관리시스템
(교육행정,일반행정)
학교전체 운영에 중점을 둔 시스템
 (시설관리) 교실, 네트워크, 전기설비 등
86
 (직원관리) 교원선발, 교원평가 등
 (회계관리) 교육회계
 (기타) 급식관리, 발주 관리 등등
표 11.일반적인 대학교의 전산시스템
학습관리시스템(Learning management system)은 교육행위에 집중한다.
전통적인 교육에선 “수업”, “출석”, “시험”, “성적” 등이 포함된다.
학사관리시스템은 교육행정 시스템이다. 휴학, 졸업, 증명서 및 교육과정 개설, 중지.
교수평가 등도 관리한다.
학교관리시스템은 교육시설관리, 재정관리 등을 말한다.
42에는 “학습관리”와 “학사관리”가 혼합되어 있다. “교수자 중심 수업”이 아니기 때문
에 꽤 복잡하고 정교하게 구현되어 있다. 다만 학교관리시스템은 없다.
최근 글로벌 캠퍼스로 확장하면서 학사관리의 범위가 조금 애매해졌다.
“인턴사실 확인서” 나 “42 학업인증서” 같은 건 우리나라에선 쓸 데가 없다. 요구하는
기업들이 없기 때문이다.
반면 무엇을 잘하는지에 대한 역량 조견표 같은 건 보고 싶어한다. 스킬 챠트 같은
걸 보여주면 좋을 텐데 그걸 출력하는 기능은 없다.
87
그림 18. 프로젝트형 학습시스템 개요(출처 : 엘리스르보, 파리 장뮬랭대학, 2016)
42 시스템은 비공개다. 그래서 공개된 “프로젝트 기반 학습 시스템”구조도를 가져와
보았다. 42 도 비슷한 느낌이긴 한데, 꽤 다르게 구축되어 있다.
이런 IT시스템을 우리나라에선 Learning management system(이하 LMS)라고 부르
는데, 교육방식이 다르기 때문에 모습이 많이 다르다.
다만, 학습지도나 행동교정을 하기 위해 학습활동을 모니터링하고 피드백 할 수 있도
록 다양한 기능들이 개발되어 있다.
6. 자주 묻는 질문
(1) 차별화되는 특징이 무엇인가?
한마디로 요약하자면 이렇다.
“스스로 성장할 수 있는 인력을 배출해낼 수 있다.”
이 문장 아래에는 자발적, 능동적 이런 단어 등이 포함된다. 이런 역량은 소프트웨어
88
개발자에게 중요한 역량인데, 교육학적으로는 “디지털 역량”이라고 한다.
No Teacher, No Classes, No Course, No Textbook 등은 그런 인력을 배출하기 위
한 교육방식을 의미한다.
지식전달이 아니라 기술훈련이라는 측면에서 이러닝과는 확연히 다르다.
이런 훈련환경을 전부 디지털 트랜스포메이션 함으로써, 관리인력 없이 무인으로 돌아
간다는 점도 특징이다.
… 는 아니다. 교육행정인력, 교수자 등 직접인력이 없다는 것이지, 커뮤니티를 관리하
기 위한 인원과 IT시스템을 운영하는 인력 등은 필요하다. 물론 대부분의 인력은 학생들
자치활동으로 커버한다.
다만, IT시스템 내에 교육환경이 패키징되어 있어, 이러닝처럼 훈련교육을 표준적으로
보급확산하기 좋다는 거다.
(2) 에꼴42 조직은 어떻게 운영되나?
에꼴42 홈페이지(http://www.42.fr)에 가면 직원들 명단과 역할을 볼 수 있다.
파리캠퍼스는 전체 팀원이 30명 정도로 별다른 팀제 없이 수평적으로 운영된다.
처음에는 “보컬팀” 혼자 모든 걸 다했다.
학생들이 많아지면서 “커뮤니케이션팀”이 추가되었다.
보컬팀은 교육설계, 교육운영, 시스템 개발 등 교육의 정체성과 관련된 것들을 모두
담당한다. 커뮤니케이션팀은 커뮤니티 내 소통 및 갈등관리, 기업대응 등을 담당한다.
2021년에 글로벌 캠퍼스가 40개 이상으로 확장되면서, 개발파트 충원이 많아졌다.
2022년에는 마케팅 충원 등으로 60명, 2023년 2월에는 80명 수준으로 늘어났다.
처음에는 직원 1명이 1,000명의 학생들을 감당하는 구조로, 교육의 효율성과 가성비
를 많이 강조했는데, 2021년 이후 그런 이야기를 하지 않는다.
마케팅 전략이 좀 바뀐 것 같다.
89
(3) 글로벌 캠퍼스의 운영인력은?
42는 시스템을 보급함으로써 교육이 보급되는 구조다. 시스템 안에 교육 콘텐츠와 교
육방식이 모두 담겨 있다.
그래서, 캠퍼스 운영인력은 10명 이하로 운영된다. 작은 인원으로 유지가 되는 이유는
단순운영만 하기 때문이다.
프랜차이즈처럼 메뉴 개발이나 연구는 본사가 하고, 각 매장은 단순판매만 한다.
각 캠퍼스가 커리큘럼을 만들 수는 있는데, 42 이름으로 운영할 순 없다.
(4) 멘토가 필요한가?
42는 이렇게 말한다.
“멘토는 없어야 한다. 학생들에게 정답을 줄 수 있는 모든 전문가는 제외되어야 한다.
왜냐하면 학생들 스스로 답을 찾아야 하기 때문이다.”
이렇게 생각하는 이유는 “지식”이 아니라 “고기 낚는 법”을 가르쳐주는 게 이 교육의
정체성이기 때문이다.
외부 전문가가 개입하면 학생들에게 “전문가 의존성”이 생긴다고 본다.
하지만, 학생들로 구성된 “튜터”의 개입은 좋다고 생각한다.
“튜터”는 어려움을 겪고 있는 학생들에게 자기 경험이나 기술에 대한 견해 등을 이야
기해준다. 보통 공통과정을 통과한 친구들이 지원을 한다.
멘토와 튜터의 차이점은 42철학을 이해하냐 마냐이다.
즉 42교육은 극도의 자립성, 자발성을 추구한다.
이건 각 나라의 문화나 교육자의 철학에 따라 시각이 달라질 수 있다.
42교육은 명확히 “42 본사 교육팀”의 시각에 따라 운영된다.
90
(5) 진짜 교육이 되는가?
해외에서 공통과정을 탈피한 친구들을 만나보니 어떤 공통점이 있었다.
장점으로는 모두 기본적으로 코딩을 했다. 굉장히 기술문제에 대해 진지했다. 고민하
고 파고드는 태도를 공통적으로 가지고 있었다. 토론과 논쟁도 활발했다.
다만, 너무 논쟁에 치우쳐서 뭔가 결론을 내기 힘들어했다. 그러다 보니 답을 찾느라
시간이 매우 오래 걸렸고, 좀처럼 프로젝트가 진행되지 않았다.
그리고 이론학습을 정식으로 하지 않다 보니, 이론적 접근 능력도 조금 약했다.
CORS13 에 대한 개념, https와 http의 차이점을 설명하는 것에 굉장히 어려워했다.
ERD, 트랜잭션에 대한 개념 등도 낯설어 했다.
42과제에 비슷한 내용들이 있기 때문에 직접 코딩을 해내는 능력은 떨어지지 않았다.
다만, 이론적 베이스가 부족하다 보니 사고를 확장하거나 크게 보는 능력이 약했다.
분명히 장점이 있긴 했지만, 결과를 평가하기엔 뭔가 애매했다.
현업 CTO로서 바란 기대치에는 한참 못 미쳤다.
일단 우리나라 기업들의 눈높이를 맞춰주지 못할 거라는 건 명확했다.
그래서 42가 우리사회에서 경쟁력이 있을까? 어떤 부분을 보완해야 할까? 고민이 많
이 되었다.
(6) 기업들 평가는 어떤가?
프랑스의 경우 대부분의 친구들이 “스테이션 F” 내 기업에 취업을 한다.
“스테이션 F”는 자비에르 니엘이 세운 스타트업 인큐베이터 공간이다. 1,000개 정도의
13
CORS, https, http, ERD, 트랜잭션 등 : 컴퓨터 전문 용어인데, 실제로 있었던 일이다. 독자가 일반인이
라면 그냥 넘어가자.
91
기업들이 입주해 있다. 거기 스타트업들의 평가는 꽤 괜찮은 편이다. 적극성이 높다고 한
다.
프랑스 일반 기업의 시각은 조금 다르다. “SAP 프랑스”에 근무하는 지인의 이야기를
들어보면, 그냥 일반 개발자 수준이라고 한다. 다만 “사회적 아웃사이더”들이 대부분이라
그런 성향을 찾는 기업들이 많이 방문한다고 한다.
우리나라의 경우도 비슷하다.
공통점으로는 “자발적”이면서 “협력적”이라고 평가 받는다. 대부분 빨리 배우고 조직
적응력이 빠르다고 한다. 다른 부트캠프 대비 뚜렷하게 보이는 차이점이다.
반면 신입사원의 기술 수준에 대해서는 크게 감동이 없다. 사실 기업들의 기대가 크
지 않기 때문이다. 실제 다른 부트캠프와 섞어서 인턴쉽을 해보았을 때 차별성이 두드러
질 정도는 아니었다.
그리고 스타트업 보다는 중견기업 이상의 취업률이 높다.
즉, 졸업생들의 성향이 약간 더 모범적이면서 능동적이긴 했다.
“더 커다란 무엇이 있는가?”라고 묻는다면, 단호하게 이야기할 수 있다.
그런 건 없다!!!
즉, 42교육 자체로는 뭔가 드라마틱한 스토리를 만들어내는 건 아니다.
(7) 대학교에서 활용 가능한가?
어떤 교수님 한 분이 이런 질문을 해주신적이 있다.
“다음 학기에 AI코스를 개설할 예정인데, 실습과제나 교육환경이 없어서 에꼴42를 활
용할 수 없겠냐”
해 드린 대답은 “안 된다.”이다. 현재 42는 5년제 대학교 모델로만 운영이 가능하다.
92
3개월이나 6개월짜리 단기코스로 운영할 수 없다. 시스템 적으로 제공되지 않는다.
집단학습 모델 자체가, 어느 정도 경험이 축적되어야 만 학습이 진행되는 구조라 단
기성과를 내야 하는 교육코스로는 운용하기 힘들다.
교육과정도 파이썬, php, Ruby 같은 언어코스들이 개발되어 있지만, 메인은 “생존스
킬개발”이라 중요도는 낮은 편이다. AI, 메타버스 같은 최신 과정 개설도 느린 편이다.
구조적인 문제가 있다기 보다, 파리캠퍼스의 일 처리가 늦게 때문이 아닌가 싶다.
교육과정 개설이 파리캠퍼스에 의존적이기 때문에, 이런 협업 니즈에 대해 적극적으로
대응하기는 어렵다.
(8) 부족한 기술은 어떻게 가르치나?
42과제만으로는 취업이 어렵다는 걸 학생들은 이미 알고 있다. 졸업자들이 말해주기
도 하고, 학기 중간에 면접을 직접 보기도 한다.
그러면서 알게 된다. 다른 것도 공부해야 한다는 것을!!!
그래서, node.js 나 Java같은 취업형 기술을 병행으로 공부한다. 따로 가르쳐주진 않
는다. 학생들이 알아서 공부하는 걸로 충분하다.
42의 “공통과정”에 대해선 회의적이다. 재미없고, 어려워한다.
너무 기본기 내용이라 취업에 도움이 될 거라곤 생각하지 않는다. 마지막 과제 A 정
도가 면접질문에서 할 만한 내용이다. 다만, 전 과제를 코딩으로 해보는 것은 신선한 경
험으로 받아들인다.
제일 긍정적으로 평가하는 건, 친구들이 많다는 거다.
그 전에는 코딩을 배워보고 싶어도 같이 하는 친구들이 없어서 헤매기만 했다. 그런
데 여기에 오면 나와 처지가 비슷한 사람도 있고, 나보다 나은 사람들도 있어 물어볼 곳
이 많다.
그것만큼은 다른 곳에서 접하지 못하는 거라고 생각한다.
93
(9) 우리나라에도 42가 필요한가?
42 같은 국제캠퍼스가 하나쯤 운영되는 건 나쁘지 않은 것 같다.
선택은 학생들과 기업들이 하는 거다. 학생들이 이 학교에 와야 하고, 기업들이 학생
들을 잘 채용해줘야 교육기관으로서의 역할을 하는 거다.
다만, “42가 기존 학교를 대체할 수 있을까”라고 묻는다면, “No”라고 대답할 수 있다.
이 교육은 친절하지 않다.
친구들과 사귀는 게 부담스럽거나, 수동적인 친구들은 맞지 않다.
더구나 도와주는 전문가들이 없어 성장하는데도 한계가 있다.
42가 이 교육법을 고수하는 이유는 오직 생존 스킬을 훈련하기 위한 거다.
그러다 보니 충분한 시간을 기다리고 지켜봐 줘야 한다. 3-5년제로 운영할 수밖에 없
다.
그렇게 배출된 인력이 우리기업에 맞을지는 기다려봐야 안다.
42의 시도들은 교육 관점에선 참신하고 혁신적이다. 성공적으로 개발하고 운영하고
있다는 것에도 박수를 쳐줄 만하다.
다만 사업전략이 애매하다. 커스터마이징을 할 수 없어 우리 현황에 맞는 교육을 할
수 없다. “컴퓨터공학”처럼 커스터마이징이 필요 없는 기초교육을 하기엔 괜찮은 것 같다.
우리나라 교육환경을 대체하기에는 여러 가지가 맞지 않다. 다만, 42가 선택한 “집단
지성 기반 학습법”, “프로젝트 기반 학습법” 등은 괜찮은 도구들이다.
우리 교육현장에서도 적용해 볼만한 교육법이다.
94
제5장. 새로운 교육모델
1. 왜 필요한가?
가. 시장 이야기
“실무경험이 없다.”
“개발을 할 줄 아는 친구가 왔으면 좋겠다.”
“최소한 이렇게 말해주면, 알아들었으면 좋겠다. 필요하면 검색이라도 해보면 좋겠다.”
“뭔가를 지시해주지 않으면 일을 안 한다. 어린아이처럼 일을 챙겨줘야 한다.”
10년 사이에 같은 CTO에게서 많이 들었던 말이다.
최근 5년 사이에는 이런 새로운 말도 들었다.
“개발자를 구할 수가 없다. 아예 입사지원서가 들어오지 않는다.”
“혹시나 해서 일을 시켜보면, 먹튀들이 엄청 많다.”
이 현상을 “잘못 배워서 그렇다.”, “배가 불러서 그렇다.” 로 해석하면 안 된다.
사안을 완전히 잘못 이해하고 있는 거다.
학생들 이야기를 들어보면 이렇다.
“개발을 배우고 싶어요. 뭐부터 시작해야 할까요?”
“너무 막막해요. 내가 뭘 해야 할 지 모르겠어요.”
95
“취업했더니 회사가 너무 이상한 걸 시켜요.”
재직기간 동안 1,000명이 넘는 대학생들과 인터뷰를 했다.
단순히 “가정교육”이라고 치부하기엔 비슷한 경우가 너무 많았다. 뭔가 공통적으로 설
명하는 사회적 요소가 없다면 불가능한 현상들이었다.
즉, 어떤 이유로 노동환경은 이미 변했고 기업들이 거기에 적응하지 못하면 노동력을
사회로부터 조달 받을 수 없는 거다.
나. 기업의 고민
그래서 이 문제들을 자세히 들여다볼 필요가 있다.
첫째, 실무경험이 없는 신입사원들.
기업은 신입사원에게 대단한 실무경험을 바라는 게 아니다. 신입사원을 뽑겠다고 공고
를 내는 순간 그에 맞는 기대를 한다. 만일 2-3년차 현업수준을 바라는 기업이 있다면
현실인식수준이 낮 은거다.
기업이 신입사원에게 기대하는 실무경험이란, 간단한 수준의 웹 서비스 하나를 개발해
본 수준이면 된다. 이것저것 기술을 엮어서 만든 가장 작은 단위의 제품이기 때문이다.
그런데 이 경험은, 내용을 이해하고 응용할 수 있는 수준을 말한다. 즉 일을 하고 시
작할 수 있는 최소한의 수준이다.
이게 잘 안되는 건 명확히 “대학 교육”의 문제이다. 급격한 기술의 발전 때문에 산업
현장과 완전히 동떨어져버린 거다.
꽤 많은 대학교가 1990년대 기술을 기본으로 가르친다. 하지만, 현대 소프트웨어 공
학은 다양한 변화를 거쳐 아주 많이 달라졌다.
하지만, 제도적, 현실적 이유로 이런 변화는 학교 현장에 반영되고 있지 않다. 학생들
은 부족한 걸 동아리 활동으로 채우는데, 문제는 이게 너무 케바케다.
96
제도권 밖이라 수준도 제 각각이고 틀린 내용도 많다. 이상한 논쟁으로 번져 감정싸
움 하다 끝나는 경우도 있다.
하지만, 그런 기회조차 얻을 수 없는 게 지방 대학교다. 현실적으로는 소프트웨어 개
발자 육성은 운에 맡기는 것 같다. 미래가 어둡다.
산학협력 프로그램이나, 정부의 교육과정이 틈새를 메꿔 주고 있긴 하다. 하지만 교육
인프라가 받쳐주는 느낌이 아니라 땜빵 하는 느낌이다.
둘째, 말귀가 어두운 친구들.
CTO들이 이런 이야기를 아주 많이 한다.
“뭔가 해달라고 하면 엉뚱한 걸 해온다. 업무를 지시하면 굉장히 맥락 없이 반응한다.
마치 사춘기 청소년들과 이야기를 하는 기분이다. 실력이 모자라면 가르치겠다. 하지만,
이해를 못하면 정말 난감하다.”
그리곤 그 사람의 자질 문제로 결론이 난다. 하지만 새로운 사람을 뽑아보면 알게 된
다. 그게 그 사람만의 문제가 아니라는 걸. 뽑아 보면 똑같은 사람이다.
왜 많은 친구들이 이렇게 되었을까?
그런데, 이 교육을 지켜보면서 학생들이 원래 그렇지 않다는 걸 알게 된다.
이런 자발적인 교육환경에 들어선 친구들은 어느 순간 빗장이 풀리면서 빵~하고 성
장한다. 거의 90% 이상이다.
우리나라 교육의 질 자체는 절대 낮지 않다. 초,중,고에서 쌓은 실력이면 충분하다.
다만 너무 모두 수동적이다. 다들 너무 착한 모범생들이다.
그런데 왜 그럴까, 이건 “교육제도”의 문제로 귀결된다.
기존 강의식 교육은 “수동형 교육방식”14의 대표적인 사례다. 인지심리학 관점에서 보
14
수동형 교육방식 : Passive pedagogy
97
면 학생들은 수업 중에 교사에 대해 강한 의존성과 종속관계가 형성된다고 한다. 16년의
학교수업이 학생들을 그렇게 바꾸어 놓는 거다.
셋째, 이직과 채용의 문제.
능력 되는 신입사원들이 더 좋은 곳으로 이직하는 경우는 제외하자. 급여문제, 업무환
경 등이 복잡하게 얽혀 있기 때문이다.
하지만, 신입사원이 기업에 쉽게 적응하지 못하는 경우는 교육문제가 조금 끼어 있다.
학생들이 직업적 가치관, 사회관을 배우고 나올 기회가 매우 적기 때문이다.
인턴쉽이나 산학협력프로그램 등 사회적 스킨쉽 프로그램이 많아야 하는데, 그게 너무
적다. 지방대학교의 경우 더 심각하다.
그리고 일자리 추천이 전공학과별로 되기 때문에, 비전공자들에게는 기회가 없다.
예를 들어, 기업들이 프랑스어 전공 중에 코딩할 줄 아는 친구를 구한다면, 그런 친구
를 만날 확률 자체는 거의 제로다.
우연히 사회 속에서 그런 친구를 구하거나, 프랑스어 하는 친구를 데려다가 코딩을
가르쳐야 하는데 작은 기업이라면 엄두를 내기도 힘들다.
즉, 채용은커녕 기업들의 인재접근 비용자체가 너무 높고 확률적이다.
이건 사회적 교육인프라가 발달되어 있으면 개선될 수 있다.
다. 학생들 고민
학생들 고민 중 1위는 단연코 학교나 학원에서 기업에서 필요한 기술을 배우지 못한
다는 거다.
면접현장에 들어가보면 알 수 있다. 내가 대답할 수 있는 게 하나도 없다는 것을.
사전에 준비할 수 없나?
그런 사실조차 인식하지 못하고, 인식했다 하더라도 어디서부터 시작해야 할지 모른다.
학교, 학원이 단편적인 정보나 지식만 전달하기 때문에, 학생들이 스스로의 위치를 인
98
식하고 자발적인 성장전략을 세울 수 없다. 정보의 바다 속에서 정작 필요한 정보는 얻
을 수 없는 거다.
다양한 원인과 해결책이 있겠지만, 여기선 교육에만 초점을 맞춰서 보자.
결심하고 행동하는 건 학생들의 몫이다.
하지만, 그들에게 좋은 정보환경과 좋은 행동환경을 챙겨주는 건 사회적 인프라의 몫
이다. 거기에는 정부의 역할도 있지만 일반 기업들의 역할도 있다.
인력공급이 충분하던 시절에는 기업들이 채용에 대해 관심 가질 필요가 없었다.
하지만, 이제는 무관심한 걸로 버틸 수 없다. 모르면 못 오는 시대가 되었기 때문이다.
라. 공공부문의 고민
생각보다 정부의 역할이 크게 필요하다.
기업이나 개인이 담당하기엔 애매한 위치에 해결방향이 있기 때문이다.
단기적인 해결책은 이미 충분히 하고 있다. 문제는 장기적인 구조개선이기 때문이다.
세금투입을 통한 부트캠프의 확대는 단기적인 효과는 크지만 재원부담이 크다.
취업률은 높아지지만, 산업경쟁력이 높아지진 않는다.
교육부문에서 어느 정도 역할을 해야 하는데 교육구조가 경직되어 있어 쉽지 않다.
이 이야기를 하자면 복잡 해지니까 여기선 넘어가자.
사교육은 좋은 선생님을 모시면 된다. 공교육은 그렇게 하기 힘들다.
좋은 선생님을 모시기에는 재원부담도 크고 그걸 지속하기도 어렵다.
교실수업으로는 기술훈련이 되지도 않고, “교수자 중심의 수업”으로는 학생들의 성향
을 능동적으로 바꾸기도 어렵다.
이 부분은 42가 걸어온 길을 참고하여 새로운 “교육모델”을 수립함으로써 접근해볼
필요가 있다.
99
2. 교육의 모습
가. 교육 개요 정리
교육을 모든 방향에서 접근하자면 너무 주제의 범위가 넓다.
42 사례를 참고해서 우리나라에 맞는 교육모델을 하나만 정리해본다.
죽 읽어보면 우리 학교에 맞게 어떻게 교육을 설계해야 할지 감이 올 거다.
구 분 내 용
교육대상 성인학습이 가능한 사람
- 스스로 필요에 의해 학습을 시작한 사람(동기가 뚜렷한 사람)
교육목표 찐 개발자 되기 (석사, 박사 등 연구자 아님)
- 하드 스킬, 소프트 스킬, 성장 노하우
교육구성
이론
실용주의, 경험주의, 성인교육
- 개발자들이 현장에서 학습하는 방식
교육환경구성 과제은행 + 시스템학습 + 자율학습 + 집단학습
- 친구들과 과제풀이를 반복하는 방식으로 레벨업
- 시스템과 학습법을 보급을 통해 교육이 확산
교육방식 자율학습 + 집단학습
- 스스로 하지 않으면 얻는 게 없음(필요한 건 알아서 조달)
- 궁금한 건 동료집단으로부터 조달
교육내용 IT 기초 ~ 취업수준
- 입문급의 내용만 담당 : 3 개월+
- 고수준 교육은 친구들과 개별 프로젝트 : 3 개월+
교육인원 그룹당 50 명 이상 (참여율 80% 이상) x 연간 2 회 이상 선발
교육운영원리 학습 커뮤니티 운영방식 – 포럼, 게시판 필수
교육환경구성 기본 교육장
- 기본 작업공간 : 1 인용 자리 + 노트북 + 인터넷 환경
- 프로젝트 공간 : 4-5 인용 회의실(프로젝트)
프로젝트 환경
- 저렴한 비용의 클라우드 (서버 환경)
- 네트워크 개발자 : 네트워크 개발환경
- AI 개발 : GPU 하드웨어 (클라우드 등)
개방된 커뮤니티 환경
- 자유로운 출입환경(기본적인 출입통제 필요)
- 외부개발자 접근도 자유로울 것(스킨쉽 향상)
100
표 12 새로운 교육모델의 개요
이 교육모델의 특징은 “슈퍼맨의 양성”이 아니라 “코딩교육의 보편화”에 있다.
교수자가 필요 없어 강사를 구할 수 없는 환경에서도 코딩교육을 시킬 수 있다.
여기서 교수자란, 학교에서 수업을 열고 강의하는 교육의 주체자를 말한다.
전통적인 교육모델에선 교수자의 확보가 교육의 성공인데, 이 길을 따르지 않는다는
뜻이다. 다만, 그 역할을 대신할 학교 커뮤니티를 구축해야 한다.
시스템 계정만 발급하면, 이러닝(e-learning)사이트처럼 콘텐츠나 코스가 다 들어있어
교육을 보급하기가 쉽다.
전문가가 없으면 교육수준을 끌어올리는데 한계가 있는데, 이건 추가과정으로 사정에
맞게 교육을 설계하면 된다. 이 교육은 제로레벨에서 기초레벨까지 올라오는 것에 초점
을 맞추었다.
나. 자세히 설명하기
상세하게 이야기해보면 다음과 같다.
인력 양성의 목표는 연구자가 아닌, 기업에서 일하는 일반 개발자들이다.
신입사원 수준에 맞추는 이유는, 기업과 같은 현장을 교육현장에 구현할 수 없기 때
문이다.
1TB 가 넘는 데이터를 확보할 수도 없고, 그 데이터를 해석하기 위해 필요한 사업경
험 같은 것도 교육현장에 풀어놓을 수 없다.
무엇보다, 회사에서 더 잘 배울 수 있는 걸, 가짜 회사환경을 만들어 놓고 가르칠 이
유는 없다.
대신 회사에 들어가기 위한 역량을 조금 더 넉넉하게 기르는 걸 목표로 한다.
101
교육대상을 성인으로 하는 이유는, 동기가 뚜렷해서 스스로 학습이 가능하기 때문이다.
그리고 경험이 풍부해서, 구성주의 교육법을 사용할 수 있기 때문이다.
고등학생의 경우 지식을 구성한 기반 경험들이 없기 때문에, 외부에서 이를 지원해야
한다. “웹 아카데미” 같은 경우, 에피텍 학생들이 튜터로 참여를 하며, 에꼴42도 비슷하게
고등학교를 지원하는 경우가 있다.
교육목표는 “성장 노하우”를 포함한다.
일반적인 “강의 수업”은, 과제를 제출 받는 걸로 제대로 공부했음을 판단한다.
하지만, 외워서 내는 친구도 있고, 베껴서 내는 친구도 있고, 그룹과제에 얹혀서 프리
라이딩 하는 경우 있다.
이건 평가설계를 그렇게 했기 때문인데, “성장 노하우”를 익히게 하려면 그런 환경을
만들어주고, 그런 과정을 겪었는지 서로 물어보게 하는 것밖에 없다.
역시 속일 수 있는데, 이건 다른 방법들로 보완을 한다.
교육환경 구성은 꽤 중요한데, 기본적으로는 자주 어울릴 수 있도록 3-4인이 함께 할
수 있는 사무실 환경을 만들어주는 게 중요하다.
집단학습은 다양한 사람들의 소통에 의해 경험과 지식이 균형을 이루는 학습법이다.
온라인 게시판이나 포럼은 필수이다.
오프라인 환경도 중요하다. 많은 사람들이 뒤섞여서 공부하는 환경을 잘 만드는 게
이 교육모델의 특징이다.
교육기간은 집단학습의 특성상 협력학습이라는 습관을 형성하지 못했거나, 참고할 만
한 정보를 적시에 구할 수 없다면 강의 수업에 비해 꽤 많이 걸린다.
102
다만, 노하우가 쌓이고 나면 학습속도가 두 배 이상 빨라진다. 지식습득을 순차적으로
하는 게 아니라, 다차원적, 종합적으로 하기 때문이다.
따라서 교육기간은 초보자때는 넉넉히, 익숙해지고 나면 조금 빠듯하게 잡아주면 좋다.
학습과제는 처음부터 “프로젝트 타입”15으로 운영하는 게 좋다.
과제가 먼저이고, 그걸 해결하기 위해 공부를 한다. 이런 개념으로 가야 한다.
자세한 교육이론은 뒤에 설명하겠지만, 다짜고짜 문제상황에 맞닥뜨리게 하는 게 핵심
이다.
과제 설계는 반드시 “리니지”처럼 게임 퀘스트 방식으로 구성한다.
세계관을 세우고 그걸 정복하기 위해 레벨업을 하고, 파티사냥을 하도록 구성한다.
RPG16 은 게이머들이 몰입할 수 있도록, 오랫동안 많은 자본을 투자해 완성시킨 인간
사회의 축소된 버전이다. 과제 설계를 할 때 이만큼 좋은 벤치마크 사례가 없다.
교육의 규모는, 일일 방문자 기준으로 한 그룹당 40명 정도가 되도록 설계한다.
보통 동료학습은 3-5인 단위가 가장 좋은데, 평균 4명 x 10팀이 되도록 하는 거다.
이것도 뒤에 설명하겠다.
다. 학교 모습 그려보기
(1) 과제풀이 게임
학교에 입학하니 계정을 하나 준다. 웹 사이트에 접속하니 과제 목록이 죽 뜬다.
15
프로젝트 타입 : Project-based learning, 프로젝트 기반 학습법
16
RPG : Role Playing Game, 게이머가 그 세계의 등장인물이 되어 그 역할을 수행하면서 즐기는 게임
103
약 100개 정도의 커리큘럼이 있는데, AI, 빅데이터, 웹 개발 등 다양한 분야가 많다.
나는 비전공자라 기본 커리큘럼을 먼저 해야 한다.
커리큘럼을 열면 과제들이 있는데 과제 설명으로 미리 알 수 있다.
과제 할 땐 GitHub 코드를 참고하긴 한다.
하지만, 결국 다 새로 짜야 한다. 내가 이해를 해야 하기도 하지만, 평가 받을 때 일
일이 다 설명을 해야 하기 때문이다.
다양한 회사들의 프로젝트들도 만나 볼 수 있다.
예를 들면 카카오 웹툰 같은 것. 어려운 것도 있고 초보적인 것도 있다.
그 과제를 푼다고 해서 카카오에 들어갈 수 있는 건 아니다.
하지만 다 풀고 나면 대충 감이 잡힌다. 과제 하는 중에 이것저것 공부하다 보니 자
연스레 자신감이 생긴다.
그렇게 3달 정도 반복하다 보니 회사면접을 봐도 대부분 합격한다.
(2) 학습 커뮤니티
학교에 나오면 나랑 비슷한 친구들이 많다. 누구는 철학과 전공이고 누구는 법학과
전공이다. 지금 학교를 다니면서 저녁이랑 주말에 공부하러 온다.
현재 10번 과제를 하고 있는데 3명이서 공부반을 만들어서 하고 있다. 그런데 두 친
구가 곧 바빠진다고 해서, 다음 과제는 다른 친구들과 할 예정이다.
캠퍼스에는 누구나 올 수 있다. 얼마든지 앉아 있을 수 있다.
그래서 스타트업 개발자들이 종종 앉아 계신다. 가끔씩 이것저것 물어보는데 친절하게
대답을 잘해 주신다.
매주 여러 가지 주제들로 토론이 열린다.
학생들이 여는 게 있고, 선배들이 와서 던지는 것도 있다. 나는 아직 잘 몰라서 듣기
104
만 한다. 어려운 것도 많지만 하여튼 듣는다.
작은 밋업들이 많아서 좋기도 하지만, 다양한 사람들이 와서 좋다. 지난 주엔 핀테크
개발자가 왔는데, 코인과 CDDC에 대한 이야기를 물어볼 수 있었다.
가상화폐 거래소에도 node.js 가 사용된다는 걸 알고는 깜짝 놀랐다.
종종 이직을 위해 퇴직했던 선배들이 학교에 와 있기도 한다.
과제에 대해 도움을 받을 수도 있지만, 첫 직장 이야기를 듣는 것도 도움이 된다.
하여튼 학교에 학생들뿐 아니라 다양한 사람들이 왔다 갔다 하니 조금만 용기를 내어
물어보면 다양한 경험들을 들을 수 있어, 이곳이 참 좋다.
(3) 기업들 이야기
요즘에 신입사원 구하기가 매우 힘들다. 새로운 신입사원을 구했다 하더라도, 3년정도
지나고 나면 남아 있는 친구들이 없다. 반면, 계속 사업은 계속 확장하느라, 인사팀이 사
람 구하러 다니는 게 일이다.
새로운 사람을 구했다고 해도 일은 끝나지 않는다. 경력사원들 관리도 쉽지 않고, 신
입사원들 관리도 쉽지 않다.
그런데, 이 캠프에선 꾸준히 학생들이 배출되니까 자주 찾게 된다. 커리큘럼이 우리
회사랑 어느 정도 맞아서 채용을 해도 부담이 없다.
처음엔 조금 복잡한 코드테스트를 했는데, 요즘은 그렇지 않다. 이미 복잡한 과제들이
있기 때문에 과제 코드를 보고 이것저것 질문한다.
요즘은 오히려, 우리 회사랑 궁합이 맞는 친구들을 찾기 위해 몇몇 친구들을 눈 여겨
보고 있다. 한 달에 두세 번 캠프를 방문해서, 친구들의 코드를 봐주는 요즘은 친구들을
데려와서 함께 이야기하게 되니 더 좋은 것 같다.
105
3. 학교 만들기
가. 소프트웨어 이야기
소프트웨어 기술은 처음에는 그냥 컴퓨터를 다루는 기술이었다.
CPU, 메모리를 이용해 복잡한 계산을 하고 데이터를 화면에 뿌려주는 게 전부였다.
좀 더 복잡해지면서 워드, 엑셀, 파워포인트 같은 제품들이 만들어졌다.
이 때 까지만 해도 소프트웨어란 건 1대의 PC에서 1개가 실행되는, 멀티 기능의 새
로운 하드웨어였다.
그런데 인터넷이 나오면서 많이 변했다.
“검색” 같은 독립사업이 생기기도 했지만, 무역, 국방, 금융 등 산업에 맞게 성장하면
서 시스템의 모습도 분화되었다.
스마트폰, 웹, 스마트TV가 등장하자 기술은 더 복잡해졌다.
그러면서 소프트웨어 기술은 파편화되었다.
그래서 맥락 하나를 쫓아가면 모든 것을 죽 꿸 수 있는 그런 분야가 아니다.
필요한 기술을 그 때 그 때 익히면서 문제를 풀어나가는 그런 분야가 되었다.
물론 하드웨어를 다룬다는 관점에서 가장 기본이 되는 컴퓨터에 대한 공부는 해야 한
다. 그래야 상위 기술을 익히기 쉽기 때문이다.
어느 정도 기초를 익히고 나면, 다양한 프로젝트를 통해 스스로 성장해야 한다.
그게 개발자에게 요구되는 능력이다.
나. 학습자 시나리오
개발자는 경험을 바탕으로 성장한다.
이론은 교재를 기반으로 체계적으로 정립한다.
106
익혀야 할 게 있으면 다짜고짜 시작한다.
필요한 이론은 프로젝트를 하면서 그 때 그 때 습득한다.
이걸 여러 번 반복해서 무의식 중에 몸에 베일 수 있게 한다.
필요한 정보는 여기저기 공개된 정보를 참고한다.
지식은 외우기 보다 그때 그때 찾아본다.
검색할 수 있을 정도의 기초지식을 가지고 있어야 한다.
최종적으로 현실 문제를 이해하고 해답을 도출하고 그걸 코드로 구현하여 문제해결에
기여할 수 있어야 한다.
목표는 “재현능력”이다. 비슷한 걸 만들거나 재현할 수 없다면 이걸 배운 게 아니다.
프로젝트를 할 땐 동료들과 잘 협력해서 함께 만들 수 있다.
그림을 함께 그리고, 일을 나누어서 하고 필요하면 리딩을 하고, 필요하면 팔로잉을
한다. 팀 작업을 함께 해도 거의 실패하지 않고 결과물을 만들 수 있다.
학교 모델에선 여기까지를 기본으로 생각한다. 더 이상은 고급레벨이다.
다. 학습원리
(1) 교육의 핵심
실력 향상을 결정하는 건 결국은 “학습량”이다.
많이 보고 많이 경험하고 많이 생각하는 거다. 많이 이야기하고 많이 싸우면서 최적
의 해답을 찾아가는 거다. 여기서 학습량은 “경험”의 양을 말한다.
“학습량”에 직접적으로 관여하는 건 “학습시간”이다.
하지만, 학습시간이 많더라도 헤매고만 있으면 실력이 늘지 않는다. 헤매지 않게 해주
는 게 “질문”이다. 질문은 “방향성”을 제시해준다.
107
즉, 경험량을 높이고 방향성을 잡아주기 위한 방법들이 아래의 내용들이다.
(2) 학습자 중심의 교육관
“가르치는 사람”이 아니라 “학습하는 사람”을 중심으로 교육을 설계한다.
전통적인 교육은 “교수자”가 교습행위를 잘 하도록 모든 지원활동이 일어난다. “교수
자중심 학습법” Teacher centered learning이라고 한다. 수업시간에 학생들은 서로 소통
하지 않고, 교수자 하고만 1:1관계를 형성한다. 이 때 학생들은 스폰지 같이 모든 걸 흡
수하는 인지상태에 있다고 가정한다.
현대교육에선 이 가정이 틀렸다고 본다.
지식이나 경험은 결국 받아들이는 사람이 어떻게 받아들이나 보고 교육을 설계한다.
그래서 학습자가 지식을 습득하는 인지과정에 초점을 맞춘다. 어떠한 인지과정이 일어나
도록 경험 목적의 학습환경을 구성한다. 스스로 그 경험을 하는 건 학생의 몫이다.
소프트웨어 개발은 정확히 이 관점을 따라간다.
직접 해봐야만 실력이 늘기 때문에 학생들이 직접 코딩을 해보는 것에 초점을 맞춘다.
교수자가 아무리 잘 가르쳤어도, 학생들이 직접 해보지 않았다면 배움은 일어나지 않
은 거다.
(3) 구성주의 학습
“구성주의 학습”이란 지식은 경험을 통해 구성된다는 교육이론이다.
그래서 학생들이 지식을 습득할 수 있도록, 그런 경험 환경을 만들어준다.
예를 들어, OSI 7 Layer를 알게 하기 위해, 간단한 TCP/IP 통신프로그램을 만들어보
게 한다.
중요한 건 학생들이 OSI 7 Layer를 검색해서 공부를 해야 한다는 거다. 초보자용 과
제이나 학습집단이 소수라면 반드시 힌트를 넣는다.
반면, 고수이거나 서로 코칭이 활발하게 일어나는 집단이라면 힌트를 제거한다. 사고
108
의 범위를 제한할 수 있기 때문이다.
(4) 그룹학습방식
3-5인 단위의 소그룹으로 학습한다. 교수자의 부재를 동료로 채운다. 단방향 전달방식
을 상호소통방식으로 바꾼다.
3-5인은 한 팀으로 공부하기 좋은 가장 사이즈다. 집단이 커지면 적절히 역할을 나누
어서 다시 소집단으로 활동하게 한다.
가능하면 프로젝트마다 그룹을 바꾼다. 경험의 다양성 때문에 그렇다.
마음 맞는 친구가 있다면 오랫동안 같이 해도 된다. 학습 상태와 질에 따라 유연하게
대응하면 된다.
두 개 이상 참여해도 좋지만 연습시간이 적어 실력향상이 되지 않는다면 좀 덜 참여
해야 한다. 그룹학습은 수단이지 목표가 아니다.
(5) 커뮤니티 학습
학습 커뮤니티란 공부를 같이 하는 집단이라는 뜻이다. 목적 집단이라는 관점에서 “친
목형 커뮤니티”와 다르다.
양질의 커뮤니티를 유지하기 위해서는, 학생들이 도움을 얻고자 할 때 30분 이내로
피드백을 받을 수 있어야 한다. 함께 공부하고자 할 때, 일주일 이내 동료를 구할 확률이
90% 이어야 한다.
현재 팀과 갈등이 생겨 찢어질 때, 적어도 3번 이상 팀을 갈아타도 될 만큼 풀이 넓
어야 한다.
이 팀은 보통 비슷하게 학습진도를 나간다. 보통 100명 이상의 코호트 그룹으로 꾸며
준다.
코호트 그룹의 동질성을 부여하기 위해, 가능한 같은 커리큘럼을 따르게 한다. 즉,
100명이 모여 있는데 다 다른 공부를 하고 있다면, 서로 도와주거나 협력할 이유가 생기
지 않는다.
109
미션을 해결하기 위한 협력학습은 짧으면 1주일, 길면 한달을 넘기지 않는게 좋다.
길어지면 감정적 갈등이 생길 확률이 높아져 커뮤니티 분위기가 나빠진다.
(6) 프로젝트 기반 학습
전통적인 교육법에선 교재를 다 뗀 다음 마지막 과제로 프로젝트 하나를 해보게 한다.
“마스터 학습법 Mastery Learning” 이라고 한다. 숙달을 통해 실패를 하지 않게 한다.
부품처럼 일해야 하는 노동자들을 교육시킬 때 적합한 방식이다.
소프트웨어 개발은 R&D 성격을 갖는다. 어떻게 문제를 해결해야 할지, 어떻게 개발
해야 할지 고민하는 게 일상이기 때문에 “숙달”을 연습하는 게 전혀 도움이 되지 않는다.
그래서 문제풀이를 반복 연습하는 “프로젝트 기반 학습 Project-based learning” 방
식으로 교육과정을 구성한다. 초보자들은 작게 해보고, 고수들은 큰 사이즈로 해본다. 다
만 큰 사이즈라고 하더라도 현업수준을 넘어서진 않는다.
교육환경이란, 현업의 경험을 시뮬레이션 함으로써 교육목적을 달성하는 거다.
현업수준에 맞게 구성된다면 교육환경을 유지보수하기 위한 자원투입이 계속되기 대
문에, 교육의 지속성을 보장할 수 없다.
(7) 나선형 학습
Spiral Learning이라고 부른다.
첫 과제에는 OS, 네트워크의 기초적인 내용만 공부하면 되고, 다섯번째 과제쯤에는
OS, 네트워크의 심화내용을 공부하도록 구성하는 거다.
계속 비슷한 방식으로 전체 내용을 반복하면서, 쉬운 문제에서 어려운 문제로 나아가
도록 구성하는 걸 말한다.
지식이 파편화되어 있고, 융합역량이 중요할 때 처음부터 이렇게 시작하는 학습법인데,
개발자가 프로젝트를 하는 방식과 동일하다.
프로젝트 기반 학습법과 함께 생각하여 교육과정을 설계한다.
110
(8) 성인학습
교육대상이 성인이라는 건, 반대개념인 “아동학습”과 많이 다르다.
성인은 자기 필요성에 의해 배우러 오기 때문에, 수동적인 아동교육환경처럼 설계했을
때 오히려 재미를 잃거나 배움이 속도나 질이 확 떨어진다.
그래서 현실중심, 실용주의적인 가치관으로 교육내용을 구성하고, 서로 가르치고 배울
수 있게 “상호학습방식”을 배치함으로써 교육의 몰입도를 높인다.
기타 등등 성인학습의 기본 원리를 활용한다.
(9) 놀이터 학습
학교는 성인들의 놀이터처럼 동작하도록 설계한다.
누구나 들어올 수 있고, 누구나 나갈 수 있다. 학교에 오면 다양한 놀이시설들이나 장
난감들이 흩어져 있다.
학생들은 여기서 혼자서 무언가를 하거나 친구들과 함께 큰 동상을 만들어볼 수 있다.
놀이터는 “환경학습”이다. 인지발달에 필요한 놀이기구를 설계하고 거기서 학생들이
놀게 한다.
서버랙이나 아두이노 같은 하드웨어부터, Linux Kernel, Unix 같은 OS 바이너리, 운영
중인 웹 서비스까지 모든 게 학생들의 놀이기구가 될 수 있다.
놀이터 학습은 학습의 속도보다 학습의 질에 관여한다. 소프트 스킬이 훨씬 더 풍부
해지고, 기술의 깊이가 깊어진다.
“코딩학원”들은 단기간에 교육을 끝내야 하기 때문에, 웹 개발 1단계~5단계처럼 프로
세스 기반으로 설계해야 하지만, 장기간 교육이 가능한 “학교”라면 놀이터처럼 구성한다.
(10) 자율학습, 자율진도방식
자율 학습이란 Unsupervised learning, 비지도 학습이라고 한다. 즉, 교수자가 학습
을 감독하지 않는 거다.
111
자율 학습의 목적은, 학생들의 자율성을 높이기 위한 거다. 성인으로 살아가기 위한
기본 소양이며, 학교는 이를 적극 지지한다.
자율성은 자기가 정보를 찾고 결정하고 책임지는 과정에서 길러지는데, 실패했을 때
원인을 분석하고 자신의 행동을 교정함으로써 더 강화된다. 충분한 시간이 필요하기 때
문에, 학습진도도 알아서 나가게 한다.
동료들이 도와줄 수는 있지만, 교수자가 먼저 개입하지는 않는다.
학습동기가 상실되면 학교 밖에 머무르게 한다. 동료학습은 면학분위기가 중요하기 때
문이다. 단, 쉽게 복귀할 수 있도록 한다.
(11) 수업, 교실, 강사 없음
이 교육에서 배척하는 건, 강사가 강의를 통해 지식 전체를 1장부터 10장까지 전달하
는 방식이다.
학생들은 교수자에게 학습을 의존하게 되고, 결과에 대한 책임을 학교나 교수자에게
돌리게 된다.
이런 학생이 사회로 나오는 건 산업경쟁력을 약화시키는 지름길이다. 회사는 책임 전
가 게임이 아니라, 부가가치를 창출함으로써 생존하는 게임이기 때문이다.
특강이나 세미나, 밋업 등은 괜찮다. 강의 형식을 거부하는 게 아니라, 전통적인 수업
방식을 거부하기 때문이다.
강사 의존성과 규율 의존성을 높이지 말아야 한다. 자율성과 주체성이 핵심이다.
라. 학교의 자산
학습이 일어나는 원리는 그렇다 하더라도, 학교는 어떤 모습이어야 할까?
무엇에 투자해야 교육의 질을 높이고, 좋은 학생들을 키워 나갈 수 있을까?
모든 게 다 중요하겠지만, 세가지로 압축시켜 본다.
112
첫째, “프로젝트형 과제”로 구성된 “문제은행 DB” 다.
교육내용을 “프로젝트형 과제”가 결정한다.
학생들이 여러 가지 경험을 해보고 사회로 나갈 수 있도록 산업별, 기술별로 풀수 있
는 다양한 과제가 있으면 좋다.
헤매지 않고 필요한 걸 선택할 수 있도록 전체 지도를 제시한다.
과제설명과 난이도를 잘 표시해서 현재 풀 수 있는 내용인지 아닌지 알 수 있게 한다.
과제를 하기 위해 공부할 내용들과 필요한 교재, 기타정보, 키워드들이 기재되어 있어야
한다.
즉, 과제 접근성을 쉽게 해준다. 그래야 자율학습이 된다.
과제 접근이 어려우면 누군가 선택을 도와줘야 한다. 그럴 사람이 충분히 있으면 좋
겠지만 대부분 없다.
정보탐색 시간과 헤매는 시간은 명백히 다르다. 헤매는 시간을 줄여주는 건 “교육기관”
의 역할이다.
과제는 쉬운 것부터 어려운 것까지 레벨을 잘 구성해서 채워 넣는다. 갑자기 어려워
지면 학생들은 헤매기 시작한다.
난이도를 잘 배치해서 “커리큘럼”으로 만든다.
하나의 커리큘럼은 하나의 완성된 경험이도록 구성한다.
프론트엔드, 백엔드 등 부품 형태로 커리큘럼을 짜지 않는 게 좋다. 경험의 동선이 끊
어져서 커리큘럼을 다 끝내도 일을 할 수 없는 상태가 된다.
가능하면 회사에서 일을 할 수 있는 형태로 필수적인 구성을 한다. 프론트엔드 과정
이라도 백엔드 과제를 써서 경험을 하나로 잇도록 하면 좋다.
둘째, 잘 훈련된 “학습 커뮤니티”다.
113
교육의 질을 “학습 커뮤니티”가 결정한다. 교육결과에 관여하는 직접요소이다.
집단학습은 교수자 역할을 동료들이 대신하는 교육법이다. 동료그룹들이 형성되지 못
하면 이 교육은 실패한다.
물론 학생들은 이런 상호학습, 집단학습 방식에 대해 우호적이어야 한다. 장점을 잘
이해하고 잘 활용하거나, 단점을 보완해서 비는 게 없도록 해야 한다.
서로에 대해 협조적이거나 리딩할 수 있어야 학생들이 커뮤니티와 연결된다.
단, 친목그룹이 아니라 과제 학습을 목적으로 하는 “목적그룹”이어야 한다.
질문에 답해주는 것에 그치지 않고 함께 과제 할 수 있는 동료들이 있어야 한다.
그래야 Pair coding 이나 XP Programming 같은 활동들이 일어난다.
가장 밀도가 높은 지식전이활동이라 이 경험만으로도 학생들은 변한다.
셋째, 학생들과 스킨쉽을 쌓을 “현업 개발자 그룹”이 필요하다.
현업개발자를 만나보는 것과 아닌 것의 차이는 하늘과 땅차이다.
학교는 학생들이 현업개발자와 쉽게 만날 수 있는 환경을 제공할 필요가 있다.
현업개발자를 만나면 학생들의 목표는 구체적이면서 현실적으로 변한다. 모호함이 걷
혀 나가고, 동기와 학습일정, 목표역량 등을 스스로 설정하게 된다. 진행자가 앞에 나서
서 이렇게 하세요. 저렇게 하세요라고 말할 필요가 없다.
하지만 제도적으로 강제되면 안 된다. 현업 개발자들도 학교에 올 이유가 있어야 서
로 윈윈하게 된다. 그래야 교육이 지속된다.
가장 좋은 건 학생들이 “개발자 커뮤니티” 속으로 들어가는 거다. “파이썬 커뮤니티”
나 “자바 커뮤니티” 등에 학생들이 참여할 수 있게 이런저런 기회를 마련해준다.
114
제6장. 교육 설계하기
1. 교육과정 설계
가. 개발자 성장모형
가장 먼저 인재상을 결정한다.
교육을 공장처럼 찍어낼 순 없지만, 방향을 정하면 개략적인 동질성이 나온다.
이 교육모델에서 졸업시점의 스냅샷을 취업 수준으로 정한다.
그 시점에 가져야 할 역량들을 “역량모델”, 습득과정을 “성장모형”이라고 한다.
기본적인 내용은 “제2장. 어떻게 개발자가 되는가?”에서 자세하게 설명했다. 다른 인
재상을 원한다면, 거기에 맞게 다시 설정하면 된다.
교육설계를 할 땐 역량항목들은 자세하게 정의한다. 역량항목은 What을 결정한다.
내 맘대로 하면 될 것 같은데, 이것도 국제규격 같은 게 있다. 잘 찾아보자.
여기에선 기업 시각을 반영하기 위해 “CTO관점”에서 다음과 같이 정의한다.
(1) 인지발달이론
우선 경험과 지식이 어떻게 형성되는지 인지적 과정을 정리해본다.
장 피아제 비고츠키
학생에 대한 정의 학생은 사회적 상호작용을 통해
인지발달을 이루는 능동적 학습자
학생은 세상을 스스로 학습해 가는
“독립적인 발견자”
인지발달의 주
요인
타고난 인지능력을 통해 환경과
접촉하며 스스로 인지발달
사회적 상호작용과 여기서 얻는
고등정신기능을 하동이 내면화하면서
인지발달
주요 용어 동화, 조절, 인지적 불균형 근접발달영역, 스캐폴딩
문화적 맥락에
대한 견해
인지발달에 큰 영향 없음 문화적 맥락이 제공하는 문화적 도구가
인지발달을 매개함
언어 인지발달의 부산물
언어는 지적기능수준을 높여주지 않음.
언어는 사고, 문화전달, 자기조절을 위한
필수기재, 언어는 지적기능수준을 높여줌
115
사회적 상호작용 사회적 상호작용은 인지적 불균형
상태를 만들어서 인지발달을 촉진시킴
* 또래의 상호작용이 중요함.
사회적 상호작용은 언어를 습득하고
고등정신기능을 학습할 수 있도록 도움을
제공하여 인지발달을 촉진시킴
* 이질적 수준의 학습자와 상호작용(어른,
교사, 앞선 동료)
학습과 인지발달 학습은 발달에 종속
학습이 발달을 주도하지 못함
학습이 발달을 높은 수준으로 끌어올림
사회적 상호작용이 중요한 요소
표 13 피아제, 비고츠키17
의 인지발달이론
소프트웨어 개발은 두 가지를 다 고려한다. 두 가지 다 해당사항이 있다.
개발자는 상호작용을 통해 정보를 습득하지만, 코딩은 결국 혼자서 해야만 경험과 지
식으로 굳어진다.
상호작용은 지식과 경험이 아는 사람에게서 모르는 사람으로 흘러가는 불균형 해소과
정이다. 따라서 교육환경을 구성할 때, 다양한 경험의 사람을 골고루 섞어서 구성해야 한
다. 동질적이고 비슷한 수준의 사람으로 집단을 구성하면 학습은 일어나지 않는다.
경험이 없으면 생각을 확장하지 못한다. 이 때 힌트와 가이드를 제공함으로써 벽을
깨고 나오게 만드는 조력활동을 “스캐폴딩”이라고 한다.
이런 과정을 잘 일어날 수 있도록, 학습분위기를 잘 조성할 필요가 있다.
(2) 역량 지표의 설정
인지과정을 이해했다면, 어떤 사람이 배출되어야 하는지 정의해보자. 이 때 기대되는
능력을 “역량”이라고 한다.
역량은 그 사람이 가지고 있는 실력을 말하고, 역량기준은 내가 그 사람을 볼 때 평
가하고 판단하는 기준이다. 학교에선 일종의 성적표처럼 활용될 수 있다.
우리 교육 모델에선 역량기준을 산업사회와 유사하게 맞춘다. 학생들이 사회로 나갈
때 이질감이 없도록 하기 위함이다. 용어차이가 크면 학생들은 헷갈려 한다. “프론트엔드
17
비고츠키 Lev Semenovich Vygotsky : 1896-1934, 소련의 인지심리학자, 인지발달이론 제시 (“근접발달
영역” 개념을 처음 사용), 장 피아제 Jean Piaget : 1896-1980, 스위스의 철학자, 발달심리학자. 자기 딸들의
성장과정을 관찰, 교육실험을 통해 “인지발달이론”을 재정립했다.
116
개발자”, “데이터 엔지니어” 등으로 표현한다.
역량지표는 What을 의미하지만, How를 위해 사용된다.
즉, 계량할 수 있어야 지표로서의 의미가 있다.
그래서, “사람”을 평가하지 않고 “행동” 및 “결과”를 평가한다.
예를 들어, “창의력”, “도전성” 이런 건 역량항목으로 삼지 않는다.
이런 건 훌륭한 국민을 양성하고자 하는 K-1218영역에서 쓰는 거다.
“너는 창의성이 10점이야.” 이게 아니라, “너는 창의력이 필요한 과제를 5번이나 했네.”
이렇게 표현한다. 학생이 어떤 것에 관심이 많고 어떤 일을 많이 했는지 표현해줘야 한
다.
역량항목과 점수는 공개한다. 동료들이 서로의 상태를 금방 인지를 하고, 조력활동을
할 수 있도록 한다.
(3) 하드 스킬 요소
하드 스킬은 “프로그래밍 언어” 등 소프트웨어를 만드는 직접기술이다.
Java Spring, Ruby, Android 등 업계에서 쓰는 포괄적인 용어를 사용한다.
개발과 엔지니어링 둘 다 포함한다.
역량항목은 계층형으로 만들지 않아도 괜찮다.
목표는 이 지표만으로 상대방을 개략적으로 알아볼 수 있게 하는 거다.
그래야 집단학습과 동료학습이 된다.
학교라면 갖춰야 할 기본지식이 “컴퓨터의 동작원리”이다.
18
K-12 : 초.중.고등학교 12년을 일컫는 말. 초등교육과 중등교육을 말한다.
117
CPU, 메모리, 스토리지, 네트워크라는 하드웨어 세계부터, OS, 플랫폼, 웹이라는 소프
트웨어 세계까지 포함한다.
지식항목은 시험 등을 통해 따로 평가하진 않는다.
과제나 프로젝트로 결과물을 만들어 실력으로 증명하지 않으면 평가하지 않는다.
(4) 소프트 스킬 요소
“협업능력”, “소통능력” 등으로 구분한다.
인사평가에서 정성적 평가에 해당하는 항목이다.
많은 기업들이 채용할 때 직접 반영은 하지 않지만, 충분히 고려하는 사항이다.
소프트 스킬은 업무수행에 필요한 능력이기 때문에 동료들의 평가로 측정한다.
주관적 편향성이 존재하기 때문에, 정규분포를 따르도록 충분히 많은 평가를 한다.
“디지털 문해력”, “유연성”, “도전정신” 등 학교 항목은 사용하지 않는다.
이 항목들은 전인적 교육을 위해 도출한 기준으로, 교사들의 학습지도에 유용한 지표
이다. 집단학습에선 학생자신이나 동료, 기업 개발자들에게 아무런 의미가 되지 못한다.
역량지표의 존재이유는 행동변화를 이끌어내기 위한 것이다.
내가 어떻게 성장해야 할지, 어떤 역량을 가져야 할지 명확하게 보여 주어야 한다.
즉, 학습 자체에 도움이 되지 못한다면, 지표화 하지 않는 게 좋다.
(5) 경험치 부여
레벨업을 표현할 때는 범용 지표과 특성화 지표를 사용한다. 범용지표는 “경험치”이다.
118
경험치는 경험이 쌓였음을 증명하는 수치다. 과제를 클리어 하거나 미션을 달성했을
때 준다.
그래서 경험치는 “학습량”을 의미한다. 경험치가 높으면 오랫동안 많은 과제를 푼 거
다.
경험치가 높아서 주어지는 보상은 없다. 올바른 방향성만 표시한다.
베껴 쓰기 등 잘못된 행동을 했을 때는 경험치가 깎이도록 설계한다.
특성화 지표는 하드 스킬과 소프트 스킬의 점수다.
경험치가 많더라도, Java 스킬은 낮을 수 있다.
Python 점수는 높더라도, “협력적 태도”는 점수가 낮을 수 있다.
지표는 모두 주관적 척도를 사용한다.
평가를 여러 번 반복함으로써 자연스레 실제 점수에 가까워지도록 설계한다.
나. 교육 콘텐츠 설계
(1) 무엇을 교육할 것인가?
그 역량을 기르게 하기 위해, 무엇을 교육시킬 것인가? What을 먼저 정의해보자.
구분 구분 사례 일반적인 습득방식
1 이론, 규격, 표준 http 의 동작원리, 웹브라우저의 구조
등
검색해서 공부하고, 원리를 이해함.
2 프로그래밍 언어 파이썬, C, C++, Java 등 공부해서 이해하고, 코딩을 해봄
3 플랫폼 윈도우, 안드로이드, iOS 등 구조를 이해하고, 응용해봄으로써
사용요령을 익힘.
4 프로그래밍 능력
(코딩능력)
통신모듈, 배치처리 프로그램 등
- 기술의 동작원리를 이해하고,
프로그램을 많이 만들어 봄
기술의 동작원리를 이해하고,
프로그램을 많이 만들어 봄
5 소프트웨어 개발 예) 메모장, 계산기, 게시판 등 제품을 분해, 재현, 완성시킴으로써
119
능력(제품화) - 하나의 목적으로 동작하는 앱 경험을 완성시킴
- 규모가 커지면, 협력이 필요함
6 인터넷 서비스
개발
예) 직방, 배달의 민족(연습용 버전)
- 고객에게 지속적 가치를 제공하는
선순환 선순환 서비스
사용자 가치 이해, 필요한 내용 식별,
구조 설계, 기능개발
- 호흡이 길고 복잡해, 여러명의
협력개발이 필수
표 14. 웹,앱 개발자가 기술을 습득하는 방식
전통적인 학습에선 교수자가 가르칠 내용을 정하고, 강의를 통해서 전달한다. 그래서,
1단계인, “이론, 규격, 표준” 등을 자세히 가르쳐주는 것 까지만 가능하다. 나머지는 다
자기가 알아서 해야 한다.
혼자서 해볼 수 있는 수준이 4 단계에서 5단계의 심플 버전까지다. 온라인 사이트나
문제 풀이 정도를 해보는 거다.
기업에서 원하는 채용수준은 간단하게라도 5단계, 6단계를 해본 사람들이다. 기술의
복잡도가 커지면서 업무의 복잡성이 커졌기 때문이다.
회사마다 업종마다 달라지는 건 회사에 가야만 습득이 가능하다. 학교에선 공통수준의
경험만 할 수 있어도 된다. 실력은 저런 프로젝트를 반복하면서 자연스레 깊어지고 넓어
진다.
그런데, 개발자들은 이런 경험을 단계별로 습득하지 않는다.
즉, 1단계 한 다음, 2단계 하는 방식으로 습득하지 않는다.
무언가를 구현하기 위해 필요한 걸 배워가면서 익힌다. 지식과 경험DB에 순차적 방식
으로 접근하지 않고, 무작위로 접근하는 거다.
즉, 교육설계를 할 때, 도서관 속에 학생을 던져 놓는 것처럼, 밀도가 높은 경험과 지
식 DB 환경에 학생들을 던져 놓고, 계속 무언가를 만들어보도록 미션을 주는 방식으로
설계한다.
웹 개발이면 파이썬을 공부하던, node.js를 공부하던, 가장 많이 만들게 해보는 대표
120
사례가 “웹 게시판”이다.
개발자로 시작하기 위해 익혀야 할 내용들은 대부분 들어가 있으면서 학생들이 도전
해볼 수 있는 가장 쉬운 단위이기 때문이다.
앱 개발자라면 “일기장”이 그 역할을 하고 있다.
단, 여기서 교육의 결과물은 “돌아가는 프로그램”이 아니다.
그걸 만들기 위해 필요한 기술과 원리를 습득, 응용할 수 있는 학생의 실력.
그게 교육의 결과물이어야 한다.
(2) 프로젝트 기반 학습방식
소프트웨어 산업은 개발과 운영으로 나뉘어져 있다.
스타트업에선 두 개가 섞인 개발운영(DevOps)를 하지만, 이 교육모델에선 “개발”에
집중하자.
개발은 모두 “프로젝트” 단위로 이루어진다.
제한된 자원과 시간 안에 주어진 목표를 달성해야 한다.
이 과정은 팀원역량을 주어진 시간 안에 종합적으로 발휘해야 하는 협업게임이다.
교육 콘텐츠도 이렇게 할 수 있도록 설계한다.
121
그림 19. “프로젝트”와 “프로젝트 기반 학습법”의 차이점 (magnifylearning.org)
그런데, “프로젝트”를 하는 것과 “프로젝트 기반 학습법”은 조금 다르다.
일반적인 대학수업은 4학년 교육과정의 마지막으로 “프로젝트”를 한다. 캡스톤 프로젝
트라고 부른다. 이건 “프로젝트”이지 “학습”이 아니다.
“프로젝트 기반 학습법”은 “프로젝트”를 통해 “학습”하는 과정이다.
회고를 통해 교훈을 정리하고 지식화 시켜 내 몸속에 보관한다. 무엇을 알게 되었고,
무엇이 중요했는지 서로의 관점과 생각을 나누는 게 중요하다.
그게 다 내 몸속에 지적 경험적 양분으로 쌓이게 된다.
“교육 콘텐츠”는 이렇게 학습할 수 있도록 만들어져야 한다.
그런데 대부분의 “현업개발자”들에게 “프로젝트형 콘텐츠”를 만들어 달라고 하면, 대
부분 그냥 “프로젝트 사례”를 과제로 낸다.
현업에 준하는 수준이지만, 학교에 적용하기는 어렵다.
학생들에겐 지식화 시킬 경험이 없기 때문에 “학습”이 일어나지 않는다. 그래서 “현업
사례”들은 반드시 학생들이 할 만한 수준으로 “레벨다운”을 해야 한다.
122
기준은 학생들이 스스로 찾아갈 수 있도록, 수준을 단계별로 쪼개는 거다.
중요한 건 답이 아니라, 학생들이 해야 할 경험들을 정의해야 한다는 거다.
(3) 학습 콘텐츠 설계 원리
“프로젝트 기반 학습”의 작은 개념으로 “문제 기반 학습법”이 있다. 비교해서 설명해
보자.
프로젝트 기반 학습 문제 기반 학습
목표 : 최종 제품이 있음
- 학생들은 답이 없는 개방형 과제를 수행.
여러 개의 문제가 포함되어 있음.
- 학생들은 문제를 분석하고 솔루션을
만들어야 함.
- 학생들은 솔루션의 프로토타입을 만들고
개발
- 전문가, 강사, 동료의 피드백을 기반으로
솔루션을 개선함
목표 : 새로운 발견, 지식의 습득
- 학생들에게 답이 없는 개방형 질문이
제시됨
- 학생들은 질문을 분석하고
- 현상을 설명하는 가설을 세움
- 추가 후속질문을 만들어내고
- 질문에 답할 수 있는 추가 데이터를
검색함.
표 15. 프로젝트 기반 학습, 문제 기반 학습에 대한 차이점
두 개는 대척점에 있지 않다. 같은 맥락이고 지향점도 비슷하다.
개발자 관점에서 보면 하나만 써도 되고 두 개를 섞어서 써도 된다.
중요한 것은 틀리고 볼품없더라도 학생들이 스스로 뭔가를 만들어 내야 한다는 거다.
그게 첫 번째다. 그리고 그걸 반성하고 더 좋은 걸 만들기 위해 다시 해봐야 한다.
이게 두 번째다. 이 경험의 세트가 가르쳐야 할 내용이다.
정답이 있지 않기 때문에 동작하는 그 무엇만 만들어낼 수 있으면 시작할 수 있다.
이런 걸 2~3회 반복해서 만들어보면, 아무리 어려운 개념이라도 머리속에 딱 잡힌다.
이걸 찾아가고 탐구해가는 과정이 오픈북 형태의 토론이다.
그런데 토론의 장점을 느끼려면, 좋은 사람들과 만날 수 있어야 한다.
그래서 이 학습법은 어쩔 수 없이 “집단학습”이 필수이다.
123
(4) 학습 콘텐츠 제작과정
그러면 “프로젝트형 과제”는 어떻게 만들어야 할까?
범위를 넓히면 어려우니까, 신입사원 취업자 기준으로 좁혀보자.
구분 주요내용
핵심 커리큘럼 자체보다, 학생에게 초점을 맞출 것.
배워야 할 지식이 아니라, 학생들이 겪어야 할 경험을 기준으로 설계, 관리
교수자의 역할 교육관리자, 교육 운영자, 교육프로그램 진행자
촉진자의 역할. (교육관리, 부족한 경험의 조달)
주요이론 상황학습, 구성주의 학습, 경험학습
키포인트 - 장기적인 학제 개념으로 학생들이 학습활동을 해야 함. (최소 6 개월 수준)
- 학생들이 자신이 공부할 작업을 구성하고, 자기 시간을 관리해야 함
- 결과물은 반드시 코드, 서비스 등으로 제출되도록 구성
학생의 역할 - 문제 해법을 적극적으로 연구, 창의성을 발휘
- 자신을 평가, 동료를 평가, 평가 가능한 사람으로 성장
설계시 고려사항 - 답이 없는 개방형 질문일 것. 도전할만한 주제일 것
- 필수 콘텐츠가 있어야 함.
- 문제를 풀기 위해 알아야 할 기술이 있도록 설계
- 답을 풀기 위해 창조, 탐구할 꺼리가 있도록 설계
- 토의, 토론, 협업 등 다양한 커뮤니케이션이 가능하도록 설계
- 학생들의 목소리와 선택을 교과에 반영
- 코드리뷰, 피드백, 수정 등이 연결되어 일어나도록 설계
- 결과는 공개되어져서 다른 사람들이 참조하거나 개량할 수 있어야 한다.
세가지 유형 챌린지 기반 학습(문제기반 학습) : 실생활 문제를 해결하는 것
장소 기반 교육 : 그런 장소에 학생이 가보게 하는 것
활동 기반 학습 : 봉사활동, 소셜활동에 참여시키는 것
평가 결과를 동료들이 평가, “평가지시서”(루브릭)을 기반으로 주관적 평가
- 주관적 편향성을 평가반복을 통한 정규분포 수렴으로 커버함
주의사항 무임승차가 필연적으로 발생
이론공부가 필요한 부분은 프로젝트 학습이 적합하지 않음
결과의 평가가 “루브릭”(평가지시서)에 의존함으로써 표준성이 약함
표 16. 프로젝트형 학습 콘텐츠 제작 요령
과제 제작시 고려해야 할 요소들이다. 전체적으로 조명하기 위해 주욱 정리를 해보았
다. 중요한 건 학생들이 경험을 통해 스스로 공부하도록 유도해야 한다.
구체적인 제작과정을 예로 들어보자.
124
① 목표 프로젝트 설정
네이버 프론트엔드 개발팀에서 신입사원을 뽑는다. 어떤 사람을 원할까? “채용공고”를
찾아본다.
구분 주요내용
업무소개 네이버웹툰, 라인웹툰, 시리즈 등의 프론트엔드 개발 및 운영
디지털 미디어 콘텐츠를 기반으로 하는 웹 저작도구, 웹 미디어 플레이어 개발
HTML5 기반 게임, 애니메이션, 성능최적화, SSR 등 리서치
자격조건 시맨틱 마크업, 반응형 CSS 개발
자바스크립트 프레임워크의 동작원리를 이해하고 성능을 고려한 개발
모던 프론트엔드 개발, 테스트, 빌드, 배포 환경 구축 및 도구활용
비동기 처리 및 API 기반 통신을 이해하고 효율적인 적용
우대사항 SSR 을 사용해 다량의 트래픽을 처리한 경험, 아키텍쳐 설계
모델(서버-클라이언트 통신환경 고려) 및 아키텍쳐(계층 및 관심사 분리)를
정의하고 목적에 맞는 디자인패턴 적용
WebGL, Canvas, SVG, CSS Animation 등 그래픽스와 관련있는 전문적 경험
WebAssembly 개발경험
웹 저작도구나 FE 기술을 기반으로 하는 플랫폼 소프트웨어(스마트 TV 등)
개발경험
이 외 자신만이 가지고 있는 남들과 다른 기술 및 경험
표 17. 2021년 네이버 프론트엔드 개발자 채용공고
“자격조건”은 최소 지원자격, “우대사항”은 경력자들에게 원하는 조건들이다.
“자격조건”을 100점 받는 건 불가능하다. 현장에서 필요한 건, 저 기술을 활용해 일할
수 있는 사람이지, 저 내용을 모두 알고 있는 사람이 아니기 때문이다.
따라서, 저런 내용이 포함된 프로젝트 경험이 있다면 채용이 가능하다는 뜻이다.
저 내용들은 어떻게 획득이 될까?
시맨틱 마크업, 반응형 CSS는 교재를 끼고 직접 이런 저런 페이지를 만들어봐야 한다.
가능하면 네이버가 하고 있는 서비스를 직접 구현해 보면 좋다. 이 때 쓰이는 다양한 템
플릿이나 문법들이 손에 익어 있어야 한다.
자바스크립트 프레임워크의 동작원리는, 자바스크립트라는 언어를 구사하는 것 외에도
자바스크립트가 동작하는 환경, 웹 브라우저, HTML, http 규격 등에 대한 이해가 있어야
125
한다. 그런데 이건 컴퓨터 이론에 대한 기본적인 이해를 바탕으로 빈번한 사례에 대한
경험이 필요하다. 이론대로 동작하지 않는 경우가 꽤 되기 때문이다. 그리고, 통신 프로
토콜의 경우 의도와는 달리 움직이는 경우가 많아서 이런 건 실제 구현경험을 통해 습득
할 수밖에 없다.
개발, 테스트, 빌드, 배포는 작더라도 비슷한 회사를 다녀봐야 쌓일 수 있는 경험이다.
테스트, 빌드, 배포는 고객 관점에서 웹 서비스 중단없이 기능 업그레이드를 하고자
하는 방법이기 때문에, 서버 환경에 따라 순서나 제한사항이 다르고, 문제 발생 시 롤백,
재배포하는 방법이 기업환경에 따라 달라지기 때문이다.
즉, 책이나 커뮤니티 게시판을 통해 습득할 수 없고, 작더라도 상용서비스를 직접 운
영해봐야 한다.
비동기처리는 통신이론을 이해하고 있어야 한다. 그러려면 컴퓨터 비트연산이나 메모
리, 통신환경에 대한 이해도 바탕이 되어야 한다.
즉, 이 경험은 1~3년 정도 스타트업을 다니면서 여러 가지 일을 경험해 보았다면, 일
반적으로 습득되는 경험들이다. 어렵다기 보다 복잡도가 높다.
대학생 수준에서 획득할 수 없는 경험인가? 그렇지 않다. 시간만 충분히 있다면 필요
한 정보를 찾고, 친구들이랑 비슷한 프로젝트를 해보면 된다.
이 경험을 목표로 삼고 공부를 하면, 비슷한 기업에 취업할 수 있는가? 그렇다. 프론
트엔드 개발자들이 하는 일이 대부분 비슷하기 때문이다.
그렇다면 이런 자격을 갖추었음을 어떻게 증명할 수 있을까?
경력직의 경우, 대부분 기존에 했던 프로젝트를 기준으로 이야기를 나눈다. 검증하고
싶은 건 이거다.
“지금 우리 회사일을 제대로 할 수 있는가?”
보통 상황을 주고, 복잡한 기술구조나 알고리즘, 설계 등에 대한 이야기를 묻는다. 코
드를 어떻게 짜야 하는지 묻는다. 비슷한 일을 해봤고 함께 일했던 사람이 보증을 해준
126
다면 대부분 PASS 다.
신입사원의 경우, 초보적인 기술구조나 알고리즘 등을 묻고 코드를 어떻게 짜야 하는
지 묻는다. 검증하고 싶은 건 이거다. “조금 기다려주면 우리 회사일을 제대로 할 수 있
는가?”, “조금만 가르쳐주면 금방 따라와서 1인분의 몫을 할 수 있는가?”
비슷한 일을 해보지 않았고, 보증해 줄 사람도 없기 때문에 기본적으로 하드 스킬과
소프트 스킬이 준비된 친구인지 알아보는 거다.
그래서 이 수준을 “과제의 최종목표”로 정한다.
최종 목표로 정할 때 다음과 같이 익혀야 할 내용을 분해하고, 난이도를 레벨링 한다.
레벨은 5점 척도면 충분하다. 척도를 많이 나누면 평가기준도 세분화해야 하는데, 그
러면 그에 맞는 피드백이나 보상도 달라져야 한다. 피드백, 보상 수준이 세분화되면, 동
료평가를 사용하기 어려우므로, 레벨을 많이 나누지 않는 게 좋다.
구분 요구 경험 역량 구분
기술능력 http 통신에 대한 이해 프론트엔드(1), 웹기초(1)
HTML 에 대한 기초 프론트엔드(1), 웹기초(1)
React + node 코딩능력 프론트엔드(3), 프레임워크(4)
업무경험 3 인 이상 프로젝트 경험 개발업무(1)
3 개월 이상 장기 프로젝트 경험 개발업무(2)
상용 앱 출시 경험 개발업무(5)
역량은 가능하면 기업이 사용하는 용어를 사용한다.
학생들이 사회와 학교를 혼동하지 않게 되며, 학습 목표를 정확하고 정교하게 수립할
수 있게 된다. 또 용어가 같기 때문에 기업개발자들과 이야기하는데도 어려움이 없다.
전문용어는 가능하면 그대로 사용하면서 시간 있을 때 익혀 두도록 한다.
② 중간 프로젝트 설정
목표가 정해지면 중간 프로젝트를 3~5단계로 나눈다.
교재처럼 딱딱 단원을 나눌 필요는 없다. “제2장. 어떻게 개발자가 되는가?”에서 이야
기한 것처럼, 여러 역량을 함께 사용하도록 구성한다.
127
단계가 높아지면 복잡도가 높아진다. 중요한 건 “쉽게, 단계별로” 구성해야 한다.
“신입사원”은 기업 입장에선 최저 레벨이지만, 학교 입장에선 최고 레벨이다. “학교”는
기초가 없는 친구들을 교육시키는 곳이다. 그래서 쉬운 단계에서부터 시작한다.
기초가 없는 친구들에게 필요한 건 첫째 “도와줄 친구들”, 둘째 “함께 공부할 내용들”
이다. 도와줄 친구들은 학습 커뮤니티로 해결할 수 있다. 하지만 그 친구가 헌신하는 방
식으로 이루어지면 안 된다. 금방 번아웃이 오고 교육이 지속될 수 없다.
그룹학습은 기본적으로 자기가 해오고, 친구가 함께 봐주는 식으로 진행된다. “자기주
도학습”, “집단학습”, “경험학습”의 원리다.
친구가 한 번에 모든 걸 다 봐주지도 않는다. 나선형 커리큘럼 모델(Spiral
curriculum model)은 한 걸 또 하고를 반복한다는 뜻이다. 즉, 반복하면서 익숙해져서
성장하는 거다.
기술지식은 경험이 없으면 굳어지지 않는다. 예를 들어, “http 통신방식”은 한 번에
이해할 수 없다. 이론을 머리에 담고 있다고 해서 할 수 있는 게 아니다. 기술은 자기가
해본 만큼 이해를 하게 된다.
학생들이 쉬운 수준의 일을 끝내고 복잡한 수준으로 나가면서 성장하도록 만든다.
그런데, 이런 콘텐츠 설계는 생각보다 쉽지 않다. 해보지 않았다면 잘 되지 않는다.
이것도 나름 노하우가 생겨야 익숙해진다. 처음에는 이렇게 해본다.
처음에는 그냥 교재를 참고하여 구성한다. 더 세련되게 하면 좋겠지만, 아쉽게도 이게
가장 쉬운 입문방법이다.
그리고, 학생들 반응과 피드백을 보면서 계속 튜닝을 해간다. 실시간으로 바꿀 순 없
으니, 1기, 2기 이렇게 나누어 가면서 조금씩 바꾼다. 학생들의 변화과정을 관찰하고, 후
행방식으로 문제를 업그레이드한다.
튜닝이란 실사례에 맞춰 복잡도를 적절히 높이는 거다. 경험상 1~2회 정도 반복하면
문제가 꽤 쓸 만하게 나온다. 42의 경우 매년 학생들의 경과를 보고 조금씩 튜닝해간다.
중간 프로젝트 사이즈를 3~5개로 나눈다는 건, 프로젝트 하나의 복잡도나 거친 정도
128
를 적절히 표현하는 거다. 3명으로 구성된 팀이, 1주일 정도 했을 때 끝낼 수 있는 분량
이 딱 좋다.
해보니 2주일은 약간 처지는 느낌이 있고, 1주일 정도가 “협력압박”을 유도할 수 있는
적정한 기간이다. 그리고 1주일 단위로 성과가 나오면 “학습 동기”가 무척 높아진다.
목표 프로젝트를 끝내는 건 한 달 정도로 잡는다.
한 달보다 길어지면, 동기가 급격하게 떨어진다. 늘어지더라도 1.5개월 정도에 끝낼
수 있도록 사이즈를 잡는다.
프로젝트 기간과 복잡도는, 설계시 아주 중요하다.
기간이 짧으면 난이도가 낮아져야 해서, 학생들이 협력 없이 혼자 클리어 해버린다.
상호 피드백이나 토론 같은 “경험 교환 과정”은 일어나지 않는다.
복잡도와 기간을 초보자 2인이 할 만한 수준으로 맞춘다. 즉, 3명이 2명 난이도의 일
을 매주 반복하며 1달짜리 프로젝트를 하게 한다. 1명 분의 여유가 있다는 건, 서로 가르
칠 여유가 있다는 뜻이다.
이건 Full time으로 참여하는 경우이다. 직장인이라면 이야기가 좀 다르다.
직장인들의 가장 일반적인 접근성은 “저녁 2시간 x 5일 x 5주 = 50시간”이다.
그런데 저녁 2시간은, 논쟁을 벌이거나 무언가를 만들기 위한 시간으로는 부족하다.
특히 직장인들은 수업시간을 어기는 경우가 많아서 2시간을 알차게 활용할 수 없다. 몰
입시간이 낮아 협력학습을 기대하고 커리큘럼을 설계하기 어렵다.
소프트웨어 교육은 훈련프로그램이기도 하다. 꽤 시간을 두고 도전, 실패를 반복하는
학습법이다. 그래서 1~2개월 코스로는 학습이 어렵다. 3개월 단위 등 학기 개념을 도입
하는 게 좋다.
③ 단위 프로젝트 개발
“목표 프로젝트”가 기업에서 일어나는 작은 수준의 단위라면, “단위 프로젝트”는 학교
에서 일어나는 작은 수준의 단위다.
129
위에서 이야기했듯이, 3인팀이 1주일 정도를 투자할 만한 크기로 만든다. 이유는 약간
만 열심히 하면 풀 수 있을 정도로 난이도를 맞추기 위해서다.
특징 설명
시나리오성 과제는 스토리를 가지고 시나리오 형식으로 만든다. 그래서 존재하지 않는 환경 등을
상상할 수 있다. 이 상상이 협업, 창의성, 다양성을 만들어낸다.
복잡성 문제를 파악하는 것부터 시작할 수 있어야 한다. 완벽한 문제를 만들어서 이해시켜주는 게
아니라, 학생들 스스로 문제를 Define 할 수 있어야 한다.
융합성 하나의 지식, 하나의 경험 만을 활용하도록 구성하면 안 된다. 최소한 2 개 이상의
스킬들이 활용되도록 구성한다. 즉, 너무 잘게 쪼개어서 난이도가 낮아지면 학습효과가
없다.
현실성 과제 시나리오는 현실성이 있어야 한다. 교수자가 없기 때문에 학생들 스스로 물어보고
가르쳐주려면, 현실법칙으로 설명되는 무엇이어야 한다.
경험성 과제는 경험을 통해 추론할 수 있는 것이어야 한다. 사람들의 경험을 연결시키면 하나의
경험이 완성되는 것이 가장 좋다.
비구조성 과제설명이 현실을 벗어나 과도하게 친절하지 않아야 한다. 현실 업무에서 얻을 수 있는
정도의 수준이 딱 좋다. 학생들은 비구조화된 문제를 해석하여 구조화된 문제로 변환할 수
있어야 한다.
표 18. 단위 프로젝트가 가져야할 특징
프로젝트형 과제는 위와 같은 특징을 가져야 한다. 물론 100점일 필요는 없다.
간단히 요약하면, 가능한 실제 프로젝트와 유사하게 만든다. 다만 학생들이 소화하기
쉽게 작은 크기로 여러 개를 나눈다.
회사에서 “프로젝트를 한다”는 건, 문제를 발견, 해결해야 할 이슈를 정하고, 풀기 좋
게 적절히 해체한 후, 단위별로 해결 방법을 모색, 그걸 코드로 구현한다는 뜻이다.
“단위 프로젝트(학습 과제)를 한다.”는 건 그걸 학교 안에서 해본다는 뜻이다.
학교는 충분한 시간을 가지고 하나씩 뜯어볼 수 있는 안전한 테두리다.
자전거를 뜯어보면서 정비사가 되어가듯, 소프트웨어 개발도 그렇게 공부한다.
그런데 이런 과제는 절대 첫술에 예쁘게 만들어지지 않는다. 학생들 행동을 보면서
의도대로 학습하고 있는지 꾸준히 관찰해야 한다. 과제 사이즈의 적절성과 복잡도가 “학
습 콘텐츠”의 핵심이다.
130
④ 문제 개발
“문제” Problem 은 “단위 프로젝트”를 구성하는 요소이다. 그래서 “단위 프로젝트”
하나에 최소한 3개 이상의 “문제”를 가질 수 있도록 구성한다.
기준은 역시 “학습 단위”를 적절히 잘라주는 것이다. 전체적으로 보면 이렇게 구분될
수 있다.
구성단계 주요 내용 목표 역량
목표 프로젝트 2 인이 플레이할 수 있는 “장기게임”을
웹으로 만들어라.
- 로비에 입장한 후 사용자는
게임방을 열 수 있다. 등등등
React.js + node.js 기술
3 인 이상 협업 프로젝트
알고리즘 능력
ㄴ중간 프로젝트 로비 시스템 만들기
- 입장한 사용자는 채팅방을 열고,
다른 사용자를 초대할 수 있다.
- 관리자는 특정 사용자의 권한을
조정할 수 있다. 등등
다중접속환경에 대한 이해
유저시나리오 도출역량
클래스 기반 설계 역량
서버 부하분산 구현하기
- 인증서버를 별도로 구축하고, 이를
기반으로 Scale out 할 수 있는
구조를 설계하라
- OOO 기능을 하도록 서버를
구현하라.
다중접속환경에 대한 이해
실시간 트랜잭션 처리에
대한 이해
ㄴ단위 프로젝트 채팅방 만들기
- 개설, 폐쇄, 강퇴 기능 포함 등등.
채팅서버 개발 역량
ㄴ문제 해시구조를 활용하여 FIFO 큐를 설계하라. 해시알고리즘
기타 등등
표 19. 학습 콘텐츠의 단계별 구조
“목표역량”은 프로젝트를 통해 얻어야 할 경험들이다. 명사가 아니라 “서술적”으로 기
술한다. 즉, 현업 개발자들에게 이렇게 이야기할 수 있다. 이 역량을 들은 개발자들이 이
해한대로 질문해도 핀트가 어긋나지 않아야 한다.
교육관리를 위해, “서술적 묘사”는 “카테고리 명사”로 분류될 수 있다. 하지만, 학생들
과 개발자들에게는 한 눈에 이해할 수 있을 정도로 서술적으로 묘사되어야 한다.
“목표역량” = “역량척도”는 학생들이 구체적으로 목표를 인지하고 그렇게 노력하기 위
131
해 필요한 것이지, 이론적 탐구를 위해 존재하는 것이 아니기 때문이다.
(5) 동료평가 설계
① 평가지시서
우리 교육의 목적은 학습자가 어떤 기술이나 경험, 역량 등을 습득하게 하는 것이다.
그래서 과제평가는 필기시험으로 하지 않는다. 그건 지식을 확인하기 위한 거다.
경험과 역량을 확인하려면 “대면 확인” 밖에 답이 없다.
이 때 사용할 질문지를 “평가지시서”, 루브릭 Rubric이라고 한다.
학습 과제를 만들 때는 반드시 1:1로 “평가지시서”를 같이 만들어야 한다.
답변은 Yes, No 또는 5점 척도 등 척도방식을 사용한다. 92점, 91점 등 점수부여방식
을 사용하지 않는다.
포함사항 주요내용
기본사항 제출된 코드가 평가가 가능한 수준으로 동작하는 프로그램일 것
작동확인 코드가 학습목표에 의도한 대로 동작하는지를 확인한다.
오류처리 코드가 오류처리를 얼마나 했는지 확인한다.
- 기본 : 메모리, Disk I/O, 네트워크 통신에 관한 사항
알고리즘 알고리즘이 포함되는 경우, 알고리즘에 대한 이해수준과 응용능력을 확인한다.
설계 복잡도가 높은 문제의 경우, 설계과정과 자기생각에 대한 이해를 묻는다.
협업과정 팀 작업의 경우, 협업과정에 대한 이슈를 확인한다.
- 무임승차자 발견시 전체 FAIL 처리
- 의도한 행동들이 일어났는지를 확인
경험획득 문제를 풀면서 얻게된 경험 등에 대해 물어보고 확인한다.
표 20. 평가지시서 설계시 포함해야 될 내용들
평가지시서를 통해 확인해야 할 사항은 이렇다.
첫째, “구현19했느냐?”
19
구현 : Implementation, 코딩을 통해 동작하는 프로그램을 만들어내는 것
132
둘째, “정말 네가 구현했느냐?”
셋째, “또 만들 수 있냐?” 이다.
만일 팀과제라면 이렇다.
첫째, “구현했느냐?”
둘째, “정말 팀원 모두가 함께 일을 했느냐?”
셋째, “이 팀으로 다시 또 만들 수 있겠냐?” 이다.
즉, 동작하는 소프트웨어를 만드는 게 첫 번째 교육이고, 학습목표이다.
개발자의 기본 능력은 “그거 만들어주세요.” 할 때 “그걸 만들어주는 거다.” 그걸 못하
면 개발자 자격이 없다. 조금 더 나아가면, “그런 거 만들어볼까?” 할 때 “그런 걸 만드
는 거다.”
“평가지시서”에는 그 경험을 확인하기 위한 질문들을 담아야 한다.
② 동료 평가
그런데, 동료 평가를 하면 “속이려는 현상”이 생겨난다.
평가자가 전문가라면 쉽게 밝혀낼 수 있지만, 그렇지 않다면 평가는 잘못될 수 있다.
… 라고 생각하면 안 된다. 이런 생각이 들었다면, 평가방식과 교육철학을 완전히 잘
못 이해한 거다. 이걸 시험처럼 피평가자의 실력을 평가하는 자리로 이해하면 이 교육은
완전히 망가진다.
평가활동은 학습활동 중 하나이다. 이 활동 중에 서로를 가르치는 “Teaching”과 경험
이 공유되는 “전달”현상이 일어난다. 이런 현상이 일어나지 않는다면 이 교육은 실패다.
NO 피평가자 평가자 일어나는 현상 대응방법
1 올바른
학습
기경험자 평가 중에 의견교환이 일어남.
평가자가 빡센 경우 FAIL 도 받음.
전체적으로는 기경험자의 경험이 피평가자로
전달됨
필요없음
2 올바른
학습
비경험자 평가 중에 피평가자가 평가자를 가르침
평가자가 잘못된 PASS 를 주기도 함
재도전을 통해
재학습
133
전체적으로는 피평가자의 경험이 평가자로 전달됨
3 속이고자
함
기경험자 (올바른 평가) 기경험자가 피평가자를 탈락시킴
- 평가자의 경험이 피평가자에게 전달됨
(잘못된 평가) 기경험자가 피평가자를 PASS 시킴
- 피평가자에게 실력이 쌓이지 않음
이번 문제를
알아야만 다음
문제를 풀 수
있도록 콘텐츠를
만듬
4 속이고자
함
비경험자 (올바른 평가) 비경험자가 피평가자를 탈락시킴
- 평가지시서를 통해 원하는 행동이 없음을
확인
(잘못된 평가) 비경험자가 피평가자를 PASS 시킴
- 피평가자에게 실력이 쌓이지 않음.
이번 문제를
알아야만 다음
문제를 풀 수
있도록 콘텐츠를
만듬
표 21. 평가 중에 일어나는 현상과 대응방안
2번 사례의 단점은, 부족한 조건임에도 불구하고 PASS를 줄 수 있다는 거다.
하지만, 교육과정을 클리어할 때까지, 평가를 50~100번 정도 반복하다 보면 자연스
레 실력과 평가의 결과는 일치하게 된다.
3,4번 사례의 단점은, 피평가자가 평가자를 속이는데 종종 성공한다는 거다.
그래서 교육과정을 점점 어렵게, 앞쪽 과제를 제대로 통과하지 못하면 다음 과제를
통과하지 못하도록 설계한다. (Spiral curriculum model의 장점)
교육과정을 모두 통과할 수도 없고 얻는 것도 없기 때문에 사회 속에서 자연스럽게
도태된다.
이런 사례와 사실을 학생들에게 적극 공유함으로써 문화적 공감대를 형성시키고, 자연
스럽게 자정작용이 형성되도록 한다.
“즉시 통제방식”은 교육기관이 무결하다는 걸 과시하기 위한 수단일 뿐 학생들은 수
동적으로 변하게 된다.
커뮤니티 학습은 문화와 분위기로 운영되는 곳이다. 이걸 잊으면 교육은 망가진다.
③ 평가 방식
그럼 어떤 식으로 평가방식을 설계해야 할까?
개발 문제는 정답이 있긴 하지만, 하나의 정답만 있는 건 아니다.
134
예를 들어 이런 문제와 답변을 생각해보자.
문제) 터미널 환경에 “시간”을 출력하는 함수를 만들어보자
답 1) printf("Today is %s", ctime(&now))
답 2) echo “Current time : $now”
답 3) …
문제가 정답이 없는 열린 문제이기 때문에, 1번, 2번이 모두 정답이다. 좀 모자란다고
해도, 시간을 출력한다면 모두 정답이다. 물론 코드가 동작하는 게 첫 번째다.
다만, 이렇게 물어보도록 설계한다.
“왜 저렇게 코딩했는지?”, “다른 조건이 주어졌다면 어떻게 코딩 했을지?”, “이러이러한
제한 조건에선 어떻게 처리할지” 등등.
피평가자가 대답을 전부 다 할 수도 있고, 아닐 수도 있다.
하지만 중요한 건, 그런 생각을 하면서 코딩을 했느냐 아니냐의 차이다.
그런 생각을 하면서 코딩을 했다면, 조금 더 높은 과제로 나갈 준비가 된 거다.
단지 그냥 PASS만을 위해 코딩했다면, 아직 준비가 덜 되어 있는 거다.
동료평가는 이런 식으로 한다. 하나의 정답이 있는 것처럼 집착할 필요가 없다.
그런데 주관이 개입되면 평가자가 틀릴 수도 있다.
하지만 수용한다. 그것도 미리 겪어야 할 경험이고, 연습해야 할 상황이기 때문이다.
우리 교육은 지식 수준을 높이기 위한 교육이 아니란 걸 잊어서는 안 된다.
그럼 주관성에 의한 편향성은 어떻게 관리할까?
교육과정을 졸업할 때까지 50~100회 정도의 평가를 하게 한다.
다양한 사람에게서 다른 과제를 여러 번 평가받다 보면, 결과는 자연스레 실제 실력
에 수렴하게 된다.
④ 전문가 평가
전문가 피드백이 없어도 교육은 동작한다.
135
하지만, 꽤 많은 경우 전문가의 피드백이 학생들을 성장시킨다. 학생들이 바라볼 수
없는 시각을 제시하기 때문이다.
다만, 전문가의 피드백이 커뮤니티 내에서 정답인 것처럼 취급되거나, 새로운 시도를
저해한다면, 부정적 요소로 동작하고 있는 거다.
그런데 전문가는 학교 외부 집단이므로 변화시킬 수 없다.
다만, 학생들에게 인지시킨다.
“전문가의 의견은 경험치를 반영하기 때문에 그 또한 귀중한 조언이지만, 다른 정답이
있을 수 있기 때문에 절대의견처럼 취급될 필요는 없다”라는 걸.
이걸 구두로 전달할 필요가 있는 건, 우리 학생들이 대부분 수능교육에 단련이 되어,
무의식적으로 전문가의 조언을 정답처럼 인식하고 암기하기 때문이다.
전달방식도 서면공지보다는 구두 전달을 통해, 커뮤니티 내부에 전파되도록 하는 게
좋다. 게시판 공지처럼 쓰여지면 엄격한 규칙처럼 비춰지기 때문에 학생들의 자발성은
낮출 수 있기 때문이다.
(6) 학습자원의 중요성
과제를 설계할 때 “학습자원”을 가이드 하는 건 매우 중요하다.
커뮤니티 학습이 가능한 이유는, 공부하고 참고해야 할 것들이 공개되어 있기 때문이
다. 코드, 이론, 강의자료 등 모든 것이 검색을 통해 접근이 가능하다.
정보자원을 찾을 수 없다면 커뮤니티 학습은 불가능하다. 지식과 경험을 조달할 곳이
없기 때문이다. 타인의 경험에만 의존하는 건, 정보가 불확실하고 편차도 크고, 습득시간
도 오래 걸린다.
사람들이 필드가 아니라 교육기관을 찾는 이유는, 기술을 익히는 데 필요한 학습시간
과 노력을 줄이기 위한 거다. 따라서, 전혀 접근할 수 없는 정보자원을 알아야만 풀 수
있는 과제라면, 그건 콘텐츠 설계를 잘못한 거다.
136
① 교재의 가치
레벨 제로인 친구들, 아무런 기초가 없는 사람들은 정보검색 능력도 없다.
동작원리를 몰라 무엇을 검색해야 할지 알 수 없을 뿐더러, 용어 자체도 알지 못하기
때문이다.
그래서, 기본 자원으로는 초보자를 도울 수 있는 정보를 제공해야 한다.
가장 먼저 필요한 게 “지도”다. 가장 초보적인 수준으로 시작하는게 필요하다.
용어나 개념까지 익힐 수 있는 “교재”가 있으면 좋다. 핸드북으로 있으면 더 좋다. 초
보자의 경우 필요할 때 쉽게 펼쳐볼 수 있기 때문이다.
pdf 도 있으면 좋다. 쉽게 검색할 수 있고, 스마트폰이나 노트북에 쉽게 넣어다닐 수
있기 때문이다.
“교재”가 좋은 건 “목차”가 있다는 거다.
초보자는 전체 안목이 없어, 지식을 체계화하기 어려워한다. 새로운 경험을 쌓아도 그
걸 어디에다 끼워 넣어야 할지 모른다. 중요도와 우선 순위를 모르다 보니 배운 걸 금방
잊어버린다.
이 때 필요한 게 전체적인 지도다. 교재의 “목차”는 이 지도역할을 해준다.
② 동영상 강의
IDE를 열고 코딩하는 화면을 보여주는 건 정말 쌩초보자용이다. IDE 자체를 어떻게
실행해야 할지 모르는 경우, 하나라도 따라해볼 수 있게 해준다.
하지만, 그 시기를 지나고 나면 메인 콘텐츠가 되긴 어렵다.
동영상은 따라하기 콘텐츠가 아니기 때문이다. 따라해 보고 베끼기 도구는 정확히 “블
로그”의 역할이다.
동영상은 이야기를 전달할 때 탁월하다. 기술 배경, 현장 이야기, 실제 적용사례 등을
들려줄 때 쓴다.
우리 학습에서는 배경과 사례를 이해하는 게 정말 중요하다. 학습동기를 적극적으로
137
자극하기 때문이다.
가능하면 과제를 이해하기 위한 설명이거나, 힌트를 제공하고자 할 때 유튜브나 동영
상 강의를 첨부하자.
③ 전문 자료
우리 학습방식은 불교의 “깨달음”이 아니다.
동료학습이 가능한 이유는, 그 정도의 동료들 수준에서 학습정보가 구해지기 때문이다.
그리고, 인터넷 등에 충분한 정보가 존재하기 때문이다.
하지만, 학습자료를 찾을 수 없다면, 우리의 학습은 이루어지지 않는다. 자료를 기반으
로 지식, 경험의 공유를 통해 학습이 일어나기 때문이다.
예를 들어 이런 프로젝트형 과제가 이렇다고 하자.
“유방암 검출을 위한 유전자 검색 알고리즘을 개발하라.”
만일 유방암, 유전자 정보에 대한 의학적 지식이 없다면 어떨까?
이 문제는 절대로 풀 수 없을 거다. 그럼 그런 의학적 지식은 어떻게 확보해야 할까?
의학서적과 관련 논문을 충분히 찾아서 공부해야 한다. 또는 전공 의대생을 만나 도
움을 요청해야 한다.
그런데 의학에 대해 완전 문외한이라면 어떨까?
어떤 정보를 찾아야 할지, 어떤 사람을 만나야 할 지조차 파악하지 못한 채 한참을
헤매야 한다. 이렇게 콘텐츠가 설계되었다면 잘못된 거다.
찾으면 정보가 나오는 것과, 안 나오는 것에는 아주 큰 차이가 있다.
그래서 학습 콘텐츠를 제작할 때, 과제를 풀기 위해 어떤 정보들을 참고하면 좋을지
“단서”를 제공하거나, 핵심적인 “전문자료”는 제공되어야 한다.
④ 훈련환경
컴퓨터 등 훈련환경도 학습자원이다. 만일 Linux 프로그램을 만들어야 하는데, Linux
138
머신이 없다면 교육은 이루어질 수 없다. Hadoop을 공부해야 하는데, 3대 이상의 서버
를 구성할 수 없다면 교육이 이루어질 수 없다.
클라우드 환경, GPU 환경 등은 꼭 필요한 학습자원들이다.
우리 교육은 “실습훈련” 중심이다.
실제 해보지 않고 입으로만 코딩하는 건 실력이 아니다.
학교를 운영한다면 필요한 컴퓨팅 자원을 꼭 확보할 필요가 있다.
즉, 소프트웨어 교육에도 교보재는 꼭 필요하다.
⑤ 인적자원
학교 수준의 과제는 동료학습만으로 커버가 가능하다. 문제의 난이도, 정보취득의 용
이성, 학습의 편의성 등이 충분하기 때문이다.
하지만, 취업 및 기업 수준의 과제는 동료학습만으로는 안 된다. 학생들이 다양한 현
장 사례를 이야기해줄 순 없기 때문이다. 그래서, 이런 과제들은 멘토진들을 확보해야 한
다.
즉, 인적자원도 학습자원 중의 하나이다. 학습 콘텐츠를 설계할 때 함께 고려해야 한
다.
2. 교육방식 설계
가. 학습동기
그러면, “프로젝트 기반 학습”방식을 어떻게 교육시킬 것인가?
물론 과제마다 세부사항들을 적시할 수 있다. 하지만, 큰 흐름을 먼저 정리하자.
우리 교육모델은 처음부터 끝까지 학생들이 스스로 하는 자율학습이다.
기본원리는 “집단학습” 이며 캠프는 “학습환경” 만을 제공한다.
139
교육의 모습을 정리하자면 이렇게 설명할 수 있다.
분류 구분 주요내용 특징
기본 학습내용 (기초) 커리큘럼 격파 (개인과제, 그룹과제)
(취업) 취업과제 격파 (기업형 과제)
문제은행 DB
개인학습 자율 학습, 동료 학습
- (학습자원) 교재, 유튜브, 블로그,
타인코드
결과물 : 코드 제출
학습 : 코드 리뷰
그룹학습 학습그룹 만들기(3~5 인)
- 동아리 참여, 변경
- 목적 그룹(과제당 1 개)
프로젝트형 실습
협업능력, 복잡도 증가
과제평가 제출된 코드기준, 코드리뷰 방식 상호평가
동아리 참가자 (랜덤매칭)
PASS/FAIL 만 결정
취업,창업 도전,시험 사이드 프로젝트 (동료들간)
해커톤 등 대회 참여하기
현실 프로젝트
사회속의
성장
네트워크 만들기
- 컨퍼런스, 세미나 등
현업 개발자 커뮤니티
표 22. 새로운 교육모델의 전체 구조
그런데 이런 교육이 잘 작동하려면, 이 방식에 맞는 구성원들부터 모아야 한다.
이 때 식별할 수 있는 “키워드”가 하나 있다. 바로 “학습동기”이다.
소프트웨어 개발은 훈련학습이다. 행동하지 않으면 알고 있는 것도 잊어버리게 된다.
그런데 나의 행동은 누가 시켜서 하는 게 아니다. 동기가 없으면 하지 않는다.
그래서, 이 교육방식의 핵심은 “동기가 이끄는 스스로 학습방식” 이다. 그래서 두루뭉
실하게는 “성인학습”의 원리로 교육방식을 설계한다. 성인학습의 출발점이 “학습동기”이
기 때문이다.
구분 전통적 교육철학(Pedagogy) 성인대상 교육철학(Andragogy)
교육목적 전인적 교육, 민주시민 교육 직무기술, 자아존중감 증진, 삶의 질
향상을 목적으로 교육에 참여
학습자 학습자는 의존적
교사중심적
- 어린이를 가르치다
학습자는 자기주도적
참여학습
- 성인학습을 돕는다.
교수자 역할 Teaching 동기부여, 안내자 Facilitating
140
학습자 호칭 학생, 교육생(Student) 학습자(Learner)
학습지향성 교과목 지향 생활중심적, 성과지향적
사회적 역할변화에 기초
교육방법 교사중심적 수업 학생중심적 수업
학습초점 미래지향적, 교과 지향적 실생활에 즉시 적용가능한,
문제해결 지향적
학습동기 외적 동기 사용(보상, 벌) 내재적 동기 중요(호기심 등)
학습책임 교사가 책임 학생이 책임
동료의 중요성 학습자원으로의 동료, 덜 강조 동료는 매우 중요한 학습자원
경험의 역할 학습자원으로서의 가치 없음 질적, 양적으로 풍부한 경험으로
교육활동에 참여, 학습자원으로서의
가치가 높음
주요사례 초.중.고등학교 교육 요리학원, 댄스학원
표 23. 청소년 교육과 성인교육의 차이점
“성인”들은 실용적인 걸 지향한다는 측면에서 기존 교육과는 다르다. 취업, 창업 등
당장 실생활에 도움이 되는 걸 배우고 싶어한다.
자기의지로 교육장을 찾고 의도와 다르면 교육장을 이탈한다. 학습보다 생업이 우선이
어서 안정적인 공부시간을 확보하는데도 어려움이 있다.
그래서 이렇게 “내적동기”가 높은 사람들을 위한 교육은, 실습 위주로 스스로 해볼 수
있게 “학습환경”을 조성하는 방식으로 진행한다.
그런데 이 교육모델은 단점이 있다.
“동기가 지속되지 않으면, 학습이 중단된다.”
“수동적 학습” Passive learning은 시키는 대로 하면 되기 때문에, 동기가 상실되어도
어느 정도 학습이 일어난다.
하지만, “능동적 학습” Active learning은 동기가 상실되면 학습이 아예 멈춰버린다.
그래서 “동기”를 잃지 않고 유지시킬 수 있도록, 관리해줄 필요가 있다.
141
(1) 매슬로의 욕구이론
그림 20. 매슬로의 욕구5단계 이론
“사람은 자신의 욕구를 채우기 위해 행동한다.”
욕구이론의 기본 개념이다.
즉, 사람들에게는 누가 자극하지 않아도 자연스럽게 발생되는 행동 에너지가 있다.
그게 “욕구”이다. 매슬로20는 좀 더 자세하게 이야기한다.
“사람들은 결핍욕구를 채운 다음에야 성장을 위해 노력한다.”
매슬로는 욕구를 세분화해서 결핍욕구와 성장욕구로 나누었다.
“결핍욕구”란 나에게 부족한 것을 채우고자 하는 욕구인데, 기본적으로 육체적 안정감,
심리적 안정감을 대상으로 한다.
“성장욕구”는 다른 사람에게서 인정받고자 하는 욕구인데, 기본적으로 나만의 방식으
로 인정받기를 원한다.
그리고 이런 욕구는 하위 욕구가 충족되어야, 상위 욕구가 나타난다는 것이다.
즉, 내가 건강한 다음에야 직장을 다닐 수 있게 된다. 자존감이 높아지고 인정받고 난
20
Maslow : 1908-1970, 미국 철학자, 심리학자, 1943년 욕구 5단계설을 주장했고, 맨 상위 개념으로 “자
아실현”을 이야기했다. 이후로 “자아실현”이라는 개념이 널리 사용된다.
142
후에야, 더 성장하고픈 욕구가 발현된다.
(2) 성취동기이론
“성취동기이론”이라는 게 있다. 1960년대, 맥클랜드가 발표했다.
“개인의 욕구는 타인과의 관계, 상호작용에 의해 생성되며, 기본적으로 성취욕구, 친화
욕구, 권력욕구21로 나눌 수 있다. 이 때 가장 중요한 것은 성취욕구이며 이게 충족되면
새로운 동기가 발현된다.”
그림 21. 내적동기 자극방법
학습과 관련된 건 성취욕구인데, 이걸 계속 자극하려면 과제의 난이도가 중요하다.
성취감을 줄 수 있어야 하기 때문이다.
난이도를 적절히 배치하고 과제를 풀었을 때의 쾌감을 선물해준다면, 학습동기는 더
잘 유지된다.
나. 학습환경 설계
그런데 이렇게 동기를 유지시키기 위한 학습환경은 어떻게 구성해야 할까?
사실… 이게 어렵다. 해 본 사람이 거의 없기 때문이다.
21
성취동기이론 : 성취욕구 : need for achievement, 친화욕구 : need for affiliation, 권력욕구 : need for
power, 조직행동론 연구 중에 탄생된 개념으로 이런 욕구를 감안해서 조직을 운용해야 한다고 주장했다.
143
우리나라에 성인학습은 1950년대 이후에 시작되었고, 그나마도 문맹퇴치가 목적이었
기 때문에 전통적인 강의수업방식을 따랐다.
1980년대 “평생교육”이 본격화되었지만, 교육방식은 여전히 “수업 방식”을 고수했다.
즉, 이런 학습환경은 설계해본 사람도 없고 구하기도 어렵다. 학생들조차 낯설어 한다.
이런 교육을 받아보지 못했기 때문이다.
특히, 소프트웨어 교육을 위한 환경학습은 전세계적으로도 흔하지 않다.
일반적으로 알려진 게 “조나센 모형”이므로 이를 참고해서 설계해 본다.
그림 22. 조나센의 구성주의 학습환경 설계 모형
그는 1947년생으로 대학교를 다니면서 TV카메라맨으로 일을 했는데, 이후 교육에 관
심을 가지면서 학습기술 및 교육심리학 교수로 일을 했다.
특히 미디어나 컴퓨터 등으로 학습하는 것에 대해서 관심이 많았는데, 그는 구성주의
학습방식을 이용해 이런 교육을 설계할 수 있음을 증명하였다.
이론적으로 접근하면 좀 복잡하니까, 이해하기 쉽게 딱 잘라서 이야기해본다.
(1) 시작지점
“프로젝트형 과제”가 시작지점이다. 가지고 놀 놀이기구가 “환경구성”의 첫 번째다.
즉, 학생들에게 던져 줄 “과제”가 먼저 있어야 한다.
144
“14층 아파트에 엘레베이트 두대가 있다. 가장 효율적으로 운영될 수 있도록 로직을 설계하라.”
프로젝트형 과제는 이런 식이면 좋다.
어떻게 풀어야 할까? 사실 이 문제에 대한 정답은 없다.
누구는 “전력사용량”을 기준으로 볼 것이고, 누구는 “시간”을 기준으로 볼 것이다.
둘다 정답이라고 할 수 있고, 아니라고도 할 수 있다. 왜냐하면, 상황마다 다르기 때
문이다.
그래서 돌아가는 프로그램을 제출했더라도 PASS가 아닐 수 있다. 의도된 경험치를 습
득했느냐 아니냐가 기준이 된다.
과제를 만들 때는 무엇에 신경 써야 할까?
핵심 구성요소로 “맥락”, “표상”, “조작공간”을 꼽는다.
첫째로 “맥락” Context은 문제를 이해시켜주는 상황을 말한다.
맥락이 없으면 학생들이 문제를 이해하기 어렵다. 누군가 추가설명을 할 수밖에 없어
서 의존학습을 하게 된다. 맥락이 있으면 학습자가 나머지를 상상한다. 그게 디테일을 결
정한다.
둘째, “표상” Representation은 문제를 표현하는 방식이다.
과제설계자는 문제를 풀기 위한 단서, 정보, 해결해야 할 문제를 적절히 잘 섞어서 표
현해야 한다. 이런 게 없으면 학습자는 너무 어려워하거나, 진도를 나가지 못해 좌절해버
리고 만다.
셋째, “조작공간” Manipulation space는, 말 그대로 문제를 푸는 공간이다. 소프트웨
어 개발이라면 노트북 하나, 서버계정 하나를 주면 되지만, 요리 수업이라면 요리를 해볼
수 있도록 조리환경이 갖추어져 있어야 한다.
145
(2) 학습자원
학습환경 설계시 “학습자원”은 두 번째로 중요하다.
“과제”가 학습해야 할 내용이라면, “학습자원”은 그 문제를 해결하기 위한 도구이다.
도구가 없다면 문제를 해결할 수 없다. 즉, 학습자원이 부족하면 학습은 일어나지 않
는다. 도구제작을 해도 되지만, 이건 너무 시간이 오래 걸린다.
학습자원에는 “정보”도 있지만, “멘토” 같은 인적자원도 있다. 굳이 학생 옆에 있을 필
요는 없지만 느슨하게 연결되어 필요할 때 도움을 받을 수 있으면 된다.
소프트웨어 교육은 인터넷과 유튜브에 이미 많은 자료들이 있어 굳이 정보자원들을
준비하지 않아도 된다. 하지만, 특수한 교육이라면 그에 맞는 자료들이 비치되어야 한다.
학습자원은 경험을 구성하는 요소이기도 하다.
예를 들어 채팅프로그램을 짜야 한다면, 다른 채팅프로그램을 다운로드 받아 분해, 분
석해보고 원리를 깨닫는 경험 자체가 실력으로 간다.
필요한 도구는 직접 만들게 할 수도 있다.
그런데 학습자원의 존재 목적은, 덜 헤매게 함으로써 “시간”을 줄여주기 위함이다. 시
간을 줄이면 학습량이 늘어난다. 학습의 질은 개별적으로는 내려가는데, 전체적으로는 올
라간다. 여러 번 반복해서 학습하기 때문이다.
기술교육은 훈련교육이다. 유사경험을 반복하도록 설계하는 게 좋다.
시간압박에 시달릴 필요는 없다. 다만 시간낭비라고 생각하는 건 줄여주자.
(3) 교수자의 역할 분리
환경 중심의 교육은 교수자를 교육진행자에서 분리해낼 수 있다.
그런데 잊지 말자. 이런 교육을 하는 이유는 “스스로 하게 하기 위해서다.”
그렇게 하는 이유는 소프트웨어 개발이, 직접 해보지 않으면 익힐 수 없는 것이기 때
문이다.
146
전통적인 교육에선 교수자가 교육설계, 교육진행, 교육평가를 한다.
그런데 우리 모델에선, “교육진행”은 분리된다. 교육진행은 “수업”을 의미한다.
“교수 → 학생”의 흐름을 “(교수 → 과제) + (과제 → 학생)”으로 바꾼다.
예를 들면, 중간고사 문제지를 3년치 정도를 주고, 이번 중간고사 시험을 보겠다고 이
야기하는 것과 같다. 정답을 맞추는 거라면 외워서 오기 때문에 나쁜 교육법이다.
하지만, 훈련을 시키고 숙련여부를 평가하는 거라면 좋은 교육법이다.
예를 들어 음대수업이나 연기수업과 비슷하다. 학생들이 스스로 해야 하고, 교수는 중
간중간 필요한 피드백을 해준다. 물론 이론수업도 한다.
소프트웨어 교육에도 이론수업은 필요하다.
직접 강의를 하기도 하지만, 전문서적이나 이러닝 등으로 대체할 수도 있다.
단, 교육대상자가 달라지거나 규모가 커지면, 분리된 “교육진행”의 역할이 커진다.
예를 들어 “리더십 캠프” 같은 사례를 보면 이렇다.
앞에 나온 강사가 어떤 상황을 주고 옆에 앉은 동료들끼리 역할극을 하도록 시킨다.
참가자들이 적극적으로 역할을 하며 수업에 참여하지만, 강사는 지켜보거나 조율할 뿐
그 상황 자체에는 개입하지 않는다.
어떤 경우는 강사가 직접 교육설계를 해오지만, 큰 회사의 경우는 별도의 교수진이
교육 프로그램을 설계한다. 이 때 강사의 역할은 지식전달자가 아니라 교육 진행자이다.
이런 역할을 퍼실리테이터라고 한다. 그리고 이 역할의 범위는 꽤 크다.
“MBC 100분 토론” 같은 걸 보면, 손석희 아나운서가 사회자이면서 갈등조율 및 토론
촉진자의 역할을 한다.
수업에서 벗어나 교육이 “프로그램”처럼 만들어지면서, 이런 역할들의 중요성이 커지
기 시작한다.
147
우리 교육모델도 교육프로그램처럼 운영되기 때문에, 이런 역할을 재조명해야 한다.
이 때 중요한 것은 상황을 명료화 시키거나 방향을 잡아줌으로써 “헤매는 비용”을 줄
여줄 뿐 학습자로부터 “해결 경험”을 뺏어 가면 안 된다.
“해결 경험”은 “내적동기”를 발현시켜 성장을 만들어낸다. 그래서 “해결 경험”을 뺏어
가면, 학생들은 동기를 잃고 수동적이 된다. 그러면 이 교육은 완전히 망가지게 된다.
다. 공통 커리큘럼
학습커뮤니티를 만들 때 “공통 커리큘럼”이 있어야 한다. 입학과정으로 설계한다.
아는 사람이 모르는 사람을 가르치는 “조력활동”을 경험시켜주기 위해서다. 커뮤니티
의 일체감과 소속감이 생긴다.
다른 활동으로 대체해도 되지만, 학습커뮤니티라면 학습을 함께 한다는 경험을 들어올
때 줄 필요가 있다. 강력한 각인효과 때문이다.
사례로 비전공자를 위한 “입문과정”을 공통커리큘럼으로 만들어보자.
“파이썬 기초과정” 정도로 시작해보자.
단계 제목 목표 경험
1 파이썬 설치 및
개발환경 구성하기
다짜고짜 설치부터, 설치할 때 왜 그런 걸 설치하는지를 이해함.
2 파이썬 동작원리
이해하기
설치한 프로그램과 컴퓨터, 내가 보는 화면까지의 상관관계를
이해하고 조작할 수 있게 됨
3 파이썬 프로그래밍
언어 공부하기
프로그래밍 언어의 문법과 사용법을 익힘.
여러 가지 함수와 사례를 익힘
4 웹 개발 시작하기 웹브라우저에 내가 볼 수 있는 내용을 출력해보고, 내 마음대로
이런저런 조작을 해봄
5 데이터 베이스
핸들링하기
데이터를 입력받아 저장을 해보고, 출력해보는 조작과 기본
원리를 이해함.
6 인스타그램
만들어보기
위에서 배운 기술을 가지고 인스타그램을 흉내낸 파일럿
프로그램을 만들어 봄
표 24. 파이썬 웹 개발과정 경험기획
148
이 과정은 “파이썬”으로 간단하게 동작하는 웹 프로그램을 만들어보게 하는 것이다.
목표 수준은 학생이 응용프로그램을 만들고 싶어 지는 것, 그걸 시작할 수 있게 되는
것이다.
이게 의미하는 바는 “이제 어떻게 공부해야 할지 알게 되었다.” + “이제 뭔가 만들어
보고 싶어 졌다.”이다.
즉, 이제 제대로 배울 준비가 된 거다.
커리큘럼은 강의를 듣고 시험 보는 방식이 아니어야 한다. 그걸로 이론지식은 습득이
가능한데 코딩실력은 전혀 늘지 않는다.
과제 기간은 7일, 14일, 30일 정도로 끊어준다. 하루 8시간 코딩하는 걸 기준으로 한
다. 몰입도는 자기 능력의 40% ~ 60%.
커리큘럼 하나를 끝내는데 한 달을 넘기지 않는 게 좋다. 기간을 이렇게 정하는 이유
는 심리적 허들을 낮추기 위함이다. 도전의 경계성을 낮추고, 단위 과제의 시간을 짧게
해서 중간중간 평가를 통해 점검 받을 수 있게 한다.
라. 그룹 학습 방식
이론학습이든 과제든 가능하면 모두 “스터디 그룹”(학습그룹)을 만들도록 유도한다.
구성원들끼리 서로를 돕는, 양질의 스터디 그룹이어야 한다.
과제를 할 때마다 그룹을 바꾸도록 유도한다. 궁합이 맞는 동료를 찾게 하는 거다. 그
룹은 고정된 게 아니라 사람처럼 호흡하고 바뀌어 간다고 생각해야 한다.
무임승차자는 자연스럽게 배제시켜 나간다. 3번 정도 변화를 겪다 보면 학생들은 자연
스럽게 자기에게 맞는 동료그룹을 형성하게 된다.
학습그룹은 한 그룹당 구성원이 3-5명 정도가 적당하다.
모여서 함께 공부하다 보면 항상 누군가는 바빠서 1~2명의 결석인원이 생기게 된다.
149
이 때 출석인원이 2인 이하이면 대부분 늘어지거나 놀게 된다. 학습이 끊어지고 몰입도
가 떨어지면서 두 배 이상의 노력이 들어간다. 평균출석인원이 3인 이상 되는 게 좋다.
그런데 좋은 스터디 그룹이란 어떤 그룹일까, 어떤 장점들을 가질까?
그 특징을 정리해 본다.
구분 특징 상세내용
학습 원리 상호의존성 서로에게 도움을 주는 방식으로 부족함을 메꾼다.
개별책무성 집단의 목표를 위해 책임을 나누어 가지면서 기여하게 된다.
대면 상호작용 대면방식은 더 많은 내용을 더 짧은 시간에 전달한다.
사회적 기술 사회적 성장 스킬인, 대화, 토론, 논쟁 스킬을 익힌다.
집단 회고 지난 과정을 회고하면서 개선 능력을 습득한다.
학습 효과 학업성취의 향상 고립학습 대비 학습속도와 학습의 질이 대폭 향상된다.
고등정신능력 획득 4-5 인이 참여한 결과를 1 인이 습득함으로써, 경험이
풍부해지고, 통찰력이 높아진다.
학습동기 촉진 높은 성과에 대한 결정권을 기여했다는 경험이 자존감 향상
등의 높은 성과동기로 돌아온다.
사회적기능의 발달 협력을 통한 성과창출 경험을 뚜렷하게 습득한다.
자아실현 경험 성공경험을 보상으로 받으면서, 자아실현 과정을 이해하게 됨
문제점 오류발생 사람이 모인 만큼, 오해와 갈등이 생긴다. 이를 잘 풀지
못하면 그룹이 깨진다.
친목효과 친한 사람들끼리만 어울리면서 다른 사람을 배척함
부익부 빈익빈 못하는 사람끼리만 모이면 배우는 게 없음
무임승차 놀았는데 그룹평가가 좋아서 나도 좋은 평가를 받은 경우
봉효과 1 명에게만 일이 몰려, 골고루 학습이 일어나지 않음.
표 25. 그룹학습의 특징 (엘런대학교)
학습원리나 학습효과는 좋은 이야기니까 건너 뛰고, 문제점만 이야기해보자.
“친목효과”는 의도된 효과다.
친목성이 동료에 대한 신뢰와 헌신을 만들어내어 이게 부족한 교수자를 대신한다.
하지만 친목효과는 폐쇄성과 갈등도 만들어낸다.
잘 지켜보다가 학생들이 선을 넘어가면 운영자가 개입해야 한다.
150
판단기준은 커뮤니티 보호다.
그룹학습의 동작원리는, 내가 누군가를 가르쳐주면 누군가 나를 가르쳐줄 거라는 “상
호성”의 믿음에 기반한다. 이 믿음이 깨어지면 커뮤니티는 깨어지고 다시 회복되지 않는
다. 이걸 막아야 한다.
“무임승차”는 학생들이 학교적 세계관을 가지고 있기 때문에 발생된다.
시험점수를 잘 받거나 과제 통과를 하는 것으로 생존이 되기 때문이다.
이런 생각들은 계도하기 어렵다. 현실세계를 통제할 수도 없고 시시비비를 가리기도
어렵기 때문이다.
스스로 깨달아야만 한다. 그래서 사전통제방식이 아니라 사후관리방식으로 대응한다.
무임승차 후 주어지는 보상이 없으면 동기가 상실된다. 과제1을 제대로 하지 않으면
과제2를 하기 어렵도록 구성한다.
과제통과라는 행위에 외적 동기를 실어주면 안 된다. 실력, 자신감, 자존감 등 내적동
기에 의해 움직일 수 있도록 한다.
어떻게 그렇게 할까? 전문가, 멘토와의 지속적인 면담이 효과적이며, 커뮤니티 내에
문화로 자리 잡히면 저절로 돌아간다.
“봉효과”는 한 명이 하드캐리하는 거다. 과제가 어려우면 발생한다.
한 명의 고수에게 모든 걸 의지하는 현상인데 이게 무임승차를 만들어낸다.
문제는 고수가 번아웃 되면 교육이 멈춘다는 거다.
교육의 지속성을 담보할 수 없다면, 교육기관은 존속할 수 없다.
그룹학습에서 리더가 생기는 건 당연하다. 하지만 상호작용에 기반한 학습활동이 멈추
면 안 된다. 누군가 리드해야만 학습이 된다면, “교수자”나 전문가가 하는 게 더 낫다.
151
이런 현상이 커뮤니티 내에 만연하다면 운영자가 개입해야 한다.
“그룹학습”은 생각보다 까다롭다. “커뮤니티”는 더 까다롭다.
다양한 사람들이 모이는 만큼, 많은 가치관이 충돌하고 갈등이 발생한다.
“교수자”가 개입하여 이 문제를 해소할 수 있다.
하지만, 그룹이 많아지면 그럴 수 없다.
원칙과 규칙으로 개선하고, 커뮤니티 문화로 동작하게 해야 한다.
그룹 문화가 자리 잡히는 데 보통 6개월의 시간이 걸린다.
첫 그룹의 성공사례, 실패사례가 나오고, 그게 학생들 사이에 전파되는 시간.
학생들 스스로 감을 잡아서, 서로에게 좋은 영향력을 행사하는 시간.
이 시간들이 필요한 최소시간이다.
그룹 문화는 한 번 돌기 시작하면 자동으로 돌아간다.
시작은 운영진의 도움으로 하지만, 유지시키는 건 학생들의 노력이어야 한다.
마. 성공경험 만들기
“동기중심의 교육”이 지속되게 하는 건 “성공경험” 이다.
작은 성공경험들이 모여 성장과정에 대한 확신을 만들어낸다. 그게 학습을 유지시키고
강화시킨다.
성공경험은 코딩의 결과물이 아니다. “프로세스”와 “성장방법”에 대한 긍정적인 심리변
화가 성공경험이다. 이게 성장을 만들어내고, 실력을 만들어낸다.
앱을 하나 만들어 출시해보거나, 웹 서비스 하나를 만들어 보게 하자.
152
해냈다는 뿌듯함 뒤에 내가 어떻게 하면 되는지 믿음과 확신을 가지게 된다.
이 때 느끼는 성취감과 책임감이 “성공경험”이다.
이런 성공경험은 어떻게 만들 수 있을까?
첫 번째는, “타인”으로부터 인정받게 한다.
이 때의 타인이란 다른 개발자들이나 고객들을 말한다.
업계 개발자들의 인정은 내가 업계에서 통한다는 자신감을 만들어 낸다.
“고객”은 내가 돈을 벌 수 있다는 자신감을 만들어준다.
생존에 대한 걱정이 줄어들고, 계속 스킬업을 하고자 하는 욕구가 생긴다.
두 번째는, “나 스스로에게” 인정받는 것이다.
순간적인 타인의 인정은 블러핑으로 얻어낼 수도 있다.
하지만, 자기 자신은 속일 수 없다.
타인의 기대가 실제 내 실력과 불일치할 때 사람은 불안해진다.
그 차이가 커질수록 대인관계를 맺기 어렵고, 레벨업에 대한 동기를 상실한다.
반면, 타인의 인정이 낮아도 자기 만족감이 큰 경우 성장동기는 불타오른다.
학교 내에서의 성공경험은 직장인으로서 가지는 성공경험과 다르다.
훨씬 더 작고 볼 품 없을 수 있다. 하지만 학생 때는 그런 작은 경험만으로도 성장이
만들어진다.
학생들끼리 서로 칭찬하게 하자. 다만 생일 축하가 아니라 이유를 알게 하자. 이유를
알아야 자존감이 생긴다.
153
바. 사회 네트워크와 연결
그렇다면 준비된 학생들을 사회로 어떻게 내보내야 할까?
우리 학교의 친구들은, 기업들이 요구하는 수준에 맞을까?
답은 “아니다”이다.
기업은 실무경험, 즉 실전경험을 원한다.
학생들은 기초지식과 성장노하우를 익혔을 뿐 실전경험을 익히지 못했다.
그래서 실전경험을 익히게 해야 한다.
이미 답은 나와 있다. 인턴쉽을 하게 하면 된다.
결국은 학생들이 직접 기업현장에 가는 거다.
바로 취업을 하는 것도 괜찮다.
취업한 후 일을 배우는 거다.
하지만, 이 방법은 아쉽게도 기존의 회사 직원들에게는 너무나 폭력적이다.
김대리는 오늘 퇴근을 못하고 신입직원을 가르쳐야 할 수도 있다. 하루 시간의 절반
을 신입직원에게 투자해야 할 수도 있다.
그런데 그렇게 애써준 학생들이 대부분 다른 회사로 가버린다. 회사는 정말 얻는 것
없이 남 좋은 일만 시키게 된다. 이 경험을 두 번 정도 하다 보면 회사는 더 이상 인턴
을 받고 싶어하지 않는다.
이건 꽤 심각한 문제다. 이게 일자리 매칭을 줄어들게 한다.
154
그렇다면, 학생들이 기업에 취업하지 않고 실전경험을 쌓을 방법이 있을까?
여러 가지 방안들이 있는데, 대표적인 것이 “개발자 커뮤니티”로 들어가는 거다.
컨퍼런스, 세미나, 밋업 등을 찾아다니고 자원봉사자로 일을 하다 보면 나만의 네트워
크가 쌓이고, 일을 할 기회도 얻게 된다. 오픈소스 프로젝트에 참여해서 현업 개발자들과
일할 기회를 얻기도 한다.
개발자 커뮤니티가 좋은 건, 사회진입의 문턱이 낮고 접근하기 쉽다는 거다.
다만, 여기에선 학생들이 주인공이 아니다. 학생들이 자기발로 걸어서 들어가는 거다.
학교가 할 일은 스킨쉽 기회를 많이 만들어주는 것이다. 학교에서 개발자 컨퍼런스나
밋업, 세미나가 열리게 해주자. 학생들이 쉽게 구경하고 참여할 수 있게 해주자.
사실 학교에서 현장에 준하는 교육환경을 꾸미기란 어렵다.
빅데이터 교육을 한다면, 10GB 이상의 데이터나 10여대 이상의 서버가 필요하다.
그리고 그 환경을 유지보수하고 업데이트할 개발자까지 필요하다.
“ChatGPT”도 마찬가지다. GPT-3를 학습시키는 데만 150~340억원이 들어갔다고 한
다.
학교는 그걸 감당할 수도 유지할 수도 없다.
그리고, 아무리 교육환경이 현업과 닮아 있더라도, 개발자들이 잘 인정해주지 않는다.
현업은 굉장히 많은 예외들과 싸워야 하기 때문이다.
사회적 성공경험은 반드시 사회적 네트워크 속에서 획득되어야 한다.
그래야 개발자들이 인정해주기 때문이다.
학교는 어린 새들이 둥지 안에서 날개짓을 안전하게 연습할 수 있도록만 해주자.
결국은 학생들이 기업으로 가야 문제가 해결된다.
산학연계 프로그램도 좋은 선택이 된다.
155
사. 기업형 콘텐츠
이노베이션 아카데미에서 했던 독특한 시도가 있었다.
네이버, 라인, 크래프톤 등이 “프로젝트형 콘텐츠”로 만들어서 학생들에게 배포한 것
이다. 기준은 “신입사원으로 채용할 만한 수준”이다.
과제 내용이 특별한가? 그렇지 않다. 프론트엔드, 백엔드, 게임 기초 같은 것들이다.
현업개발자 관점에서 보면 너무 쉽고 평범한 것들이다. 하지만, 학생들에겐 어렵다.
다만, 학생들이 접근하기 쉽도록 레벨을 나누고 난이도를 차등 조정한 거다.
처음에는 일주일짜리 과제도 어려워한다. 하지만 곧 익숙해진다.
학생들은 성장을 위해 충분한 동기를 얻을 수 있고, 기업들은 미리 훈련된 친구들을
받을 수 있어 채용실패율이 낮아진다.
다만, 학생들이 꼭 그 기업에만 가진 않는다. 실력이 쌓이다 보면 빨리 돈 벌고 싶어
다른 곳에 취업해 버리기도 한다.
매칭 문제는 강제로 되지 않는다. 다만 풀을 늘려 기회와 확률을 높여준다.
이런 콘텐츠는 어떻게 확보할 수 있을까?
아쉽게도 이건 교육설계자들이 개입해야 한다.
(문제) “초보자가 쓸 수 있는 블로그 에디터를 이렇게 저렇게 개발해 보세요.”
기업이 문제출제는 할 수 있어도 이걸 교육용으로 만들 순 없다. 기업은 제로 레벨의
친구를 교육시켜본 적이 없기 때문이다. 철학과 친구가 어떻게 공부해야 저걸 할 수 있
는지는 “교육설계자”가 해야 한다.
156
3. 학습 커뮤니티
가. 왜 커뮤니티일까?
42를 처음에 보고 깜짝 놀랐었다.
학교가 “개발자 커뮤니티”처럼 움직인다는 거였다.
그런 학교가 있으면 좋겠다는 생각을 한 적이 있었지만, 막상 보니 너무 인상 깊었다.
정말 학교를 예쁜 커뮤니티처럼 꾸며 놓았다.
동료학습? 동료평가? 그건 다 “커뮤니티”에서 일어나는 일들이다. 다만, “학습 커뮤니
티”22라는 게 다를 뿐.
“학습 커뮤니티”라고 하면 낯설 수 있다. 굳이 번역하자면 “학습 동아리” 정도 되겠다.
“공부한다”라는 목표를 가졌다는 게 일반 커뮤니티와 다르다. 조금 상세히 정리해보자.
구분 학습 동아리 개발자 커뮤니티 42 과정
구성원 학생들 일반 개발자들 학생들
집단크기 10 명 이하 1,000 명+ 1,000 명+
구성이유 학습(기술습득) 정보교류, 기술질문 학습(취업, 창업)
친목성 높은 편 낮은 편(비즈니스적 관계) 아주 높음
존속기간 과제 기간(1~3 달) 구성원이 존재하는 동안 교육과정(3 년)
가입 알음알음 제한없음 피씬
이탈 알음알음, 눈치 자유(안나감) 자유(동료끼리 관리)
공부과제 자유(스스로 정함) 없음 커리큘럼 있음
장점 물어볼 사람이 있음
고립으로부터 탈피
폭넓은 인적교류
- 다양한 기술, 산업군
다양하고 풍부한 동료들
- 다양한 관점, 경험들
단점 전문가 부재
- 또래학습 수준만
느슨한 관계 전문가 부재
- 또래학습 수준만
표 26 .개발자 커뮤니티와 학습동아리의 차이점
22
“학습커뮤니티” : (영어) Learning Community, (줄임말) LC, (동의어) 학습공동체. 학습동아리 (의미) 학습
을 목적으로 개인들이 자발적으로 구성한 집단.
157
현실적으로 “커뮤니티”는 소프트웨어 개발자들에게서 떼어놓을 수 없는 존재다.
왜냐하면 IT 산업은 다양한 기술들이 글로벌 단위로 융합하면서 성장했기 때문이다.
제품 하나를 만들기 위해 쓰이는 기술이 굉장히 복잡하고 고도로 집적되어 있다.
한 명의 개발자가 모든 걸 다 알 수도 없고 다 할 수도 없기 때문에, 개발자들은 생
존을 위해서라도 계속해서 커뮤니티에 기대게 된다.
그래서 커뮤니티는 정보교류와 상호배려, 상호 코칭이 기본이다. 그래야 서로 생존할
수 있기 때문이다.
개발자 커뮤니티는 친목 모임처럼 동작하기 때문에 대부분 외부의 도움 없이 자생한
다.
결속력이 쉽게 약해지기도 하지만, 굴러가면 자동으로 굴러가는 게 커뮤니티다.
이런 특징을 학습에 차용한 게 “집단 학습”이다.
엄격하게 따지자면 “학습 커뮤니티”와 다르지만, 여기에선 비슷한 맥락으로 묶어보자.
나. 역사와 유래
학습 동아리는 조금 작은 개념이다. “게임 동아리”, 이 정도로 생각하면 된다.
학습 커뮤니티는 조금 더 큰 개념이다. 100명 이상을 생각하면 된다.
작은 동아리가 여러 개 모여 있고, 동아리끼리 서로 교류를 한다.
학습 커뮤니티를 설계하기 전에, 그 역사와 유래를 먼저 알아보자.
(1) 초기의 모습
학습 커뮤니티의 기원은 모호하다.
오랫동안 종교적 목적으로 운영되었기 때문이다. 사회적으로 주목 받게 된 건, 1902
년 스웨덴의 “오스카 올슨” 때문이었다.
당시 스웨덴은 산업화가 급격히 진행되면서 사회적 빈곤의 심화, 알코올 중독의 증가
158
가 매우 심각했는데 이를 치유하기 위해 금욕주의 “절제운동”이 시작된 거다.
오스카 올슨은 당시 성직자이자 정치가였는데, 이 절제운동을 보급하기 위해 성인들을
대상으로 “스터디 써클23”을 만들었다. 교육수준을 높여 이런 상황을 개선하고자 한 것이
다.
이 때 학습동아리를 만들게 된 가장 큰 이유는 “변화의 자발성” 때문이었다.
결국 스스로 변하지 않으면 안 되는데, 그러려면 이런 조직들이 스스로 조직되고 운
영되어야 한다고 생각했기 때문이다.
이후 교회단체나 노동단체 속에서도 다양한 학습동아리가 생기면서 일반화되었다.
1980년대가 되자 이런 문화가 대학교육에도 넘어오기 시작했다.
1984년 미국의 “에버그린 주립대학”은 대학간 연합 커뮤니티를 만들었다.
하지만 운영과 발전을 위한 이론적 토대를 가지지 못했고, 1990년대 되어서야 비로소
교육이론들이 정립되기 시작했다.
(2) 교육이론의 정립
초기 모습은 성인교육으로 모임을 기반으로 한 세미나, 토론, 논쟁 등의 도구를 썼다.
하지만 교육이 지속적으로 보급되려면, 교육 효과의 반복. 재현이 가능해야 했다.
그러면서 교육이론들이 좀 더 면밀하고 복잡해지기 시작했다.
23
스터디 서클 : 학습동아리, 시민들끼리 모여서 지역사회를 개선하기 위한 크고작은 필요 활동들을 계
획하고 실천했다.
159
표 27. 학습 커뮤니티와 일반 커뮤니티의 차이점(바바라 레이 스미스, 에버그린 주립대)
1990년대 이전까지의 교육은 대상이 “개인”, 1인이었다.
1990년대 이후가 되어서야 비로소 교육연구의 대상이 “집단”으로 확대된다.
지식의 형성 과정을 새롭게 정의한 것이다.
“지식의 형성은 그 집단의 문화적인 관습이나 인식 기준을 바탕으로 한다.”
즉, 지식이란 자기가 경험한 것들을 체계적으로 정리하는 과정에 불과하며, 그 경험들
은 자기가 속한 집단에서 온다는 것이다.
물리, 수학 같은 순수학문에 대한 이야기는 아닌 것 같다. 하지만, 경영학, 철학, 문학
등에 대한 이야기라면 얼추 맞는 것 같다.
이런 시각은 “소프트웨어 스킬”과도 관련이 깊다.
http 프로토콜이나, OS 구조 등은 순수학문에 가깝다. 기계적 공학의 범주 내에 있기
때문에 원리를 이해해야 한다. 하지만, “웹 개발”, “앱 개발” 등은 실용스킬이라고 할 수
있다. 직접 코딩을 해보지 않으면 절대 코딩을 익힐 수 없다.
그래서, 학습 커뮤니티를 설계할 땐 “이론공부”와 “실습훈련”. 이 두 가지 활동이 공존
하도록 구성해야 한다.
학습자 스스로 이 두 개가 다르다는 걸 인지해야 하고, 엉뚱한 방법으로 공부하지 않
게끔 미리 정보를 줘야 한다.
학습 커뮤니티는 기본적으로 학생들의 커리큘럼, 공간, 시간을 재구성한다.
그렇게 재구성된 교육 모델들이 오랫동안 교육현장에서 사용되어 왔다.
그런데 여전히, 모든 교육모델들이 의도적으로 설계된 학습코스를 채택한다는
공통점이 있다.
이 학습코스는, 팀구성과 학생들의 상호작용에 더 많은 기회를 제공한다. 그리고
교육내용의 연계성과 일관성을 제공한다.
160
(3) 교육모델의 수립
그럼 학습 커뮤니티는 어떤 식으로 구성을 해야 할까?
몇 명이 어떻게 어떤 방식으로 공부를 해야 할까? 그걸 교육모델이라고 한다.
이 교육모델은 학습커뮤니티를 설계하는 방법들에 대한 것들이다.
우선 대표적인 “학습 커뮤니티 유형”에 대해 살펴보자.
교육모델 상세 내용
(1) Linked courses 기술과 학문이 상호 보완되는 사람들끼리 모여서 공부한다.
예) 역사학과 + 국어학과(글쓰기, 문해력)
(2) Learning clusters 서로 전공이 다르지만, 공통된 주제로 모여서 공부한다.
예) 전자공학, 컴퓨터공학과가 모여 “수학 동아리”를 만듬
(3) Freshman interest
groups
(2)번과 유사하지만, 전공이 같아서 선배들로부터 조언을 얻을
수 있다.
(4) Federated learning
communities
(2)번과 유사하지만, 우리 그룹 내 다른 코스에선 “교수진”으로
활동하는 사람이 있다.
(5) Coordinated studies 학생과 교수진이 한 학기 내 함께 하는 거대한 하나의 코스가
있다. 이때 전공간 경계는 모호해진다.
표 28. 학습 커뮤니티의 대표적인 모델 5가지24
이 학습모델들의 학습효과는 우열을 가릴 수 없다.
이런 커뮤니티란 그냥 학생들의 상황에 따라 생겼다 없어졌다 하기 때문이다.
공통적인 특징은 “학습자 중심”으로 운영된다는 거다. 이해가 느린 사람은 늦게 따라
가면 된다. 주된 학습법이 대화와 토론이다. 구성원 각각은 존중 받으며 실천을 통해 성
장한다.
리더도 돌아가면서 한다. 함께 성장하기 위해서다. 그런데 참고로, 리더교육은 별도로
필요하다. 운영 노하우가 필요하기 때문이다.
스웨덴의 경우 학습동아리 하나의 구성원을 7~10명 정도로 권장한다. 가장 학습이
24
Tinto, V. (2003). 함께 더 잘 배우기: 학습 커뮤니티가 학생의 성공에 미치는 영향. 대학에서 학생의 성
공 촉진, 고등 교육 모노그래프 시리즈(pp. 1-8). 시러큐스, 뉴욕: 시러큐스 대학. 2009년 9월 22일
161
일어나기 좋은 사이즈이기 때문이다.
그리고 지역사회에 봉사활동을 많이 하도록 권장하고 있다. 이런 실천활동과 상호작용
들이 교육효과를 높이고, 교육의 질을 올려주기 때문이다.
다. 학습커뮤니티의 특징
자, 그럼 “학습 커뮤니티”. 어떻게 시작할까?
그냥 사람만 모아놓으면 자동으로 굴러가는 걸까? 아니다.
만일 갈등이 생긴다면 어떤 기준으로 정리해야 할까? 모르겠다.
그냥 “사이 좋게 지내세요.”라고 말하는 건 좋은 해결책이 아니다.
“학습커뮤니티”라고 하면 다들 우와~라고 하겠지만, 막상 시작하려고 하면 어디서부
터 해야 할지 알 수 없다. 그러다 보니 제대로 운영되지 않고 금방 흐지부지되어 버리고
만다.
그래서 McMillan 등의 교육학자들은 제대로 동작하는 학습커뮤니티를 일찍부터 정의
하고 싶어했다. 잘 설명한 글이 있어 의역해 보았다.
그림 23. 학습 커뮤니티의 다양한 정의 (Richard E.West & Gregory S. Wallliams,
“학습, 교육설계기술의 기초”, “커뮤니티를 어떻게 정의할 것인가?”)
162
첫째, 쉽게 만날 수 있으면 “공동체”다.
옛날에는 물리적으로 가까이 있으면 그냥 공동체라고 불렀다.
저 사람이 싫어도 같은 학교 교실에 있으면 “학급 공동체”였다.
공동체를 정의하는 가장 손쉬운 방법이다.
종종, 학업을 같이 시작하는 “코호트 그룹”에도 “공동체”라는 말을 썼다.
온라인 커뮤니티가 형성되면서 물리적 거리라는 개념이 모호해졌다.
하지만, 가상커뮤니티와 구분하기 위해 여전히 물리적 거리를 기준으로 구분해야 한다
는 연구자들이 있다.
둘째, 정서적 관계 형성이 “공동체”를 정의한다.
“단순히 만나는 것만으로 공동체라고 할 순 없다. 정서적인 유대감이 생겨야 공동체라
고 할 수 있다.”
올리비에 블랑샤르 교수와 켄슬러 박사는 이런 식으로 정의했다.
즉, “관계맺기”가 이루어지지 않는 경우는 “공동체”라고 볼 수 없다는 거다.
이 때 나타나는 특징을 4가지로 정의했다.
소속감
“소속감이란 서로 연결되어 있다고 느끼는 것이며, 이것이 학습공동체의 본질이다.”
Baker와 Pomerantz(2000)는 제대로 동작하지 않은 공동체는 이 소속감이 관찰되지
않는다고 했다. 이 때의 소속감이란 “외롭지 않다는 느낌”까지 포함한다고 한다.
상호의존성
Sarason(1974)는 좀 더 나아가 이렇게 정의했다.
“공동체란 내가 의존할 수 있는, 상부상조 네트워크다.”
163
즉, 사람들은 심리적 안정감을 느끼기 위해 서로를 기꺼이 도와주려고 하고, 구성원에
대한 책임감까지도 공유한다.
신뢰
미국에서 커뮤니케이션을 연구하는 Paul Booth 교수(2012)는 이렇게 말했다.
“온라인 커뮤니티에서 지식공유가 일어나는 이유는 신뢰 때문이다.”
리히텐슈타인 교수는 이렇게 말했다.
“믿음이란, 학습커뮤니티 안에서 존중받거나, 존재가치를 인정받는다는 느낌이다. 이
감정은 학습 커뮤니티가 성공하기 위한 엄청 핵심요소이다.”
다른 연구자들은 이 감정을 “안전하다”라는 느낌이라고도 표현한다.
반대로 실패하는 커뮤니티들에는 이런 특징들이 있다.
갈등이 항상 끊이지 않거나, 멘토나 교수진이 학생들과 분리되어 있어 돕지 있지 않
다. 즉, 신뢰가 형성되지 않은 거다.
공통된 믿음
좀 더 강한 공동체에는 이런 믿음들이 자리잡고 있다고 한다. (McMillan , 1986)
“우리 공동체는 각자의 노력에 의해 각 구성원들의 니즈를 충족시켜줄 것이다.”
특히 온라인 커뮤니티의 경우에는 이런 감성적 동질감 형성이 커뮤니티 성공에 더 큰
영향을 끼친다고 한다.
전체적으로 정리하자면, 공동체는 정서적인 유대감이 강한 집단이며 이 유대감이 서로
에 대해 호의적이고 헌신적으로 작동할 때, 학습커뮤니티의 교육효과가 성공한다는 거다.
만일 서로 시기질투 하거나 정치세력화가 되면, 학습 커뮤니티는 동작하지 않게 된다.
셋째, 공통된 비전의 유무로 정의하기도 한다.
164
정서적 유대감이 없다고 해서 공동체가 아닌 건 아니다. 유대관계가 없어도, 목적이나
목표가 같다면 구성원들은 스스로를 공동체라고 생각하기도 한다.
즉 “공동체”를 신뢰성, 의존성 같은 특징으로도 정의할 수 있지만, 공동체라고 “생각”
하는 것만으로도 공동체가 되는 거다.
그들은 미션, 목표 등을 공유함으로써 같은 방향으로 나아가고 있다고 믿는다.
재미난 건 이건 “신뢰를 공유”하는 것과는 다르다. 구성원들은 수학을 좋아하지 않을
수도 있고, 목표를 이룰거라는 믿음이 없을 수도 있다.
다만, 같은 비전과 방향을 향해 걷는 것 만으로 “공동체”라고 생각한다.
그래서 혹자는 “신뢰”, “비전” 이런 게 중요한 게 아니라, “공유”라는 행위 자체가 공
동체를 형성하는 본질 아닐까라고 생각한다.
켈리 슈럼 교수는 “학습공동체란, 단순히 공부라는 목적에 동의하는 개인들의 모임”일
뿐이라고도 했고, 로얄 교수는 효과적인 학습공동체를 “그냥 학교의 미래, 목표 등을 공
유한 학생들이 팀워크를 하기에 좋은 환경”일 뿐이라고도 불렀다.
넷째, 기능으로 분류할 수 있다.
혹자는 그냥 “공동체”처럼 행동하고 있다면, 그걸 “학습공동체”라고 부르기도 한다.
예를 들어 대부분 실무자들로 구성된 “비즈니스 연구 모임”을 가정해보자. 그들은 어
떤 연구목표를 위해 서로 협력한다.
여기엔 비전도 없고, 정서적 유대감도 없다. 그냥 과제달성을 위한 “기능적 도구”로서
“공동체”가 존재하는 거다.
프로젝트가 끝나면 대부분 흩어져 버린다. 이런 “기능적 공동체”는 21세기 들어 “프로
젝트 그룹”으로 더 각광받고 있다.
특히 온라인 커뮤니티에서 많이 보인다. 구성원들은 프로젝트에 대해 비동기적으로 정
보를 주고받기 위해 이렇게 많이 활동한다.
165
라. 코호트 설계하기
본격적으로 커뮤니티를 설계해 보자.
학습 공동체는 학습이라는 관점에서 명확히 방향성을 가진다.
구성원들은 레벨 제로에서 레벨 10으로 이동한다. 파이썬을 다 배우고 나면 졸업을
한다.
그래서 함께 공부를 시작하는 단위그룹을 기준으로 학습공동체를 관리한다.
이 단위그룹을 “코호트” cohort라고 한다. 오프라인보다 온라인에서 더 많이 쓰이는
기법이다.
(1) 코호트 모델
전통적인 교육에선 교수가 교육의 주인공이다. 교수가 교습행위를 잘 하는 것만으로
교육의 결과물이 달라진다고 생각한다. 그래서 학습이 일어나는 인지적 과정이나 학생들
의 수용상태에 대해 관심이 없다.
하지만, 학습자 중심의 교육에선 학생이 주인공이다. 학생들이 스스로 잘 해야 교육의
결과가 달라진다.
그래서 “어떻게 스스로 하게 만들 것인가?” 이게 중요해 졌다. 학습이 일어나는 인지
적 과정을 관찰하고, 스스로 할 수 있도록 여러 가지 장치를 한다.
학습공동체는 이런 시각의 연장이며, “코호트 모델”은 그런 과정을 지속적으로 관찰하
고 지원하기 위한 단위그룹이다.
그래서 코호트 모델은 다음과 같이 4가지 특징을 가지도록 설계한다.
첫째, 커뮤니티로 설계한다.
사람들은 공동체 안에서 성장한다. 잘하는 사람을 보고 따라하거나, 다양한 피드백을
통해 성장한다. 기술 하나만 익히는 게 아니라, 거기에 관계된 모든 것을 함께 익힌다.
그래서 커뮤니티는 다양한 경험을 가진 학생들과 전문가들로 구성한다.
166
집중 환경에선 멘토쉽, 협력관계, 코칭 등 다양한 관계형성이 발생된다. 심지어 연애도
하고 고객도 생긴다. 이런 과정 속에서 학생들은 현실 세계와 좀 더 가까워지게 된다.
물론 이런 공동체는 의도적으로 만들어질 수 없다. 다만, 이런 환경을 조성함으로써
이런 방향으로 생성되게끔 유도한다.
둘째, 책임의식을 부여한다.
프로젝트를 시작할 때 모든 구성원들에게 역할을 하나씩 준다. 조교, 상담자 등의 지
원역할도 좋다. 이 역할은 학생들에게 책임감을 부여, 학습과정에 몰입할 수 있게 함으로
써 참여율을 올린다. 이 때의 잘하려는 욕구는 “우호적 유대관계”에서 비롯된다. 즉, 분위
기를 잘 관리해줘야 한다.
셋째, 반드시 상호작용이 있어야 한다.
상호작용이란 “대화”를 말한다. 묻고 답하고, 토론하는 과정을 통해 지식과 경험이 전
이된다. 그래서 대화가 없고, 상호작용이 안 된다면, 왜 없는 지부터 토론을 하게 한다.
넷째, 총체적 변화를 목표로 한다.
코호트 모델은 단순한 지식형성이 아니라 사람의 정체성 변화를 목표로 한다. 예를
들어 “파이썬 배우기”가 아니라 “웹 개발자 되기”로 설계한다.
지식배틀이 아니라, 실천으로 통해 사람의 습관이나 행동, 사고방식까지 바꾸도록 훈
련시킨다.
(2) 집단의 크기
동료학습을 해야 한다면 도대체 몇 명이 모여서 해야 할까?
즉, 코호트 집단의 크기는 어떻게 설계해야 할까?
규모 특징 교육인력 구성
소그룹
(20 명 내외)
교육의 밀도가 높음
소수 대상의 특수기술 교육에 적합
퍼실리테이터 필수(1 인당 20 명 이내)
멘토 필수(전문분야별 1 명 이상, 비상근직)
중그룹
(20~50 명 이내)
교육의 밀도가 비교적 높음
다소 범용적인 기술 교육에 적합
퍼실리테이터 선택(1 인당 50 명 수준)
교육운영 필수(1 인당 50 명 수준)
멘토 권장(전문분야별 1 명 이상, 비상근직)
167
대그룹
(100 명 이상)
교육의 밀도는 낮음
범용적인 기술 교육에 적합
퍼실리테이터 선택(1 인당 100 명 수준)
교육운영 필수(1 인당 50 명 수준)
멘토 선택(멘토 1 인당 10 명 수준, 비상근직)
표 29. 집단규모별 특징과 지원인력 구성
코호트 집단의 크기는 그 집단이 보유한 “지식과 경험의 총량”을 의미한다.
총량이 많으면 학생들간 매칭만 잘 시켜도 학습이 활발하게 일어난다.
집단의 크기가 작으면 과제에 필요한 “지식과 경험”이 없는 경우가 생긴다.
이 경우, 외부에서 경험을 가진 사람을 찾아 매칭해줘야 한다.
이 역할을 하는 사람이 “퍼실리테이터”다.
경험이란 전문지식일 수도 있고 “검색키워드”일 수도 있다. 학생들이 스스로 벽을 넘
어설 수 있도록 도와주는 여러 가지 것들이다.
제공자는 현업개발자일수도 있고, 선배들일 수도 있다. 기술적인 대화가 가능한 사람
이어야 한다. 가능하면 여러 명으로 구성된 풀을 만들자.
소그룹일수록 소통의 속도가 빨라서 학습속도가 빨라진다. 하지만, 경험의 크기가 작
아 과제가 어려워지면 금방 벽에 부닥친다. 물어볼 사람이 없으면 과제를 진행하지 못해
좌절하게 되고, 자연스레 학습그룹이 와해된다.
대그룹은 경험의 크기가 커서 물어볼 사람을 찾기 쉽다. 도움을 요청하면 금방 누군
가 달려온다. 학생들에게 몇 가지 요령만 가르쳐줘도 “스캐폴딩”이 발생한다. 하지만, 소
그룹은 그렇지 않다.
그래서 소그룹에는 “퍼실리테이터”가 반드시 필요하다. 학생들이 벽에 부닥칠 때 경험
자를 찾아 매칭시켜주는 역할을 한다. 경험의 조달자이다.
교직원이 맡아도 되고, 학생들이 맡아도 된다. 다만, 과제에 대해 조언해줄 수 있는
“경험자풀”이 구성되어 있어야 한다.
168
공부할 때 최적의 크기는 3-5명 정도가 적당하다. 결석인원이 생겼어도 최소한 3명이
상존할 수 있다. 최소 3명이면 쉬지 않고 학습진도를 나간다.
학습진도를 나가는 건 꽤 중요하다. 참석자는 기한에 맞춰 과제를 끝낼 수 있고, 결석
자는 뒤쳐지기 않기 위해 노력할 수 있다.
동기가 유지되기 때문에 학습그룹이 깨어지지 않고, “실패”하던 “성공”하던 중요한 경
험들이 형성된다. 선순환이 되는 거다.
반면 학습그룹이 2명 이하이면, 종종 학습을 건너뛰게 된다. 그러면 학생들은 늘어져
서 집중도 잘 안되고, 결석자도 긴장감이 없어져서 학습그룹 자체가 흐지부지된다.
동기가 깨어지니 과제도 제때 끝나지 않고, 흐지부지 끝나 필요한 경험이 안 쌓인다.
과제가 크면 5-7인으로 구성되기도 한다. 어쨌든 학습그룹의 크기가 크게 느껴진다면
두 팀으로 쪼갠다. 중요한 건 기일 내에 결과물을 만들어내는 것이다.
만일, 무임승차하려는 동료가 있다면 과감하게 팀을 깨고 새로 만든다. 동기가 깨어지
면 그룹학습은 깨어진다.
한 코호트 그룹 내에 학습그룹이 5개 이상 존재하는 게 좋다. 1개팀이 깨어져도 다른
팀이 흡수할 수 있다.
대그룹은 어떨까?
인원수가 많아진다는 건 매번 새로운 얼굴로 학습그룹을 만들 수 있다는 뜻이다.
다양한 사람들을 만날수록 학생들의 경험폭은 넓어진다. 교육의 질이 올라간다.
(3) 퍼실리테이터와 교육운영
학습이 집단화되면서 “교수자”의 역할이 갈라진다.
169
“멘토”, “퍼실리테이터”, “교육운영” 등의 구성원이 필요하게 된다.
역량이 된다면 한 사람이 해도 되는데, 학생들이 많아지면 그러기 어렵다.
하지만 잊지 말자. 이 교육모델의 주인공은 학생들이다.
교직원의 에너지로 교육이 돌아간다면, 이 교육은 실패한다.
교직원의 에너지를 투자하면, 분명히 교육의 질은 올라간다. 교육은 투자한 학습자원
만큼 효과도 높아지기 때문이다.
하지만, 교직원이 없다면 교육이 지속될 수 없다.
집단학습의 가장 큰 특징 중의 하나는, 교직원 없이도 지속가능 하다는 것이다.
그래서 가능하면 공동체의 구성원이 스스로 할 수 있도록 여러 가지 역할을 열어 두
어야 한다.
“퍼실리테이터”는 교육의 진행을 담당한다.
조교역할로 이해하면 된다. 학습이 정체되어 있거나, 학습속도가 떨어지면 개입한다.
개입 수준은 교육기관마다 다를 수 있다.
교육 내용에는 관여하지 않는다. 진행자이자 돌봄교사 정도이다.
“멘토”는 전문지식을 가진 조언자다.
외부 전문가나 선배들이 해도 좋다. 교육 내용에 관여하거나 학습에도 참여할 수 있
다. 다만 공동체의 구성원일 뿐, 교수자 역할은 하지 않는다.
강의교육을 기피하진 않는다. 다만, “교수자 – 학생 관계”를 기피한다.
“특강”은 학생들이 “경험공유 활동”으로 받아들인다. 하지만, 포맷화된 교수자 수업
은 ”지식전달 프로그램”으로 받아들인다.
170
수동적 학습태도를 요구하는 순간 학생들은 지루해 하거나 이탈한다.
이 교육모델이 “교수자 수업”의 대안으로 등장한 학습모델이라는 걸 잊지 말자.
학습 중에 수학, 과학 등이 필요하다면, 학생들끼리 가르치게 하자. “프락시스 교수학
습모형”을 참고하면 된다.
“퍼실리테이터”는 학생들 옆에 있는 사람이다.
중그룹 규모가 되면, 교육의 전체흐름을 관리할 인력이 필요하다.
신입생 선발 일정을 세우고 학습현황을 체크하고, 외부전문가를 섭외하고, 다음 달 스
케쥴을 체크한다. 교육기획과 설계의 역할도 있는데, 여기선 빼자.
멘토와 퍼실리테이터는 한 사람이 하면 가장 좋지만, 사람 구하기가 힘들다.
그래서 대부분 분리해서 구한다.
“퍼실리테이터”는 교육전문가로서, 교육이 진행되는 동안 필요하다.
“멘토”는 기술전문가로서, 항상 있을 이유는 없다.
특히 멘토는 회사일로 바쁘기 때문에 교육일정에 묶여 있지 않다.
이 모델에선 느슨하게 관리하자.
학생들이 멘토를 찾는 이유는 자기가 부족하다고 느낄 때인데, 이 때 익혀야 할 건
스스로 찾아가서 질문하고 필요한 정보를 뽑아오는 스킬이다.
(4) 조력 그룹(멘토, 튜터)
공동체 학습의 특징은 “경험”의 소통을 통해 지식을 형성시키는 것이다.
단점으로는 집단 내에 충분한 “경험”들이 존재하지 않는다면, 배움이 일어나지 않는다.
예를 들어, DevOps나 빅데이터는 학생들이 하기 어렵다. 익힐 수 있는 게 어플리케
171
이션 사용법 정도다.
하지만, 기업에서 원하는 건 이 기술들을 이용해 서비스를 안정화 시킨다든가, 데이터
를 이용해 사업예측을 하는 것이다.
즉, 그런 경험이 없다면 기술이 의미하는 바를 알 수도 없고, 어디다 써먹어야 할지도
알 수 없다.
그런 경험은 인터넷을 검색해도 안 나온다. 그래서 학생들이 공부에 필요한 정보와
경험을 확보할 수 없다.
이 때 조력활동을 해줄 전문가 집단이 필요한데, 그게 “멘토”들이다.
교육내용이 대학교 수준이라면 경험이나 지식의 조달은 쉬운 편이다.
“컴퓨터공학과” 수준이라면 학생들끼리 코칭 해도 된다. 참고서적이 많기 때문이다.
먼저 진도를 나간 코호트 그룹이 코치역할을 할 수 있다.
즉, 학교교육이라면 완벽하게 학생들만으로도 교육운영이 가능하다.
학교라면 학기 내에 교육을 마쳐야 하므로, 코칭활동을 제도화 시킨다.
코호트 그룹 내에 “튜터” 역할을 만들어 주면, 조력활동 때문에 학습속도가 빨라진다.
멘토 등 조력그룹을 운용할 때 주의할 점은, “권위”로서 동작하면 안 된다.
즉, “10년차 개발자니까 다 옳아.” 학생들이 이런 식으로 받아들이면 안 된다.
학생들이 그렇게 할까 싶은데, 그렇게 한다.
그래서 조력그룹을 형성할 때도 가능한 다양하게 구성하고, 학생들에게도 “경험”의 청
취채널로서 접근하라고 일러 둔다.
172
마. 학습커뮤니티의 단점
커뮤니티로 운영할 땐 주의해야 할 점이 있다.
사람들이 모여 있는 만큼, 갈등도 다양하게 생긴다는 거다. 사람이 많이 모일수록 갈
등도 더 커진다. 소그룹일땐 크지 않는데, 중그룹이나 대그룹일 땐 매우 두드러진다.
첫째로 가장 큰 건 “정치적 세력화”이다.
사람들이 모이는 곳엔 정치적 흡인력이 있는 친구들이 항상 존재한다.
특히 교육기간이 길어지면 반드시 생긴다.
문제는 이게 정치적 갈등으로 이어질 때다.
이익집단의 성격을 띄게 되면 공부가 아니라 집단의 이익보호가 우선이 된다.
그러면 집단 갈등으로 비화되고, 타협점이 없어진다.
가능하면 집단에 외적보상을 주지 않는다. 예를 들면 “과제연구회”, “게임개발동아리”
등에 장학금을 주지 않는다.
돈이 결부되면 반드시 세력화되고 갈등이 시작된다.
둘째, “고인물화”이다.
학업기간이 길어지면 친한 사람을 중심으로 친목화가 진행된다.
친목화는 커뮤니티의 특징이자 장점이다. 정서적 유대감이 서로에 대한 헌신과 기여를
만들어내기 때문이다.
하지만, 텃새나 권위의식 등으로 신입생이 유입되지 못하면 안 된다.
80학번 모임 같이 함께 늙어갈 친목모임이라면 그래도 되지만, 정기적으로 졸업생을
배출시켜야 하는 학교라면 그럴 수 없다.
3개월, 6개월 기간을 정하고 흐름을 만들어서 계속 새로운 사람이 유입되도록 한다.
173
세번째로, 가장 중요하게 생각해야 할 것이 “학습 분위기” 형성이다.
42 교육 초기, 파리캠퍼스는 학생들을 그대로 두면 알아서 공부할 거라는 조언을 했
다.
우리는 그 조언을 믿고 1년 정도 정말 바라보기만 했다.
그랬더니, 특이한 현상이 일어났다.
비전공자들이 질문을 올리면, 전공자들이 핀잔을 주기 시작한 거다.
“이런 기초적인 내용은 구글 검색이라도 해보고 합시다.”
내용은 점잖아 보이지만 꽤 공격적인 태도였다. 이건 당시의 온라인 문화였다.
일부 학생들은 질문을 “공해”로 인식했고, 검색이라도 해본 후 질문을 올리도록 “예의”
를 요구했다.
언듯 합리적인 듯 보였지만, 한달정도 지나자 “질문채널”에는 거의 한 개의 질문도 올
라오지 않았다. 자기검열이 소통을 막아버린 거다.
학생들은 고립에 빠져 학업을 포기하기 시했다. 이 현상은 3개월 이상 지속되었는데,
아무리 기다려도 상황은 개선되지 않았다.
교육기관의 존재목적은 시시비비를 가리는 게 아니다. 학생들을 공부시키는 거다.
집단학습 모델에선 “소문”이 도는 속도가 빠르고 분위기 전파도 빠르다.
분위기가 흐트러져서 상호작용이 일어나지 않으면 학습은 일어나지 않는다.
그래서, 교육 운영자가 꾸준히 분위기 관리해줘야 한다.
소통을 막는 행위가 있다면, 주의를 주고, 경고를 주고, 퇴학까지 시킨다.
174
바. 개발자 커뮤니티
IT 기술은 기본적으로 근본 없이 발전했다.
혈통을 가지고 정통성 있게 발전해온 게 아니라, 그때그때 필요한 기술을 조달하고
활용하면서 발전해왔다.
예를 들어 최초의 컴퓨터는 그저 로켓 궤도를 계산하기 위한 복잡한 계산기였을 뿐이
다. 그러다 생뚱맞게 인터넷이란 게 태어났는데, 군사용으로 사용하기 위한 통신 규격이
었을 뿐이다.
그것도 어느 날 갑자기 웹 브라우저와 html이 등장하면서 대중화되기 시작했고, 동적
화면을 구현하려는 시도가 생기면서 JavaScript가 만들어졌다.
그야말로 좌충우돌하면서 성장해온 것이다.
Java도 처음에는 지금과 같은 서버 플랫폼이 아니었다.
원래는 TV, 전자레인지 등 가전제품에 탑재될 목적으로 개발된 가벼운 언어였다. 하지
만 거기에선 환영 받지 못했고, 오히려 웹 브라우저에 쓰이면서 대중화되기 시작했다.
그리고, html의 Hypertext라는 개념은, 테드 넬슨이라는 사회학자에 의해 탄생되었는
데, 수집품의 색인을 구축하기 위해 고안한 개념일 뿐이었다.
즉, IT기술은 물리학이나 수학처럼 하나를 깨달으면 나머지를 알 수 있는 그런 분야가
아니다. 탄생배경이 다양하고 작동규칙도 달라서 그때그때 배워서 쓸 수밖에 없다.
개발자는 혼자서 모든 걸 알 수 없으니 고립되는 순간 점점 도태되어 간다.
그래서 “커뮤니티”는 개발자에게서 뗄레야 뗄 수 없는 존재이다.
하지만, 개발자 커뮤니티는 동문회처럼 엄격하고 끈끈한 사교적 모임이 아니다.
그냥 서로 알고 지내면 좋을 것 같은 기술자들끼리 살포시 정보를 주고받는 꽤 데면
데면한 사교적 모임이다. 물론, 정보교환이나 세미나 등의 활동은 활발하게 일어난다.
175
이런 모습은 빠른 기술의 변화 때문에 자연스럽게 자리잡은 “동반성장 문화”이다.
즉, 개발자 커뮤니티는 성장을 촉진시키는 사회 인프라처럼 작동한다. 그리고 “상호채
용의 창구역할까지 자연스럽게 해내고 있다.
“학습 커뮤니티”는 그런 개발자 커뮤니티를 미리 연습해볼 수 있는 학교 플랫폼이기
도 하다.
현업 CTO로서 “학습 커뮤니티”는, 개발자를 가장 잘 훈련시킬 수 있는 교육환경이라
고 생각한다. 적극적으로 지지하지 않을 수 없다.
4. 교육도구
교육도구는 개발환경과 교육도구로 나뉜다.
교육의 질과 역량수준에 직접적으로 관계한다. 가볍게 보지 말고, 진지하게 접근하자.
가. 개발환경
개발환경은 현대 소프트웨어 개발에서 절대 보조적 역할이 아니다. 생산성을 높이거나
협업을 위해 자연스럽게 만들어진 도구들이라, 개발과정의 중심에 있다.
요즘 개발의 전체흐름을 이해할 수 있는데, 가능하면 모든 학생들이 교육과정에서 자
연스레 익혀서 나갈 수 있게 해야 한다.
회사에 가서 배울 수도 있겠지만, 이걸 이해하고 가는 것과 아닌 것과의 차이는 매우
크다. 지식과 경험은 Why라고 질문할 시간을 충분히 가져야 형성되기 때문이다.
예를 들어 GitHub을 이용해보지 못한 학생들은 협업하는데 어려움이 크다. 협업이란
직업적 가치관이나 업무우선순위, 토론 태도 등이 함께 연결되어 있기 때문이다.
가장 기본적인 것부터 이야기해보자.
176
제일 먼저 노트북과 서버가 필요하다.
가능하면 메모리 넉넉하고, 속도가 빠른 노트북이 필요하다. 설치해야 할 소프트웨어
도 많고, 컴파일 시간도 빨라야 하기 때문이다. 빠르게 Try&Error 를 반복할수록 소프트
웨어의 완성도는 높아진다.
노트북에 Visual Studio를 설치하고, nginx, MySQL을 설치하면 웹 개발을 시작할 수
있다. 만일, 웹 아이콘을 디자인해야 한다면, Adobe Illustrator와 Adobe Photoshop가
있어야 한다. 없다면 몇 가지 템플릿 페이지를 참고할 수도 있는데, 가능하면 있는 게 좋
다.
팀 작업을 해야 하는 경우는 어떨까?
함께 업무기록을 할 수 있도록 notion 계정을 준비해야 한다.
함께 화면을 그려볼 수 있도록 Figma 계정도 만들자.
업무를 잘게 쪼개어 Taks로 만든 후 Trello에 등록해 놓자.
Trello는 모든 팀원들과 함께 작업내용을 공유할 수 있는 사이트다.
이런 걸 “협업도구”라고 한다.
여러 명이 함께 개발했다면, 공동으로 관리하는 소스코드 저장소가 있어야 한다.
GitHub은 공개된 저장소이니, GitLab이나 Bitbucket을 사용한다.
소스코드를 모아서 함께 돌아가는 걸 확인했다면, 이제 서버에 함께 올려야 한다.
버전 1.0으로 이름을 붙이고 서버 배포를 위한 디버깅 환경까지 마련하자.
등등. 이런 과정을 거쳐야 비로소 “동작하는 웹페이지”를 볼 수 있다.
이런 작업 환경을 통틀어서 “개발환경”이라고 말한다.
177
이 과정을 구성해 놓고 서야 이제 본격적인 개발을 할 수 있다. 비로소 프로그래밍
언어도 써볼 수 있고, 알고리즘도 필요하게 된다.
협업환경이나 도구들은 회사마다 다르다. 필요에 따라 더 쓰는 경우도 있고, 꽤 오래
전부터 써왔다면 옛날 버전을 쓰는 경우도 있다.
하지만, 단순히 프로그램을 실행시킬 수 있는 “실행환경”은 아주 오래된 이야기다. 실
행환경 만으로 소프트웨어 개발을 하는 시대는 갔다.
추가적으로 클라우드 교육이라면, 블레이드 서버와 라우터, 스위치가 필요하다.
AI 교육이라면 GPU 서버가 꼭 필요하다.
Docker와 Kubernetes를 공부한다면, 꽤 큰 서버를 제공해줄 수 있도록 하자.
소프트웨어 개발도 명확히 교보재가 필요한 분야이며, 이런 것들의 제공여부에 따라
학생들의 수준이 아주 많이 달라진다.
나. 교육도구
교육도구란 교육을 위해 필요한 환경들이다. 어떤 것들이 있을까?
전통적인 강의수업에는 “교육도구”랄 게 없다. 교수가 설명하고 학생들이 필기하는 걸
로 끝나기 때문이다. 컴퓨터 실습시간이라고 해봐야 따라 하기 정도이다.
그러나 소프트웨어 개발은 그렇지 않다.
교육 단계에서 가장 먼저 챙겨야 할 게 “코드리뷰” 문화이다. 코드를 짠다는 건 음악
을 연주하는 것과 같아서, 함께 들어주고 피드백 해주는 게 매우 중요하다.
이 에러가 어떤 문제인지 알아내야 하는데 아직 초보자라면 그게 무슨 문제인지 설명
하기조차 어렵다. 전화통화로 설명하고 대답하는 방식으로는 문제를 해결할 수 없다.
“이거 이렇게 짜지 말고 이렇게 고치면 훨씬 더 좋아요.”
178
“컴퓨터가 이렇게 동작하지 않기 때문에, 이 코드는 이렇게 써야 해요.”
“저쪽 서버에서 이렇게 메시지를 보내기 때문에, 이쪽에선 이렇게 받아야 해요.”
코드를 주욱 살펴보는 것만으로도 문제가 종합적으로 이해된다.
Path를 제대로 잡았는지, File권한은 어땠는지 함께 볼 수도 있다.
코드리뷰란, 단순히 코드를 살펴보고 평가하는 것 만을 의미하지 않는다.
코드를 놓고 다양한 기술 이야기를 함께 하는 지식과 경험전달의 과정이다.
즉, 학교 수준에서의 “코드리뷰”는 “현장학습”과 동일한 의미이다.
코드리뷰를 요청하거나 요청 받을 수 있는 소통채널이 있으면 좋다.
단톡방에 올리는 것보다는 훨씬 더 이력관리하기 쉽고, 다시 찾아보기도 좋다.
학생들이 참고하는 블로그나 학습 사이트를 함께 모아 놓는다.
기타 등등, 상호코칭과 집단학습에 필요한 학습자원을 모으고, 그걸 참조하게 만들자.
이런 교육도구들은 사실 학생들이 만드는 게 가장 좋다.
왜냐하면 공동체 활동의 당사자들이 필요성을 가장 많이 느끼고 내용을 가장 잘 알기
때문이다.
외부 전문가들과 협업을 통해 만들어도 좋다. 다만, 공동체 활동에 참여하지 않은 사
람이 적합한 교육도구를 만들기는 어렵다.
“사용자 시나리오”를 알 수 없으니, 무얼 개발해야 할지 모르기 때문이다.
다. 오픈소스
학생들이 자발적으로 만든 소스코드들은 가능하면 “오픈소스”화 시키자.
179
교육기관의 GitHub에 링크를 걸어 놓고, 누구나 참고할 수 있게 하자.
학생들이 이전 기수가 만들어 놓은 걸 뜯어고치게도 하고, 다음 기수가 자유롭게 가
져다 쓸 수 있게도 하자.
오픈소스의 가치와 의미는 아무리 강조해도 지나치지 않지만, 교육 분야에선 더더욱
그 가치가 두드러진다.
첫째, 학생들은 남의 코드를 모방할 때 발전한다.
베끼는 행위를 말하는 게 아니다.
자기가 풀고 싶은 문제가 있어 골똘히 해법을 생각하고 그걸 코딩해 놓았는데, 고수
가 더 세련된 방법으로 만들어 놓은 코드를 본다면, 개발자들은 거의 “대오각성”을 한다.
즉, 성장은 행동 – 회고(반성) – 교정을 반복할 때 일어나는데, 이 때 모방행위는 회
고의 인식폭을 넓혀주고 교정행위의 수준을 대폭 높여주는 중요한 키가 된다.
남의 코드를 참고하고 연구하는 건 절대 나쁜 짓이 아니다. 오히려 권장해야 하고, 그
러기 위해 여러 사람의 코드를 쉽게 찾아볼 수 있어야 한다.
특히 같은 문제에 대한 다양한 해법들을 만나는 것만으로, 개발자들의 안목은 굉장히
넓어진다.
단, 베끼는 것 만으로는 실력이 나아지지 않는다. 결국 참고만 할 뿐 나 스스로 고민
하고 구현해봐야 한다.
둘째, 글로벌 개발자들과 일해볼 수 있는 기회가 된다.
Apache나 Linux 재단의 오픈소스에 관심을 가진다면, 자기가 관심 있는 파트를 찾아
Code를 contribution 해볼 수 있다. 대부분의 Committer 들은 이런 contribution에
대해 적극적으로 대응해주는데, 이게 훗날 함께 일해볼 수 있는 인연이 되기도 한다.
180
한국의 교실에 앉아 실리콘밸리 개발자와 코드를 놓고 토론해볼 기회가 얼마나 될까?
개발자들은 문제를 꿰뚫어 보고 해결책을 제시할 수 있는 눈이 굉장히 중요하다.
고수들과 대화를 자주하는 것만으로도 그 눈이 길러진다.
글로벌 오픈소스는 학생들의 성장동기를 강하게 자극시켜준다.
셋째, 나를 공개한다는 것만으로 성장동기가 뚜렷해 진다.
“모방”은 과제를 베껴서 제출하는 것과 구분하기 어렵다.
하지만, 누군가 내 걸 보고 참고하고 질문한다면?
최소한 남에게 설명할 수 있거나 응용할 수 있을 정도는 실력은 쌓게 된다.
내가 블러핑 하거나 남을 속였을 때 당연히 비웃음을 사기 때문이다.
나를 드러내는 건 적어도 나 자신에게 진지할 수 있도록 만들어준다.
남을 잠깐 속일 수는 있어도, 영원히 속일 수는 없기 때문이다.
넷째, 현업 개발자들과의 만남.
내 코드를 만들고 그 코드에 관심 있는 사람들을 모으고, 그 분들과 함께 무언가를
쌓아간다는 건 이미 프로 세계에 있다는 걸 의미한다.
이런 경험을 학교에서 해보는 건 굉장히 중요한 경험이다. 학교가 일종의 안전판 역
할을 해주기 때문이다.
학교에서 학생들이 현업들과 자유롭게 만날 수 있는 길은, 공통된 관심사뿐이다.
내 코드를 외부에 공개하고 현업개발자들과 대화할 수 있다면, 그것만큼 의미 있고
뿌듯한 일이 없다.
181
물론 학생들에게 현업수준의 오픈소스를 기대하긴 어렵다.
제대로 된 오픈소스란 지속가능성을 보장해야 하기 때문이다.
쓰는 사람이 꾸준해야 하고 다양한 기술변화에도 대응이 가능해야 한다.
그래서, “개발자 커뮤티니”, “다양한 문서” 등을 붙이고 적정한 “거버넌스” 체계를 잡아
야 비로소 동작하는 “오픈소스”를 구현할 수 있다.
이건 프로의 세계에서도 힘드니까 학교수준에선 기대하지 말자.
182
제7장. 교육의 운영
1. 학교의 모습
학교의 모습을 간단하게 그려보라면 이렇게 말할 수 있다.
“이곳은 개발자 지망생들이 모여 자유롭게 어울리면서 공부하는 개발자 놀이터다.”
“모든 활동이 학생들에 의해 자치적으로 이루어지며, 졸업 후에도 구성원으로 활동할
수 있는 평생학습 공동체이다.”
그리고, 사회와 단절된 곳이 아니라 양방향으로 연결되어 있는 개발자 학교다.
“스타트업들이 학생들과 만나 다양한 실험들을 해볼 수 있는 소프트웨어 연구소이며,
사회 커뮤니티가 학생들과 만나 우리 사회의 문제를 풀어가는 실천공동체이기도 하다.”
이 학교가 작동하는 방식은 기존의 학교와는 완전히 다르다.
“수동적 교육철학” Passive pedagogy은 교육이 완성될 때까진 학생들을 수동적인 교
육대상으로 본다. 교육의 완성을 교사가 수업일정을 모두 진행했는가로 판단한다. 그래서
잘 통제된 방식으로 주어진 프로세스와 일정을 소화하는 게 매우 중요하다.
하지만, “능동적 교육철학” Active pedagogy은 학생들을 스스로 알아서 움직이는 능
동적 학습자로 본다. 교육의 완성을 학생이 모든 걸 습득했는가(Get)로 판단한다. 그래서
학생들이 잘 습득할 수 있도록 환경을 구성해주는 게 매우 중요하다.
능동적 교육철학을 쓰는 목적은, “능동형 인간”을 만드는데 있다.
“능동형”이란 누가 시키지 않아도 도전적으로 문제를 풀어나간다는 뜻이다. 더 큰 문
제를 풀기 위해 팀을 만들고 팀워크를 할 수 있다는 뜻이다.
교육의 완성을 “학교의 것을 모두 습득했느냐”로 판단하지 않는다. 사회 속으로 나아
183
가 제 몫을 하기 시작했느냐로 판단한다.
그래서, 레벨업 되었을 때 학생들이 사회와 섞이게 해주는 건 매우 중요하다.
대졸자들을 바로 채용하기 힘든 이유는, 대학이 사회와 단절되어 있기 때문이다.
기존 대학과 마찬가지로 사회가 학생들을 다시 가르쳐야 한다면, 앞에서 말한 여러
가지 교육이론들은 완전히 쓰레기일 뿐이다.
그래서 학생들이 스타트업이나 사회 커뮤니티와 교류하도록 해주는 건, 집단학습모델
에선 “정식학습환경”이어야 한다.
자신의 배움이 사회 속에서도 통한다는 걸 알게 되면, 학생들은 자연스럽게 학교를
떠나게 된다.
그런데, 이런 학교는 자연스럽게 탄생되지 않는다.
공부방 수준이야 학생들끼리 자연스럽게 만들 수 있지만, 100명 이상의 학교는 그렇
게 되지 않는다. 100명의 학생들이 어느 날 갑자기 비슷한 생각을 해서 한 곳에 모여 커
뮤니티를 만들지는 않기 때문이다.
선장과 운영자의 노력이 없다면 만들어지지도 않고 유지되지 않는다. 단, 커뮤니티의
특성상 궤도에 오르고 나면 저절로 굴러간다.
커뮤니티는 구성원들의 갈등 때문에 계속해서 무너지려는 속성이 있다. 경험에 기반한
학습방식을 원천으로 하고 있는데, 경험은 사람마다 모두 다르기 때문이다.
갈등요소를 제거하고 선순환 구조가 유지될 수 있도록 원칙을 기반으로 잘 운영해야
한다.
184
2. 입학생 선발
가. 입학신청
이 교육모델의 핵심을 한 문장으로 정리해보자.
“집단지성과 커뮤니티의 힘을 빌어, 스스로의 행동을 통해 성장하는 것”
중요한 키워드 4가지를 뽑아보자.
 스스로 성장한다.
 스스로 행동한다.
 집단 지성을 내 것으로 만들어야 한다.
 커뮤니티 속에서 나의 동료들을 만들어야 한다.
아동교육 모델은 “성장과정”을 학교가 책임진다.
하지만, 성인학습은 그렇지 않다. 자기의 성장은 자기가 책임진다. 자기 필요에 의해
모인 사람들이기 때문이다.
그래서 교육방식이나 교육철학에 동의하지 않는 사람은 뽑지 않는다. 학교의 정체성이
흔들리기 때문이다.
학교의 정체성은 현실적 행정 때문에 제한 받는다.
예를 들어 “수동적 교육방식”을 쓰려면 교수를 뽑아야 한다. 수업시간과 교재, 학사일
정을 수립하고 그에 맞는 교직원도 채용해야 한다.
수동적인 학생들과 능동적인 학생들을 섞어서 교육 활동을 유도하기도 어렵다. 평가체
계나 성장방식이 완전히 다르기 때문이다.
즉, 학교는 두 개 이상의 정체성을 가지고 운영하기 어렵다. 재원과 직원, 교수채용
같은 현실 문제에 부닥치기 때문이다.
그래서 입학생은 입학기준을 명확히 해서 동질집단으로 확보하는 게 중요하다.
185
나. 선발기준
지원한 학생들을 모두 뽑을 수 있다면 좋겠지만, 재정적 여건이 그렇지 못할 수 있다.
어떻게든 커트라인을 가지고 누군가를 탈락시켜야 한다. 선발 기준은 어떻게 해야 할
까?
먼저 이 원칙을 확인하자.
“개발자는 학습능력만 익히고 나면, 사실 누구나 다 개발자가 될 수 있다. 다만 성장
속도와 수준이 다를 뿐. 학교라면 그걸 인정하고 기다려줄 수 있어야 한다.”
수능처럼 지원자가 입학시점에 가진 지식의 우열을 가리는 건 의미가 없다. 교육기관
의 목표는, “의지는 있지만 아무것도 모르는 사람이, 원하는 걸 배워서 졸업할 수 있게
하는 것”이기 때문이다.
실제 개발현장에 가도 비슷하다. 매번 새로운 기술이 나오고 매번 써봐야 그 기술이
어떻게 동작하는지 알 수 있기 때문이다.
그래서 학습능력을 익힐 수 있고 집단학습법에 우호적인지만 판별한다.
- 가르쳐주는 사람이 없어도 내가 알아서 정보를 찾아보고 움직일 수 있는가?
- 주변 사람들에게 도움을 요청하거나, 도움을 주면서 성장할 수 있는가?
- 일단 코딩을 시작하면서 이것저것 찾아보는 개발자의 성장방식에 내가 맞는가?
- 그렇게 시간을 보냈을 때, 나의 실력은 과연 성장해 있는가?
실력의 성장유무는 “시험”을 통해 가려낸다. 물론 90점과 91점을 가려내는 시험은 아
니다. 운전면허 시험처럼 커트라인을 넘겼는지만 확인한다. 학습법이 맞다고 느꼈더라도
커트라인을 넘기지 못했다면, 선발순위에선 밀린다.
186
그런데 이렇게 선발하면 대부분 통과하게 된다.
맞다. 이 학교는 그런 학교다. 그래서 선발과정 이전 단계에서 인원을 제한한다.
선착순도 좋고, 에세이를 제출하는 것도 좋다.
만일 우수한 학생들을 뽑기 위해 “성적”을 반영하고 싶다면 그래도 된다. 이건 학교의
철학에 따른다. 다만, 코호트 집단의 성격이 달라지면, 교육내용이나 학습방식에도 변화를
줄 필요가 있는데, 이건 새로운 교육설계를 하면 된다.
다. 선발 프로그램
능동적 학습법은 수동적 학습방식보다는 꽤 피곤하다. 스스로 방법을 찾지 못하면 아
무것도 배울 수 없기 때문이다. 특히 혼자서 공부하는 고립형 학습자는 전혀 이 곳과 맞
지 않다.
42는 4주짜리 선발과정을 운영하는데 이걸 꼭 따라 할 필요는 없다.
이건 프랑스라는 나라특성, 고등학교 졸업생들의 성향, 그리고 학교철학과도 관련이
깊기 때문이다.
피씬 과정 내에는 C 코딩 익히기, 알고리즘 이해하기, 올바른 팀 협력, 이 세가지를
테스트한다. 4주의 시간을 고려한 건, 태도의 변화를 이끌어내기 위한 거다.
이건, 운영중인 학습공동체를 엄격하게 보호하기 위한 것이기도 하다. 전혀 다른 성질
의 학생들이 입학하는 순간 교육방식이나 원칙들이 무너질 수 있기 때문이다.
즉, 판단의 근거와 지향하는 가치가 프랑스의 교육철학에 기반하고 있다.
우리나라의 경우 1주일~2주일 정도면 충분하다. 인종이 다양하지 않고, 사회적 가치
관이 비슷하기 때문이다.
프로그램 설계는 교육기관마다 다르게 하면 되지만, 안전하게 2주 과정을 추천한다.
187
내용은 “협력학습을 위한 요령”과 “코딩 기초 프로그램”으로 구성한다.
다만, 시작할 때 “학습요령”과 “원칙”을 강하게 인지시킨다. 그건 적응을 원하지 않는
학생들을 빠르게 솎아내기 위해서다. 포기할 사람은 빨리 포기하게 한다.
3. 공동체 운영
가. 운영의 주체
학교 운영의 주체는 학생이다. 특히 학습공동체 방식이라면 더욱 더 그렇다.
그래서 기존의 교육기관과는 조금 다르게 운영된다.
구분(전통적 교육기준) 전통적 방식 학습공동체 방식
교육활동 교육내용설계 교수자 교육설계자(교수진)
교육일정수립 교수자, 교육행정 학생 스스로(과제기한 있음)
수업진행 교수자 동료학습, 상호코칭
과제평가 교수자 동료평가
시험(실력확인) 교수자 출제 : 교육설계자(교수진)
운영 : 학생들이
졸업평가 논문, 캡스톤, 자격증 등 학생들이 알아서(취업 등)
교육지원활동 수업평가(교사) 교육행정 학습데이터 분석 → 과제 수정
취업연계활동
(공지,인턴쉽 등)
교육행정 학생들
전산시스템운영 교육행정(전산실) DevOps 팀
전산기능개발 교육행정(외주) DevOps 팀, 교육설계자(교수진)
표 30. 학습공동체 학교의 운영방식
처음에는 교직원들이 개입하지만, 직접적인 “교육활동”은 모두 학생들이 하도록 유도
한다. 시험 또한 마찬가지다. 시험감독관은 학생들이 하게 한다. 사회적 공인력을 가지고
있지 않기 때문에 교직원이 개입하지 않는다.
다만, 학생들끼리 봐주기가 만연한다면, 교직원이 개입해서 이 문제를 이슈업하고 학
생들이 대안을 도출할 수 있도록 도와준다.
자정작용이 작동하지 않는다면, 학습공동체는 엄청난 관리노력이 계속해서 들어간다.
188
학생들이 아니라 관리자에 의해 지탱되는 학습공동체라면 존재가치가 없다.
나. 졸업기준
졸업기준은 학교가 제시하지 않는다.
이 학교의 정체성은 평생학습이다. 취업이 졸업기준일 수도 있고, node.js를 이용해
웹 서비스를 만들어 보는 게 졸업기준일 수도 있다.
졸업했다가 필요하면 학교에 다시 돌아와도 된다.
다만, 자기 실력이 사회에서 통한다는 자신감이 생기는 게 굉장히 중요하다.
이건 자격증으로 달성될 수 없다.
자격증을 땄는데 인정해주는 회사가 없거나, 취업을 했는데 막상 할 수 있는 일이 없
으면, 학교에 대한 불신이 강하게 등장한다.
“졸업기준”을 만들고 그걸 통과시키는 걸로 학교의 역할을 마치지 않는다.
재정적인 이유라면 어쩔 수 없겠지만, 가장 좋은 건 “졸업기준”이 아니라, “졸업환경”
을 만드는 것이다.
다. 학습자원
학습자원이란, 뭘 공부해야 할지를 알기 위해 필요한 정보다.
(1) 동기식 소통도구
동기식 소통도구는 정보의 속도를 충족시키기 위해 사용한다.
도움을 요청할 때 온라인 상에 대기하는 동료들이 있어야 한다.
가장 많이 쓰는 게 채팅방이다. 우리나라에선 카카오톡을 많이 쓰지만, 개발자들은
“슬랙”을 많이 쓴다. 장점은 서버가 API를 이용해 직접 정보를 남길 수 있다.
189
학생들의 소그룹활동을 슬랙 내에 모아둘 수 있다는 장점이 있다. DevOps팀이 함께
소통할 수 있기 때문에 학교와 학생들이 자연스럽게 어우러질 수 있다.
채팅방의 단점은 검색이 어려워서 최근 정보가 금방 묻힌다. 휘발성이 높다.
(2) 비동기식 소통도구
정보의 양을 축적 시키기 위해 사용한다. 게시판이나 인터넷 포럼들이다.
당장 답글이 아니라도, 언젠가 답글이 달린다. 검색을 했을 때 필요한 답을 얻을 확률
이 높아진다.
정보의 양을 늘려 양질의 정보를 수용하는 방식이다. 나중에 합류한 사람이 금방 적
응할 수 있게 해준다. 지나간 정보들을 주욱 흝어 볼 수 있기 때문이다.
신입생들의 적응속도와 학습속도가 높아지는 건 좋다. 다만, 베껴쓰기 같은 무임승차
도구로 쓰이지 않게끔 관리해준다.
(3) 블로그
학생들 블로그를 모아서 보여준다. 기술 블로그가 좋다.
정보의 질이 높고, 정보 탐색시간을 줄여주는 작용을 한다.
전체적으로 학생들의 학습속도가 빨라진다.
다만, 잘 정리된 블로그가 있으면 학생들은 그걸 정답처럼 받아들인다. 따라하기를 하
는 것만으로 실력을 쌓았다고 착각한다.
흉내내기는 모방을 위한 첫 시작점이지만, 실력을 완성시키는 행위는 아니다. 학생들
에게 반복적으로 이 사실을 알려주고, 참고용으로만 사용할 것을 권고한다.
스스로 경험을 정리해보는 건 매우 유용하다.
블로그 쓰기를 통해 지식이 체계화되기 때문이다.
190
(4) 협업툴
Wiki, Trello 등 협업도구를 말한다.
게시판과 다른 점은 프로젝트별로 관리가 된다는 점. 그리고, 협업 프로세스를 지원한
다는 점. 전체 프로세스가 “Knowledge Database”가 된다는 점이 다르다.
JIRA, Confluence 같은 현업툴들도 있는데, 이건 상황에 맞게끔 사용한다.
JIRA는 Task가 아주 복잡한 프로젝트에서 Issue별로 일을 트래킹하기 위한 툴이다.
애자일 업무와 함께 사용할 때 유용한데, 이런 업무가 없다면 솔직히 번거롭기만 하고,
배우는 게 없다.
학생들은 대부분 초기에 간단한 형태의 웹 서비스를 만드는데, 여기에 JIRA 계정을
줘봤자 대부분 어떻게 사용해야 할지 몰라서 헤매다가 포기하고 만다.
즉, 툴이 먼저가 아니고, 업무가 먼저다.
협업툴은 반드시 학생들 수준에 맞게 사용법이 함께 제공되어야 한다.
그렇지 않으면 아무리 좋은 툴도 그냥 전시용품일 뿐이다.
(5) 소셜네트워킹
학생들 활동이 SNS를 통해 비슷한 커뮤니티와 만나거나, 학생들 실력을 지속적으로
외부에 홍보하자.
SNS는 학생들이 학교 밖의 세상과 소통할 수 있는 가장 좋은 채널이다.
기업들이나 사회 커뮤니티가 학생들에게 관심을 가지는 건 매우 중요한 활동이다.
고립된 학교는 죽은 학교다.
아무리 좋은 교육이라고 칭찬을 해도, 사회에 나갔을 때 어린아이와 같다면, 이 교육
은 죽은 거다.
학생들이 충분히 사회를 연습하고 나갈 수 있도록, 사회와 만날 수 있는 창문들을 다
양하게 열어두자.
191
(6) 기술 인프라
클라우드, 쿠버네티스, 10테라의 데이터 등은 개발경험을 넓히고, 경험의 깊이를 늘리
기기 위해 아주 중요한 교보재들이다.
구글 클라우드든 애져서비스든, 학생들이 다양한 플랫폼을 경험해볼 수 있도록, 학교
가 교육인프라를 제공하자.
(7) 기타 등등
학습자원은 개발자가 일하는데 필요한 다양한 것을 말한다.
학교에서 현업개발자와 비슷한 경험을 해보고 나가는 건 매우 권장할 만하다.
그런데, 이런 인프라는 현업 개발자가 아니면 잘 모른다.
이런 걸 설계하는 사람들은 반드시 현업 개발자들이나 CTO들이 하게 하자.
현실성이 떨어지면 학생들이나 기업들이 외면하는데, 그러면 자연히 교육신뢰도가 떨
어진다.
라. 조력활동
공동체 운영에서 “조력활동”은 매우 중요하다.
학교생활에 어떻게 적응해야 할지, 학습그룹 내에서 갈등상황이 발생했을 때 어떻게
해결해야 할지 등을 물어볼 수 없다면 학생들은 우왕좌왕하게 된다.
문제를 제때 해결할 수 없고 도움을 받지 못한다고 생각하면, 학생들은 자연스럽게
교육장을 이탈한다.
학생들이 스스로 학습을 한다는 것과, 아무런 도움을 얻을 수 없다는 건 구별되어야
한다.
학생들이 “학교”라는 교육장에 기대하는 것들은 가능하면 모두 존재해야 한다.
끝도 없이 제공되어야 한다는 뜻은 아니다.
192
기준은 “학습공동체를 통한 교육”이 원활하게 이루어지는 최소한을 말한다.
학생들이 혼자 공부하지 않고, 학교에 오는 이유는 막연하기 때문이다.
“개발자가 되는 방법”이 유튜브나 블로그에 아무리 넘쳐도, 그걸 어떻게 공부해야 할
지 막연하기 때문에 학교에 오는 것이다.
그 “막연함”을 걷어내 주지 못하면 학생들은 딴 곳으로 이동한다.
(1) 튜터
튜터는 과제는 어떻게 하고, 스케쥴 관리는 어떻게 하고, 루틴은 어떻게 만들어내는지
를 가르쳐주는 사람이다. 1번 문제를 해결할 때 공부해야 할 기술이나, 참고해야 할 블로
그 등을 이야기해주기도 한다.
소통의 시작은 학생이 해도 되고, 튜터가 해도 된다.
이 교육모델에서도 가르쳐주는 행위 자체는 잘못된 게 아니다.
음. 이건 문어적으로만 문장을 이해해서 발생된 오해이다.
다시 정리해보면, 이렇다.
- 학교에서 수업일정에 따라 교수가 수업을 진행하는 건 하지 않는다.
- 1번 문제에 대해 선배와 후배가 모여서, 내용을 이해하고 토의하는 건 괜찮다.
두 개의 차이점이 뭘 까?
첫 번째 것은 제도화되어 있고, 두 번째 것은 그렇지 않다는 거다.
그게 무슨 차이를 만들까?
교수자 학습법은, 모든 책임을 교수자에게 일임하기 때문에 학생은 시킨 것만 잘 하
면 된다. 하지만, 두 번째 것은 그게 아니다.
학생이 일방적으로 지식을 전달받았더라도 스스로 질문을 통해 얻어낸 정보이고, 그게
반복되지 않기 때문에 계속해서 능동적으로 움직여야 한다.
즉, 가르치냐 아니냐는 행위는 교육철학에 위배되냐 아니냐로 판단하면 된다.
193
“옳다고 판단한 학습법이 의존성을 만들어낸다.”
교육관찰을 통해 이런 모습이 관찰된다면 그 때 학습방법을 걷어내도 된다.
튜터는 가능하면, 학교의 선배들이 하게 한다. 눈높이 학습이 가능하기 때문이다.
(2) 멘토
튜터가 학교 내 생활을 물어본다면, 멘토는 학교 밖 세상을 물어보는 존재들이다.
비전공자가 컴퓨터 전공을 배운다면 굳이 멘토까지 만날 이유는 없다.
오히려 멘토들마다 대답이 다르고 복잡해서 이해하기 어렵다.
멘토들이 학교 생활을 조언해주기 어려운 건, 일단 구성원이 아니어서 집단학습방식을
이해하기 어렵고, 맥락과 동떨어진 현업 개발자들도 많기 때문이다.
그럼에도 불구하고 조력활동에 멘토가 필요한 이유는, 학생들에게 사회적 스킨쉽을 미
리 학습시켜주기 위해서다.
학생들이 사회에 대해 가져야 할 건전한 인식은 이거다.
- 사회에는 정답이 없구나. 그래서 나만의 가치관이 중요하구나.
- 그럼에도 불구하고 뭔가 공통점이 있고, 나도 그렇게 살아가야 하는구나.
- 나는 이 분야에서 적어도 저 사람처럼 되고 싶다.
등등. 학생들이 준거적 인물이나 직업관, 가치관을 확보할 수 있도록, 다양한 사람들을
보여주는 역할을 한다.
그리고, 멘토들의 기술코칭은 학생들의 기술 인지역량을 빠르게 확장 시켜준다.
대표적으로 대학교 1학년 수준에서 이루어지는 학생들의 논쟁은 “JavaScript보다 Go
가 좋다.”라는 내용들이다.
이런 친구들이 배달의 민족이나 쏘카 등의 소스나 아키텍쳐 구조를 보는 순간, 그런
건 도구에 불과하구나라는 인식을 명확히 하게 된다. 즉, 백문이 불여일견이기 때문이다.
194
사회에 대한 경험적 학습은 이렇게 이루어져야 한다.
(3) 퍼실리테이터
퍼실리테이터는 “MBC 100분 토론”에서 하는 진행자 역할을 말한다.
“리더십캠프”처럼 교수자가 없는 교육프로그램에서, 교육진행을 맡은 사람들이다.
시스템화나 분업화가 잘 되어 있다면 교육진행만 맡으면 되지만, 그렇지 않다면 교육
평가설문지 같은 것도 받아서 만족도 조사를 한다.
강의를 하진 않지만, 교육프로그램의 오너로서 역할을 한다.
10명, 20명 단위로 진행되는 학교식 수업에는 “퍼실리테이터”가 리딩할 수 있다.
세미나, 밋업, 컨퍼런스 같은 걸 진행할 때 “퍼실리테이터”는 필수이다.
조별 발표대회, 해커톤 같은 걸 할 때도 꼭 있어야 한다.
학습공동체 학교라면 밋업이나, 세미나 등은 꼭 필요하다.
전문가와 섞이기 위한 매우 중요한 기회이기 때문이다.
그런데, 이건 학생들이 하기 좀 애매한 경우가 많다. 강사섭외, 학생홍보, 피드백 관리
등이 학습활동이라기 보다는 기회 공급에 가깝기 때문이다.
일반적인 커뮤니티에선 운영진들이 나서서 하고 책임을 진다.
학교에선 커뮤니티 운영진들을 별도로 선발하자. 가능하면 그들이 스스로 학생들과 이
활동을 하도록 유도한다.
195
4. 교육 진단
가. 교육지표설계
(1) 지표의 필요성
교육 지표는 학교가 제대로 운영되고 있는지를 점검하는 기준을 말한다.
학생들이 제대로 공부를 하고 있는지를 파악하기 위한 지표가 있고, 학교가 제대로
운영되고 있는지를 파악하기 위한 지표가 있다.
학생은 지표를 보고 내가 얼마나 왔고 얼마나 더 가야 하는지 파악해야 한다.
학교는 지표를 보고 무엇이 부족한지를 알고 대응할 수 있어야 한다.
튜터나, 퍼실리테이터들은 학업지도 목적으로 이 지표들을 사용한다.
그래서 학생의 개별적 상태와 변화과정이 꾸준히 기록되고 관리되어야 한다.
전통적 교육에선 “성적표” 같은 거지만, 집단학습에선 교수자가 없기 때문에, 좀 더
정교하게 접근한다.
당사자 지표종류 내용
학생 과정 지표 학습을 정상적으로 진행하고 있는지를 보여준다.
과제 진행률, 과제 돌파 속도, 같은 집단의 현황 등
학생들은 “과정 지표”를 보고 공부를 더 열심히 한다.
결과 지표 어떤 상태에 이르렀는지를 평가한다.
획득된 스킬, 역량 수준 등을 1~10 레벨로 표현한다.
학생들은 “결과 지표”를 보고 더 노력하게 된다.
조력자들도 “결과 지표”를 보고 조언할 수 있다.
기업들도 “결과 지표”를 채용시 활용할 수 있으면 매우 좋다.
교육기관 통계 지표 전체적으로 집단학습이 제대로 진행되고 있는지를 파악할 수 있다.
전체 수치와 개인 수치를 기준으로 비교판단 한다.
학습그룹을 “코호트집단”으로 나누어 설계한다.
집단별로 학습속도, 학습시간, 학습량, 평가결과 등을 비교할 수 있다.
관리 지표 교육이 제대로 진행되고 있지 않을 때 “빨간 불”을 울릴 기준 지표를
선정해야 한다.
“학생수”, “학업속도”, “학업진도” 등은 반드시 관리되어야 한다.
196
지표가 나빠지면, 어떻게 해야 할지 대안을 수립해야 한다.
성과 지표 “이수율(졸업율 = 이탈율)”, “취업률” 은 모든 기관이 관리하는 지표다.
정식지표는 아니더라도 꼭 관리하자.
성과지표는 교육기관의 목표를 담아 자격증처럼 만든다.
시험을 치러 통과자를 선별한다.
중요한 건 “척도”다. “정보관리기사” 같은 것 말고, “MySQL 초보자”
같은 업계용어를 선택하여 사용한다.
성과지표는 외부인에게 우리 교육의 정체성을 드러내기 위해
필요하며, 이걸 명확하게 할수록 외부로부터의 도움을 얻기 좋다.
표 31. 교육 지표의 분류
(2) 역량 척도
역량이란 “힘의 양”을 말한다. 쉽게 말하면 실력이다.
사회의 실력은 남들이 인정해주거나, 자신의 과업으로 인정받는다.
하지만, 학교에선 그렇지 않다.
입학부터 졸업까지 레벨을 세분화하고, 역량강화 과정을 표현할 수 있어야 한다.
가장 평이한 방법은, 과제를 클리어할 때 경험치를 주는 거다.
이 경험치는 과제 만들 때 함께 정한다.
예를 들어, Google Streetview를 만들어보는 과제라면, 기본적으로 Typescript, html,
css에 대한 이해가 있어야 한다. 그러면 Typescript 1점, html 1점, css 1점 이렇게 정하
는 거다.
한 단계를 높여 Google Streetveiw 내에 글자나 영상을 Overlay하려면 3D에 대한
기초이론과 WebGL, node.js 에 대해 공부를 해야 한다. 그러면 3D 기초이론 1점,
WebGL 1점, node.js 1점 이렇게 준다.
난이도가 좀 더 높아진다면, 2점, 3점을 줘도 상관이 없다.
이 때 경험치 항목은 Tyepescript, html, css, WebGL 등 현업에서 통칭하는 기술항
목을 그대로 사용한다.
197
난이도는 다양한 방식으로 매길 수 있지만, 5점 척도가 적당하다.
과제가 끝나면 각 항목에다 가중치를 적용, 합산하여 통합된 경험치를 산출한다.
“역량척도”는 “결과지표”다. 학생들의 현재 역량상태를 나타낸다.
그런데 만점이 되면 좋은 건가? 사실 의미는 없다.
html이 10점 만점이 되었다고 해서 사회가 그걸 인정해주진 않기 때문이다. html 10
점이라는 건 css 9점 대비 조금 더 공부를 많이 했구나 그런 정도로 이해하는 거다.
역량지표는 나의 관심도와 균형미를 표현하기 위해 사용한다. 즉 학생들에게 동기부여
역할을 할 수 있어야 한다.
그림 24. 고용노동부 NCS 역량지표(국가직무능력표준 홈페이지)
2015년 고용노동부에서 고시한 NCS25 라는 게 있다. 이걸 교육프로그램 만들 때 쓰
라고 한다. 그런데 이건 역량지표가 아니다.
처음 의도는 몰라도, 현재 만들어진 건 산업통계 및 보고용 관리지표다.
25
NCS : National Competency Standards, 국가직무능력표준, 국가 공공기관에서 채용에 활용하기 위해
제정한 “표준역량척도”, 2015년 공표되었다.
198
예를 들어 “동적모델설계” 수준이 6이라는 게, 그 사람이 현업에서 일을 잘한다는 걸
보장할 수 없다.
그러다 보니 기업은 채용선발 기준과 평가 프로세스를 따로 만든다. 학생들은 이것과
상관없이 취업이 잘 되는 기술들을 찾아 배운다.
즉, 이 지표는 학생들이나 기업들을 전혀 돕고 있지 못하는 지표다.
지표를 현실감 있게 만드는 건, “동기관리”와 직결된다. 그래서 가능하면 “역량항목”을
기업들이 쓰는 용어를 사용한다. “데이터베이스 구현기술”이라고 표현하지 않고, “MySQL
상, 중, 하”로 표현한다.
그림 25. 기술 프레임워크(기술 숙달도, EITBOK)
“역량연구”는 1970년대 미국에서부터 본격화되었다.
기업들은 조직성과를 높이기 위해 직원들을 교육, 평가하고 싶어했고, 컨설팅 업체들
이 이를 해결하기 위해 “Competency Framework”란 걸 만들었다.
“교육분야”에서도 이 모델을 도입하면서 역량이라는 개념이 자리잡기 시작한다.
그런데 이것 역시 이 교육에선 사용하지 않는다.
전인적 인격양성을 위한 공교육이 목표라면 추상화된 표준항목이 좋겠지만, 이 학교는
산업사회와 연결된 놀이터이기 때문에 가능한 업계용어를 사용한다.
199
역량항목들을 직관적으로 바꾸는 건, 멘토나 튜터들과 이야기하기 좋다.
기업들과 이야기하기도 좋다.
“우리 학교 학생들은 대부분 node를 합니다.”
“평균적으로 과제를 5개씩 하는데, 수준은 간단한 웹 게시판 정도는 만들어요.”
말하기도 쉽고, 표현하기도 쉽고, 이해하기도 쉽다.
“그럼 이러 이러한 걸 해본 친구들이 있을까요?”
“네, 그런 과제들에 관심을 보이거나 해본 친구들이 100명 정도 됩니다.”
이런 대화만으로도 기업들이 충분히 학교에 관심을 가지게 된다.
(3) 관리 지표
“관리 지표”를 보는 사람은, 교육설계자, 교육운영자, 퍼실리테이터 등이다.
“관리 지표”의 첫 번째 목적은 “감시기능”이다.
우리 교육모델은 교수자가 개입하지 않기 때문에 제대로 운영되는지 알 수 없다.
학교가 시끄러워서 학생들이 다 떠난 다음에야 문제를 느끼면 학교가 제대로 운영되
지 않는다.
“관리 지표”의 두 번째 목적은 교육의 질을 높이기 위한 “연구기능”이다.
교육이 부족하면 지표가 떨어지도록 설계한다.
그러면, 그 지표가 떨어질 때 보완방안을 생각할 수 있다.
관리지표로 사용할 만한 것들을 몇 개를 정리해본다.
① 관리단위
일단 관리단위를 정해야 한다.
같은 입학기수를 하나의 “코호트 집단”으로 하자.
200
코호트 집단은 학습속도와 진도, 학습수준이 통계적으로 비슷하게 간다.
만일 B 집단이 평균보다 느리게 가고 있다면 주의해서 볼 필요가 있다.
② 학습속도
과제를 클리어해 나가는 속도다. 7일짜리 과제를 3일 정도에 끝낼 수는 있다. 하지만,
하루 만에 끝냈다면 면담을 해보자.
보고 베껴서 과제를 돌파했다면, 다른 친구들은 의욕이 꺾인다. 뭔가 잘못한 게 있다
면, 지적을 해주거나 패널티를 준다.
③ 학습진도
10개 과제로 구성된 코스에서, 대부분의 학생들이 5번째에 멈춰 있다면 원인을 파악
할 필요가 있다. 과제가 너무 어려워서 그런 거다. 진도가 안 나가지면 학생들은 포기한
다.
이런 상황을 갇혀 있다고 표현한다. 학생들이 갇혀 있으면 구출해줘야 한다.
스스로 헤쳐 나오면 가장 좋겠지만, 마냥 기다려서도 안 된다.
우리 교육모델도 진도 분포도는 거의 정규분포를 따른다.
중간값이 너무 쳐지면, 학습집단이 전체적으로 잘 작동하고 있지 않다는 뜻이다.
하위 10%에 이미 포기자가 나왔을 수도 있다.
가능하면 포기자가 나오기 전에 상황을 포착하고 대응을 하자.
④ 학습수준
“결과지표”로서의 “학습수준”은 관리하지 않는다. 학교인증지표는 사실 거의 현실성이
없기 때문이다.
그래서 기업들은 “결과지표”보다 “과정지표”를 더 궁금해한다. 몇 점을 받았는지 보다
어떤 과목들을 배웠는지 궁금해한다.
가르치면 대화가 잘 통할지 궁금한 거고, 스스로 알아서 일을 잘 할지도 궁금한 거다.
201
많은 개인정보를 바라는 게 아니다.
신입사원은 실력을 보증해줄 경력이 없기 때문에 과정을 통해 짐작코자 하는 거다.
나. 지표 관리
교육지표를 수립했다면, 이제 어떻게 그 데이터를 확보할 것인가를 고민하자.
이건 꽤 일반적인 교육도구들을 쓰면 된다.
(1) 동료평가
과제에 대해 동료들끼리 평가하고 나면, 평가 점수가 남는다.
굉장히 주관적인 데이터이지만, 데이터를 축적한 후 정규화 시키면 꽤 현실수치에 들
어맞는다.
이 교육모델에선 객관적인 평가에 얽매이지 않는다. 주관적인 평가가 개인의 동기를
자극하고 발전을 종용한다.
평가 점수 외, 피드백도 열심히 모아서 학생들에게 보여주자.
(2) 시험
우리가 아는 형태의 시험도 친다. “시험”은 “동료평가”와는 다르다.
“동료평가”가 “학습활동”이라면, “시험”은 “측정활동”이다.
기준은 “재현능력”이다. 혼자 힘으로 과제 내용을 재현해 낼 수 있어야 한다.
과제와 비슷한 내용을 시험 문제로 내되 시험은 혼자서 치러야 한다.
인터넷 검색을 하거나, 타인의 코드를 참고할 수 있다. 당연히 베껴서 내는 건 안 된
다.
각 문제는 동작하는 코드를 제출해야 한다.
202
우열을 가리는 게 목적이 아니므로 PASS/FAIL 만 부여한다.
수학처럼 풀이과정을 보고 점수를 주지 않는다.
완결된 동작하는 프로그램이 아니라면 모두 FAIL이다.
(3) 활동점수
고등학교에선 “생활기록부” 같은 걸 관리한다.
학생들이 기업 해커톤이나 사회 봉사활동 같은 걸 나갔다면, 또는 산학협력 프로그램
에 참여를 했다면 거기에 상응하는 “역량점수”를 주자.
사회적 스킨쉽 활동을 성적표에 반영하는 방식인데, 학생들이 그렇게 행동해주기를 바
라는 취지 때문에 한다.
현재의 대학교는 사회라는 바다와 기수지역26 역할을 못하고 있다.
그러다 보니 취업 초기에 적응에 실패한다. 인재 매칭의 오류 중 하나이다.
학교에 있는 동안, 가능하면 사회적 스킨쉽을 많이 쌓게 하자.
(4) 자격증
“정보처리기사 자격증을 따자.”
그냥 공부하기엔 심심하니까 자격증은 꽤 괜찮은 외적 동기가 된다.
하지만, 개발자들은 “자격증”은 거의 인정하지 않는다.
시험문제가 요즘 트렌드를 반영하지 못하는 경우도 많고, 우리 회사에서 필요한 기술
이 자격증에 안 나오는 경우도 많기 때문이다. 즉, 기술변화가 빨라서 현재의 시험제도가
금방 노후화되어 버린다.
그리고, 자격증 교육이 제대로 되지 않는 이유도 있다. 즉, “SQL자격증”을 땄다고 해
26
기수지역 : 바닷물과 강물이 만나는 혼합지역, 주로 강하구에 형성된다.
203
도, 실제 SQL를 쓸 줄 모르는 사람이 정말 태반이다. 대부분 교실 수업을 통해 지식전달
을 받고, 암기 후 시험을 보기 때문이다.
5. 대응활동
학교가 우당탕탕 하고 뭔가 잘 안되고 있다면?
학생들이 스스로 알아서 문제를 스스로 조치하려고 할 것이다.
우수한 학생들은 통찰력을 가지고 자신의 문제점을 진단, 도움을 요청하려 한다.
… 아쉽게도 이런 사람은 현실에 존재하지 않는다.
즉 스스로 알아서 문제를 조치하는 사람은 매우 드물다.
대부분 문제는 인식하지만 어떻게 해결해야 할지 몰라서 주저앉아 버린다.
가장 가장 해야 할 일은 “털어놓기”이다.
친구들에게 고민을 털어놓고 대화를 통해 자신만의 솔루션을 찾아간다.
그런데 그런 건 누가 시켜서 할 수 없고 스스로 해야 한다.
사회적 성향이 높은 친구들은 알아서 하는데, 아닌 친구들은 그렇게 하지 못한다.
이런 게 잘 되냐 안 되냐의 기준은, 학습공동체 내에 신뢰할 수 있는 친구가 있느냐
없느냐로 판가름 된다. 즉, 도와줄 사람이 주변에 없다면 학생들은 개선 노력을 포기해버
리고 만다.
이 때 교직원이 잘못 개입하면 권리와 책임 문제로 바뀐다. 그러면 교육이 망가진다.
해 볼만한 해결책은 다양한 조력자들을 주변에 배치하는 거다.
204
조력자가 다양하고 많을수록 이런 개선활동은 쉽게 일어난다.
다양한 극복사례를 블로그 등에 남겨 학생들 사이에 많이 회자되고 알려지게 한다.
학생들은 스스로 안전하다는 확신이 들 때 변화하기 시작한다.
생각보다 시간이 많이 걸리고 오랫동안 지켜봐 줘야 한다.
커뮤니티 내 이슈들을 교직원 개입으로 풀면, 끝도 없이 사람이 투입되어야 한다.
그래서 커뮤니티는 분위기나 문화로서 동작하지 않으면 망한다.
분위기가 자리 잡히면, 학생들은 자연스럽게 서로를 돕는다.
중요한 건 이런 분위기가 자리 잡힐 때까지 관리를 잘 해줘야 한다.
6. 기업연계활동
기존 산학연계 프로그램들이 많다.
거기에 준하여 운영을 해도 된다.
이노베이션 아카데미에서는 “기업형 PBL”이라는 이름으로 “기업취업수준의 과제”를
학습 콘텐츠로 만들어 운영을 했다.
그런데 이것만 이야기해도 복잡한 책 한권이 되니까 여기선 넘어가자.
205
제8장. 정리하면서
1. 이 교육모델의 장점
이 교육모델의 특징은 두 가지다.
첫째는, 교육내용과 학습방식을 디지털화시켜, 회원가입 만으로 교육을 확대 보급할
수 있다.
둘째는, 혼자 공부하면 학습속도나 이탈률이 높아지니까, 커뮤니티 학습모델을 붙여
교사나 멘토 없이도 동작할 수 있게 했다.
이 특징은 소프트웨어 개발자를 양성하는데 꽤 많은 장점들을 가진다.
먼저 학습과제만 잘 만들면 되니까, 새로운 기술교육을 보급하기 쉽다.
교사나 멘토가 없어도 되니까 교원 양성 없이 빠르게 기술교육을 보급할 수 있다.
206
그러나, 한계점도 있다.
커뮤니티 내 동료들 태도나 수준에 따라 배움의 질이 달라진다.
그리고 전문 멘토가 없는 만큼, 전문화된 기술지식을 익히긴 어렵다.
이런 한계점은 이렇게 커버한다.
기본 커뮤니티를 온라인으로 구성하고, 지역별 오프라인 모임을 정기적으로 유도한다.
그리고, 방학 기간 동안 타 지역에 가서 원정학습을 하는 등, 이벤트성 행사를 통해
교류를 유지한다.
한 달 정도 사귄 친밀감은 4-5개월 떨어져 있어도, 온라인에서의 친밀감이 유지된다.
학기별 교류 프로그램만 잘 유지한다면, 전국 단위로 커뮤니티가 동작하기 시작한다.
그리고 “멘토제도”는 온라인 멘토링을 도입하거나, 기업멘토 제도 등을 통해 1:n 관계
의 커버리지를 늘린다.
사실, 멘토링은 학생들이 필요할 때 1-2시간 이내로 진행되기 때문에 온라인에서 만
남의 장만 잘 만들어줘도 제대로 효과가 발휘된다.
코드리뷰나 기술멘토링 같은 경우는 튜터제도를 활용할 수도 있고, 학교의 역사가 길
어지면, 선배들의 참여로 커버할 수 있기 때문에 “멘토 제도”는 대응하기 쉬운 편이다.
비전공자가 코딩을 배우는 수준은 학생들이 학생들을 가르치는 수준에서도 커버가 가
능하기 때문에 보급이 쉬운 거지, 전문성이 깊어지면 정보부족 때문에라도 전문가의 참
여가 필수이다.
207
2. 개발은 훈련모델
소프트웨어 개발을, 역사, 수학처럼 지식 학문처럼 생각하는 경우가 종종 있다.
하지만, 개발은 지식학문이 아니다.
명확히 하드웨어를 대체하기 위해 탄생한 기술공학이며, 교육에 필요한 건 지식암기가
아니라 기술훈련이다.
기술훈련은 당연히 교육환경이 중요하다.
빠른 컴퓨터를 가질수록 컴파일이 더 빨라져 더 많은 디버깅을 해볼 수 있고, 다양한
기술을 구경할수록 견문이 넓어진다.
많은 사람과 대화할수록 사고의 폭이 넓어지고, 더 많이 상상할수록 새로운 걸 많이
만들어 볼 수 있다.
세상의 문제를 풀어보고자 노력하던 게 창업이 되고, 취업이 된다.
지식학습이 먼저냐, 훈련학습이 먼저냐를 따지는 건 다 부질없는 짓이다.
일단 아무거나 먼저 시작해서, 둘 다 열심히 해야 실력이 올라간다.
함께 일하는 건 더 중요하다.
함께 일할수록 더 복잡하고 더 큰 문제를 풀 수 있게 된다.
이건 절대 강의학습으로는 도달할 수 없는 영역이다.
개발자 학교를 만든다면 당연히 이래야 한다.
208
3. 기업과 학교
고용노동부 과정처럼 취업률 70%, 80% 같은 목표를 가지지 않는다.
명시적인 목표로 부여 받는 경우, 강제적으로 아무 곳에나 취업 시키기 때문이다.
다만, 이렇게 교육하면 80% 이상의 친구들은 대부분 취업을 하며, 20%의 친구들은
자기 적성을 찾아 새로운 길로 떠나게 된다.
하지만, 이 학교 모델은 취업과 뗄레야 뗄 수 없는 관계다.
평생교육과정이며 산업사회에서 지속적으로 성장하는 개발자가 목표이기 때문이다.
즉, 산업사회에서 증명 받지 못하면 이 교육모델은 실패다.
그래서, 학생들이 적어도 3개월 이상 기업을 체험해보고 졸업하는 게 매우 중요하다.
세상은 우당탕탕이며 그 속에서 내가 어떻게 살아야 할지를 결심해야 하기 때문이다.
이 기회는 하루 아침에 만들어지지 않는다.
학교의 협력보다는 기업들의 협력들이 절실하기 때문이다.
“기업형 PBL” - 기업 내부 프로젝트를 학교 수준으로 내려 “학습 콘텐츠”로 만드는
건 꽤나 유용한 선택이었다. 학생들은 3-5개월 정도 과제를 풀어보면서 필요한 공부를
할 수 있는데, 이게 꽤나 큰 학습동기가 된다.
그리고, 기업은 우리 회사에 맞게 좀 더 준비를 한 친구를 만날 수 있기 때문에, 생각
보다 채용풀이 넓어진다.
서로 윈-윈하는 관계가 만들어지는 거다.
실제로 이렇게 학습한 친구들을 기업에 보내 보니, 3개월 정도 걸리던 적응과정이 2
209
주로 줄어버렸다.
이런 기업협력 모델들은 계속해서 개발될 필요가 있다.
4. 커스터마이징
이 학교 모델은 1년짜리 과정이다.
1년이라는 시간은, “컴퓨터 공학과” 수준을 완결 짓는데 걸리는 최소한의 시간이다.
찐개발자가 되려면 최소한 이 시간은 필요하다고 생각된다.
필요한 걸 이리저리 공부할 시간이 충분해야 하기 때문이다.
반면, “파이썬 기초과정”을 하거나, “R 입문과정”을 한다면 1개월로도 충분하다.
즉, 교육기간은 과제내용과 과제 사이즈, 난이도 등을 고려하여 결정하면 된다.
기간 주요 내용 공통사항
1 개월 코스 동료학습이 익숙해져 있는 경우
단순히 하드 스킬만을 학습하는 경우, “파이썬 기초과정”
수준의 내용
8 시간 x 5 일 x 4 주 = 160 시간 코스
365 일 상시
운영되는
학습커뮤니티가
존재함.
(평생학습,
성인교육,
소그룹학습)
3 개월 코스 동료학습이 처음인 경우
하드 스킬 + 협력스킬까지 같이 학습하는 내용
8 시간 x 5 일 x 5 주 x 3 개월 = 600 시간 코스
6 개월 코스 동료학습이 처음인 경우
중기과정(스킬코스 3 개 이상) + 협력스킬까지 학습
8 시간 x 5 일 x 5 주 x 6 개월 = 1200 시간 코스
1 년 코스 동료학습이 처음인 경우
컴퓨터공학과 코스 + 협력스킬까지 학습
2 년 코스 동료학습이 처음인 경우
컴퓨터공학과 코스 + 협력스킬 + 기업연계코스
표 32.교육기간별 주요 교육내용(예시)
위 도표는 대략적으로 가능한 시나리오를 정리해보았다. 실제로 운영하면 다양한 변수
들이 존재하므로, 그건 교육기관이 맞춰서 운영한다.
210
이제까지 이야기한 교육의 동작원리를 잘 이해했다면, 교육모델을 커스터마이징 하는
건 어렵지 않을 거다.
예를 들어, 일반 대학교라면 30명 정도의 소그룹을 대상으로 새로운 훈련프로그램을
만들 수도 있다. 캡스톤 프로젝트와 다른 건, 학생들이 커뮤니티로 공부할 수 있게 상시
프로그램화 한다는 거다.
하지만, 이 모델은 커뮤니티가 없다면 동작하지 않는다. 동아리 사이즈가 작을수록 공
부가 더 힘들어진다.
커뮤니티 풀은 1,000명 이상으로 유지하자. 온라인으로 운영한다면 가능하다.
물론 처음부터 쉽지는 않다. 하지만 하나씩 하다 보면 생각보다 금방 자리잡게 된다.
211
제9장. 기본 용어
1. 교육기관
교육기관이란, 학교, 학원을 말한다.
엄격하게는 법에서 정의하는 걸로 구분해야 하지만, 여기에선 그냥 교육을 제공하는
곳이면 모두 교육기관이라고 생각하자.
가. 교육목표
교육목표는 학교의 존재목적이다. Why 와 What 두 가지를 정해야 한다. 생활미술을
가르칠지, 대학입시를 가르칠지 등을 정해야 한다.
교육목표는 학생들의 동질성을 부여한다. 개발자 학교라면 개발자 지망생들끼리 모이
는 거다. 커뮤니티 학습에선 동질성이 없으면, 집단의 유대감이 떨어진다.
의무교육과정이라면 두루뭉실해도 되지만, 개발자 학교라면 범위를 좁혀주는 게 좋다.
개발자 학교에 웹디자이너가 와 있다면, 교육목표를 제대로 정하지 못한 거다.
나. 교육철학27
교육철학은 교육방식과 교육내용을 선택하는 기준이 된다.
집단 내 갈등을 해결하는 판단 기준이 된다.
교육철학이 없으면 좋아 보이는 모든 걸 선택하게 된다.
모든 걸 선택한다는 건, 아무것도 선택하지 않는다는 것이다.
27
교육철학 : 김동구,1998, “교육의 철학적 기초”, 학지사
212
선택과 집중을 통해 교육의 방향을 결정해야 한다.
다. 교육시스템
교육시스템은 “교육제도”, 교육이 이루어지는 전체 체계를 말한다.
“우리나라의 교육시스템은 OOO하다.” 이렇게 표현한다.
작게는 IT 시스템을 지칭하기도 한다.
IT 시스템을 지칭하는 경우, 교육관리인 LMS28, 학사관리, 학교관리 등을 포함하고 있
다. IT 시스템은 교육기관의 업무에 따라 조금씩 다르게 생겼다.
둘 다 헷갈리게 쓰기 때문에, 문장의 맥락을 보고 판단한다.
라. 교육행정
교육행정은 교육자체를 관리하는 “교육관리”와 학교를 움직이는 “교육행정”으로 나뉜
다.
교육관리는 교수자들이 학생들을 관리하는 활동이다. 수업일정을 관리하고, 성적표를
관리하는 등의 일을 말한다. 집단학습모델에선 교수자가 없기 때문에 이와 같은 행위는
일어나지 않지만, 그에 해당하는 일들을 해야 한다.
반면 교육행정은, 학교 비품을 사고, 시설을 관리하고, 등록금을 받는 등의 일을 말한
다. 급식회사를 선정하거나, 통학버스 같은 걸 운영하는 것도 포함된다.
28
Learning management system
213
2. 구성요소
가. 교육, 학습, 훈련
일반인들은 혼재해서 사용한다.
교육설계를 할 땐 명확히 분리해서 이해하자.
교육(Education) : 가르치고 배우는 활동을 통칭해서 말한다. 교육시스템, 교육제도,
교육과정 등으로 말한다.
학습(Learning) : 배움활동. 수용자 관점의 용어다. 학생이 배우는 활동을 말한다. 학
습활동, 학습효과 등으로 사용한다.
훈련(Training) : 운동이나 기술을 배울 때 쓴다. 학습이 지식을 습득하는 거라면, 훈
련은 몸으로 습득하는거다.
나. 교육의 3요소
교육의 기본은 지식이 아는 사람에게서 모르는 사람으로 흐른다는 관점으로 시작한다.
그래서 교육자(가르치는 사람), 학생(배우는 사람), 교육내용(가르치는 내용), 이 세가지를
“교육”을 구성하는 3요소라고 한다.
다. 학생, 학습자
일반적으로 혼용해서 쓰긴 하지만, 학문적으로는 구분해서 사용한다.
학생(Student)은 교사(Teacher)의 반대개념으로 사용한다. 좀 더 큰 개념이다.
학습자(Learner)는 교사의 유무에 관계없이 사용된다. 운동, 요리, 운전 같은 분야에서
주로 등장한다. 경험 만으로도 실무가 가능하고, 독학으로 익히는 경우도 많기 때문이다.
현대교육은 지식정보가 일반화되면서 “학습자” 중심의 교육법이 조명 되고 있다.
214
라. 교육과정
일반적으로는 교육코스, 커리큘럼을 말한다.
교육 목적에 맞춰 과목별, 활동계획 등을 코스 형태로 배치한 것이다.
학습과정이라는 말은 잘 쓰지 않는다. 교육과정이라는 것 자체가, 공급자의 의도가 포
함되어 있기 때문이다.
교육이 진행되는 과정, 즉 “프로세스”로 해석할 수도 있다.
그래서 일부러 “커리큘럼”이라고 영어를 쓰는 경향도 있다.
마. 교재
가르치는 재료. 배워야 하는 내용을 분해하여 책으로 정리한 것이다.
지식을 체계화하여 1장, 2장으로 구분되어 있다.
배우기 시작할 때 “정보처리기사” 수준의 책은 하나 가지고 있는 게 좋다.
이유는 지식의 경계를 식별할 수 있기 때문이다.
네트워크 이론을 타고 들어가다 보면 OS를 만나는데, 그러다 보면 하드웨어까지 알게
되고, 하드웨어를 파다 보면 다양한 이론들을 만나게 되는데, 이 과정이 거대하고 길다.
AI 엔진 같은 걸 만든다면 반드시 필요한 과정이지만, 초보자 교육에선 너무 번질 수
있다. 적절한 수준에서 그치고 다음 학습으로 옮겨갈 수 있도록 도와준다.
교재는 전문용어에 익숙해질 수 있도록 해준다. 그 용어에 대한 최신 정보는 인터넷
에 있다. 하지만, 어떤 스키마 속에서 그 단어가 존재하는지는 교재가 있어야 알 수 있다.
바. 교사, 튜터, 멘토, 교수
일반적으로는 두루뭉실하게 쓰지만, 학문적으로는 구분해서 쓴다.
전체적으로 “가르침” 행위에 대한 다양한 유형을 구분하고자 쓴다.
215
이 유형이 구분되는 이유는 “가르치는 내용”이 다르기 때문이다.
교수(professor) : 대학에서 “수업”을 진행하는 사람으로, 자기 학문에 대해 전문역량
과 연구역량을 보유하고 있다
교사(Teacher) : 초.중.고등학교에서 “수업”을 진행하는 사람이다. 전통적으로 교육계획,
교육진행, 교육평가, 학습지도까지 모든 걸 통제하고 관리한다.
지도교사(Tutor) : 가정교사, 과외선생님을 튜터라고 부른다. “지도한다.”는 관점이 강하
다. 교육설계보다 가르치는 활동, 학습지도에 중점을 둔다.
조교(Assistant Teacher) : 수업시간에 교수를 보조하는 사람이다. 교수보조자일뿐 교
육의 주도권은 없다.
촉진자(Facilitator) : 교육지도자 없이 진행되는 교육프로그램을 진행하는 담당하는 살
마. “리더쉽 캠프” 같은 데서 교육진행을 담당하는 사람이라고 보면 된다. 교육설계는 교
수진이 하지만, 교육진행과 평가, 학습지도 등은 촉진자가 한다.
강사(Instructor) : 교사가 이론수업이라면, 강사는 훈련수업을 한다. 어떻게 하는지 행
동시범을 보여준다.
코치(Coach) : 운동 프로그램 등에서 “훈련지도”에 한정된 역할을 한다.
멘토(Mentor) : 경험이 많은 사람이 적은 사람에게 조언을 해주는 경우. 전문성을 강
화시키기 위해 도입된다.
3. 교육방식
교육방식은 “교육현상”이 일어나는 모든 방식을 통칭해서 말한다. 스스로 학습, 강의
교육, 실습교육, 훈련학습 등등으로 표현할 수 있다.
학습방식은 “배움, 습득현상”이 일어난 방식을 통칭해서 말한다. 교육이 전체 관점이
라면, 학습은 수용자, 즉 학생 중심이다.
216
가. 교육이론
교육이 어떻게 일어나는지를 정리한 이론이다.
1대1로 가르칠 때는 중요하지 않지만, 학교나 학원을 만들 때는 중요하다. 지속적이면
서 항상성이 있게 교육이 유지되어야 하기 때문이다.
철학, 심리학, 사회이론 등과 접목되어서 연구된다.
전통적으로는 아이들을 어떻게 가르칠 것인가에 초점이 맞추어져 있었는데, 18세기
이후 교수법과 성인학습법이 포함되었다. 20세기 들어 공교육이 자리잡으면서 교육법, 평
가체계 등도 함께 연구되기 시작했다.
나. 학습 피라미드
그림 26. 평균기억률 실험(베델, 메인)
1960대 초, 미국 “국립훈련연구소”에서 발표된 실험자료다.
학생들에게 뭔가를 가르친 후, 위와 같은 행위를 하게 하고 2주 후 얼마나 기억하는
지를 테스트했다.
단순히 시청각으로 받아들이는 경우를 “수동적 학습방식” Passive learning이라고 하
고, 행동을 통해 받아들이는 경우를 “능동형 학습방식” Active learning이라고 한다.
즉, 학생들은 서로를 가르쳐줄 때 자기 지식도 더 체계화된다는 걸 발견했다.
217
“해봄으로써 배운다. Learning by doing”라고 표현하며, 경험중심의 교육이론에 토대
가 되었다.
이 때 타인을 가르치는 행위에는 잘못된 정보가 포함될 수 있다. 하지만, 1차, 2차 반
복에 의해 자연스레 교정이 된다.
즉, 낮아지는 정확성과 신뢰성은 다른 교육도구로 커버한다.
다. 교육설계
학습자가 어떤 경험, 어떤 지식을 습득하게 할 목적으로, 교육목표, 교육방식, 평가방
식 등을 선택하고 배치하는 일을 말한다.
교육기획, 교육설계, 교수설계 등이 혼용되어 사용되지만, 엄밀하게는 다르다.
교육기획은 상위 전략과 세부 실행계획 등을 수립하는 활동이다.
교육설계는 교육을 구체적인 교육방식을 디자인하는 활동이다.
교수설계는 교사가 가르치는 방식을 디자인하는 활동이다. 교육설계보다는 좀 더 작은
개념이다.
현장에서는 대충 비슷하게 사용되니까 찰떡같이 알아들으면 된다.
라. 교수학습법
“교수법”은 가르치는 방법을 말한다. 강의, 문답, 시범, 토의, 협력학습 등 교수가 학생
들을 가르치기 위해 쓰는 모든 교육방식을 말한다.
“학습법”은 배우고 익히는 방법이다. 수용자를 중심으로 한다. 습관화, 각인, 대화학습
등이 있다. 독학에 쓰이는 방법도 다수 포함된다.
두 개념은 반대관계에 있지 않다. 그래서 합쳐서 말하는 경우가 많다.
218
마. 스캐폴딩(조력활동)
비고츠키는 사람의 인지발달과정이 “혼자서 공부할 수 있는 영역”을 넘어서면 “도움을
받아야만 알 수 있는 영역”에 다다른다고 분석했다.
이 영역을 “근접발달영역 zone of proximal development”이라고 하는데, 호기심은
있으나 경험이 없는 단계를 말한다.
대부분 “뭔가 벽에 막혀 있다”라고 표현하는데, 이 벽을 깨고 나올 수 있게 도와주는
활동을 스캐폴딩(조력활동)이라고 한다.
대부분 교수자나 동료들이 한다.
끝.
그림 27. 스캐폴딩 활동
219
표목차
표 1. 현재 교육구조의 문제점........................................................................................................................... 12
표 2. 교육과 훈련의 차이점 (R.S.Peter)........................................................................................................ 16
표 3. 2018년 시작된 소프트웨어 교육과정................................................................................................... 19
표 4. 교육기관별 교육방식의 차이................................................................................................................... 21
표 5. “42교육”에 내포된 의미............................................................................................................................ 23
표 6. 경험학습 vs 전통적학습의 차이점, (David Kolb, 1984)............................................................... 32
표 7. 동료학습의 유형(클라크 길버트 외, 2007, 브링햄영 대학).......................................................... 36
표 8. 국내, 해외 개발자 커뮤니티 목록......................................................................................................... 37
표 9. 개발자 커뮤니티의 장점(Koding & Kahawa Developers Community, 2022)................... 38
표 10. 구조주의, 구성주의 교육철학의 차이 ................................................................................................ 59
표 11.일반적인 대학교의 전산시스템 .............................................................................................................. 86
표 12 새로운 교육모델의 개요 .....................................................................................................................100
표 13 피아제, 비고츠키의 인지발달이론......................................................................................................115
표 14. 웹,앱 개발자가 기술을 습득하는 방식............................................................................................119
표 15. 프로젝트 기반 학습, 문제 기반 학습에 대한 차이점 ................................................................122
표 16. 프로젝트형 학습 콘텐츠 제작 요령 .................................................................................................123
표 17. 2021년 네이버 프론트엔드 개발자 채용공고 ...............................................................................124
표 18. 단위 프로젝트가 가져야할 특징........................................................................................................129
표 19. 학습 콘텐츠의 단계별 구조................................................................................................................130
표 20. 평가지시서 설계시 포함해야 될 내용들.........................................................................................131
표 21. 평가 중에 일어나는 현상과 대응방안...........................................................................................133
220
표 22. 새로운 교육모델의 전체 구조............................................................................................................139
표 23. 청소년 교육과 성인교육의 차이점....................................................................................................140
표 24. 파이썬 웹 개발과정 경험기획............................................................................................................147
표 25. 그룹학습의 특징 (엘런대학교) ...........................................................................................................149
표 26 .개발자 커뮤니티와 학습동아리의 차이점........................................................................................156
표 27. 학습 커뮤니티와 일반 커뮤니티의 차이점(바바라 레이 스미스, 에버그린 주립대).........159
표 28. 학습 커뮤니티의 대표적인 모델 5가지...........................................................................................160
표 29. 집단규모별 특징과 지원인력 구성....................................................................................................167
표 30. 학습공동체 학교의 운영방식..............................................................................................................187
표 31. 교육 지표의 분류...................................................................................................................................196
표 32.교육기간별 주요 교육내용(예시)..........................................................................................................209
221
그림목차
그림 1. 4차 산업혁명 시대(출처:삼성SDI).........................................................................................................9
그림 2. 우리나라의 교육제도(2022.05, KARIC)........................................................................................... 18
그림 3. 대학교에서 접할 수 있는 코딩교육들 ............................................................................................. 20
그림 4. 학습곡선(Learning curve)................................................................................................................... 25
그림 5. 우당탕탕 학습곡선(Bumpy learning curve)................................................................................. 26
그림 6. 개발자 성장모형...................................................................................................................................... 27
그림 7. 콜브박사의 경험적 학습모델............................................................................................................... 31
그림 8 Mastery learning vs Spiral Learning(aop.com)........................................................................ 33
그림 9. Spiral learning model (의학수업 모형, 소프트웨어 교육모형).............................................. 34
그림 10. 한국의 학제 대비 프랑스 학제(2009, 교육과정.교육평가 국제동향연구) ......................... 49
그림 11. 42 교육모델의 특징 ............................................................................................................................ 51
그림 12. 42의 교육환경....................................................................................................................................... 56
그림 13. 42의 커뮤니티 학습방식.................................................................................................................... 58
그림 14. 42 커리큘럼 (출처: 42 Heilbronn)................................................................................................ 61
그림 15. 42 주요 역량 스킬(출처 : 42 Heilbronn)................................................................................... 68
그림 16 42 교육과정 (출처 : 42 쿠알라룸프).............................................................................................. 71
그림 17. 42과제에 게임요소 추가 제안(로리메자르, 42교육팀, 2015)................................................. 78
그림 18. 프로젝트형 학습시스템 개요(출처 : 엘리스르보, 파리 장뮬랭대학, 2016)....................... 87
그림 19. “프로젝트”와 “프로젝트 기반 학습법”의 차이점 (magnifylearning.org).......................121
그림 20. 매슬로의 욕구5단계 이론................................................................................................................141
그림 21. 내적동기 자극방법.............................................................................................................................142
그림 22. 조나센의 구성주의 학습환경 설계 모형.....................................................................................143
그림 23. 학습 커뮤니티의 다양한 정의 (Richard E.West & Gregory S. Wallliams, “학습, 교육
222
설계기술의 기초”, “커뮤니티를 어떻게 정의할 것인가?”)..............................................................161
그림 24. 고용노동부 NCS 역량지표(국가직무능력표준 홈페이지) ......................................................197
그림 25. 기술 프레임워크(기술 숙달도, EITBOK) .....................................................................................198
그림 26. 평균기억률 실험(베델, 메인) ..........................................................................................................216
그림 27. 스캐폴딩 활동 .....................................................................................................................................218
223
참고 문헌
[1] 윤일경, “비교교육행정,” 2011. [온라인]. Available: https://blog.naver.com/bluett2/150104183329.
[2] 42, “What is 42?,” 2013. [온라인]. Available: https://42.fr/en/what-is-42/42-program-explained/.
[3] liverpool.ac.uk, “Learning community,” Liverpool university, [온라인]. Available:
https://www.liverpool.ac.uk/centre-for-innovation-in-education/resources/all-resources/learning-
communities.html.
[4] “비고츠키 사회적 구성주의 학습이론,” [온라인]. Available: https://bdgnext.tistory.com/537.
[5] L. Mezard, “Ecole 42 Gamification(Case study),” 5 5 2021. [온라인]. Available:
https://rbean.io/fr/blog/gamification-ecole-42-etude-de-cas.
[6] 홍효정, “학생중심의 프로젝트 기반학습,” [온라인]. Available:
https://mirae.dankook.ac.kr/widget/web/mirae/-
14?p_p_id=Bbs_WAR_bbsportlet&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_cachea
bility=cacheLevelPage&_Bbs_WAR_bbsportlet_extFileId=109677.
[7] 정효정, “교육공학의 이론적 기초(교육방법 및 교육공학)”.
[8] 정효정, “다양한 교수학습 방법의 탐색(교육방법 및 교육공학)”.
[9] 김. 김성식, “집단지성을 활용한 문제중심학습 기반,” 2011.
[10] S. 재단, “디지털 글로벌 스킬, 역량 프레임워크,” SFIA, [온라인]. Available: https://www.sfia-
online.org/en.
[11] 추병완(춘천대), “구성주의의 교육적 함의,” 제 3, 번호: 1, 2000.
[12] 홍. 김성봉, “공학설계수업에서의 PBL 모형 개발 및 효과분석,” %1 한국산학기술학회논문지, 2010.
[13] I. Hames, “Peer review golden rules and good practice,” %1 science editing, 2016.
[14] S. Joseph, “Programmer Competency Matrix,” [온라인]. Available:
https://sijinjoseph.com/programmer-competency-matrix/.
224
글쓴이
이름 : 김수보 (링크드인 프로필), kimsubo@gmail.com
간략 소개
- 25년차 개발자, 해결사. 아직도 현역임.
- “좋은 후배가 많아져야 선배들도 좋아진다”
주요 이력
- 이노베이션 아카데미 상근직 멘토
- 이브레인 아카데미 연구소장
- 알앤비 소프트웨어 빅데이터연구소 소장
- 케이티하이텔㈜ 개발실 팀장
- ㈜지어소프트 데이터플랫폼팀 팀장
- 삼성 SDS 공공개발팀 입사
주요 학력 : 고려대학교 통계학 학사(96졸)
블로그
- IT의 중심에서 : https://subokim.wordpress.com/
- 스타트업 : https://greypencil.tistory.com/

소프트웨어 부트캠프 설계 및 운영사례(42Seoul)

  • 1.
    1 2023.03.20 개발자 양성, 어떻게할 것인가? “개발자 혁신 학교에서의 3 년” 김 수 보 (전)멘토단장, 이노베이션 아카데미 이 글의 내용을 인용하실 때는 꼭 출처를 명기해 주세요.
  • 2.
    2 시작하는 말 이 글은이노베이션 아카데미에서 경험했던 “42Seoul”과 우리가 만들려고 했던 “새로 운 교육모델”(가칭 Project-X)에 대한 것들이다. ‘쓸까 말까, 굳이…?’ 고민을 많이 했다. 회사를 옮길 때면 회고를 쓰곤 했지만, 대부분 일기장에 쓰는 게 전부였다. 하지만, 이곳에서 보낸 3년은 매우 값지고 의미 있는 경험이어서 그러기엔 좀 아까웠다. 더구나, 소프트웨어 교육을 어떻게 해야 할지 고민하는 분들이 “교육계”에 많았다. 그 래서 이 경험을 나누는 게 더 의미가 있겠다는 생각을 했다. 모든 이야기를 쓸 수는 없다. 내가 그만큼 알고 있지도 못하고 교육 전문가도 아니기 때문이다. 하지만, 25년간 IT 업계를 살아온 선배로서 하고 싶은 말은 있다. 좀 더 좋은 환경에 서 좋은 후배들과 오래 함께 일하고 싶기 때문이다. 그래서 부족한 내용이나마 이 글을 써 보기로 했다. Project-X는 기존의 강의수업이 아니라, 집단학습으로 운영되는 개발자 훈련모델이다. 기본 설계는 초대 학장이신 “이민석” 교수님이 했고, 멘토단은 교육실험을 통해 모델 을 더 정교하게 다듬었다. 3년 동안 재학생 2,000명 중 개별면담만 1,200회가 넘었고, 팀 단위 면담도 300회가 넘었다. 함께 했던 멘토들은 기업 CTO출신들로 이미 오랫동안 신입사원 교육경험도 풍 부하고, 대학생 멘토로도 활동하고 있어서, 학생들의 성장과정을 충분히 비교 판단할 수 있었다.
  • 3.
    3 그런 면에서 이노베이션아카데미에서 했던 도전들이 좀 더 사회에 많이 알려졌으면 하는 바람이 있다. 이 글에선 이야기의 흐름이 흐려지는 걸 방지하기 위해 독자를 좁혀 보았다. 이 글의 독자는 200~1,000명 규모의 “개발자 대학교”를 만들고 싶어 하는 사람이다. 물론 이 정도 규모의 학교를 만들려고 하는 사람은 거의 없다. 하지만, 동작원리를 궁금해하는 분들은 많다. 동작원리만 알면 수업을 설계하거나, 새 로운 교육과정을 만들 수 있기 때문이다. 대형 시나리오를 이해하면 작은 시나리오는 금방 적응할 수 있기 때문에 가능한 이노 베이션 아카데미의 모습에 투영해서 풀어가 본다. 하지만, 어떠한 교육이론도 현실을 앞설 수는 없다. 현업 CTO의 눈으로 보면 많은 교육이론들이 넘치거나 모자랐다. 이럴 때 해답은 학생들이다. 현장에서 학생들과 호흡하다 보면 어떻게 다듬어야 할지 알게 될 거다. 에꼴42는 꽤 경직된 모델이다. 이제 10년차가 되어 한창 청년의 길을 걷고 있지만, 결국 늙어갈 거라고 본다. Project-X는 그걸 깨려고 노력을 많이 했다. 시대의 변화에 맞춰 계속 변화하기를 바 랬다. 그래서 이 글에선 더 넓은 의미로 “새로운 교육모델”이라고 표현했다. 부디 이 경험들이 후배 개발자를 양성하는 데 많은 도움이 되었으면 좋겠다. 2023.3.20 김 수 보
  • 4.
    4 추천사 늘 무언가를 마치고나면 “기록을 남겨야지”라는 생각했습니다. 그래서 이노베이션 아카데미가 처음 만들어질 때의 과정을 백서에 담았는데, 예상했던 것보다 훨씬 더 많은 분들이 관심을 보여주어서 너무 감사했습니다. 기관마다 교육 철학과 관점이 다르겠지만, 교육 제공자와 학생들 간의 공동체 안에서 “교육”이 성장하고 지속된다는 것만큼은 이견이 없는 것 같습니다. 그래서 공동체 안에서의 성장과정과 경험들이 널리 공유된다면, 반드시 좋은 방향으로 교육이 발전할 것입니다. 42Seoul 이라는 실험이 계속되고 있지만 3년이 지난 시점에 그 경험을 공유하는 것 은, 그것 만으로도 큰 의미가 있고 비슷한 고민을 하는 소프트웨어 교육자와 학생들에게 도 분명히 큰 도움이 될 거라 믿습니다. 이 책에는 42Seoul의 교육 경험을 바탕으로, 개발자 양성을 위한 혁신교육의 기본 방향과 이에 대한 의미가 가볍게 정리되어 있습니다. 이 글의 저자인 김 수보 CTO는 재단의 멘토로서 초기부터 합류해 학생들과 교육시스 템을 다양한 각도로 살펴보고 가장 많이 연구한 분입니다. 우리의 경험들이 소프트웨어 개발자 교육 또는 프로젝트 기반 교육을 하고 싶어하는 분들께 새로운 영감과 도전의 기회를 제공할 수 있으면 좋겠습니다. 2023.3.19. 이 민 석 이노베이션 아카데미 초대학장 국민대학교 소프트웨어학부 교수
  • 5.
    5 추천사 실패를 가르치는 건교육자로서 아주 큰 용기가 필요합니다. 이노베이션 아카데미가 지향하는 혁신교육은, 학생들이 실패를 통해서 스스로 일어서 도록 방법을 깨우치게 하는 것이었습니다. 학생들은 이 방법을 통해 친구들과 함께 일어서게 되고, 앞으로 걸어갈 수 있게 됩니 다. 그렇게 강한 아이들을 키울 수 있는 교육 훈련 프로그램을 만들었던 것. 그리고 그걸 증명하기 위해 노력했던 3년은 제 인생에서 정말 행복했던 순간입니다. 감사합니다. 2023.3.18 이 호 준 CTO 이노베이션 아카데미 (전)멘토
  • 6.
    6 목차 시작하는 말.............................................................................................................................................................................2 제1장. 소프트웨어교육을 고민하다..........................................................................................................................9 1. 4차 산업혁명 시대..................................................................................................................................................9 2. 기업들의 숙제....................................................................................................................................................... 10 3. 현재 교육의 한계................................................................................................................................................. 11 4. 교육의 숙제 ........................................................................................................................................................... 15 5. 우리나라 교육제도............................................................................................................................................... 18 6. 에꼴42에 대한 평가............................................................................................................................................ 22 제2장. 어떻게 개발자가 되는가? .............................................................................................................................. 25 1. 개발자 성장곡선................................................................................................................................................... 25 2. 개발자 성장모형................................................................................................................................................... 27 3. 개발자의 학습방식............................................................................................................................................... 29 4. 개발자 커뮤니티................................................................................................................................................... 36 제3장. “42”를 만나다....................................................................................................................................................... 39 1. 소개.......................................................................................................................................................................... 39 2. 진짜 될까? ............................................................................................................................................................. 40 3. 학생들 사례 ........................................................................................................................................................... 41 4. 회고.......................................................................................................................................................................... 43 제4장. “42”를 이해하다.................................................................................................................................................. 49 1. 에꼴42란?............................................................................................................................................................... 49 2. 교육 동작방식....................................................................................................................................................... 56 3. 교육모델.................................................................................................................................................................. 59 4. 교육운영.................................................................................................................................................................. 71
  • 7.
    7 5. 인트라넷.................................................................................................................................................................. 85 6.자주 묻는 질문..................................................................................................................................................... 87 제5장. 새로운 교육모델................................................................................................................................................. 94 1. 왜 필요한가?......................................................................................................................................................... 94 2. 교육의 모습 ........................................................................................................................................................... 99 3. 학교 만들기 .........................................................................................................................................................105 제6장. 교육 설계하기 ...................................................................................................................................................114 1. 교육과정 설계.....................................................................................................................................................114 2. 교육방식 설계.....................................................................................................................................................138 3. 학습 커뮤니티.....................................................................................................................................................156 4. 교육도구................................................................................................................................................................175 제7장. 교육의 운영........................................................................................................................................................182 1. 학교의 모습 .........................................................................................................................................................182 2. 입학생 선발 .........................................................................................................................................................184 3. 공동체 운영 .........................................................................................................................................................187 4. 교육 진단 .............................................................................................................................................................195 5. 대응활동................................................................................................................................................................203 6. 기업연계활동 .......................................................................................................................................................204 제8장. 정리하면서 ..........................................................................................................................................................205 1. 이 교육모델의 장점 ..........................................................................................................................................205 2. 개발은 훈련모델.................................................................................................................................................207 3. 기업과 학교 .........................................................................................................................................................208 4. 커스터마이징 .......................................................................................................................................................209 제9장. 기본 용어.............................................................................................................................................................211 1. 교육기관................................................................................................................................................................211
  • 8.
    8 2. 구성요소................................................................................................................................................................213 3. 교육방식................................................................................................................................................................215 표목차...................................................................................................................................................................................219 그림목차..............................................................................................................................................................................221 참고문헌............................................................................................................................................................................223 글쓴이...................................................................................................................................................................................224
  • 9.
    9 제1장. 소프트웨어 교육을고민하다. 1. 4차 산업혁명 시대 그림 1. 4차 산업혁명 시대(출처:삼성SDI) 2016년 “세계경제포럼”에서 “클라우스슈밥”회장은 이렇게 이야기했다. “네번째 산업혁명은 기존 산업혁명과는 근본적으로 다릅니다. 물리적 세계와 디지털 세계가 융합됨으로써, 모든 정치, 경제, 산업이 변화될 뿐 아니라, 그게 인간사회에 주는 가치마저 바꿔 놓을 겁니다.” 인터넷과 컴퓨터가 지식세계를 변화시킴으로써 세번째 산업혁명이 일어났다면, 네번째 산업혁명은 IT가 현실세계로 내려오면서 모든 것을 바꿀 거라는 거다. 실제로도 AI, IoT, 빅데이터 등 IT 기술은 이제 현실세계를 구성하는 요소가 되었으며, 이로 인해 제조, 자동차, 금융 등 모든 산업이 바뀌고 있다. 그가 “산업혁명”이라고 표현한 건, 산업변화를 강조하기 위해서였을 뿐 거기에만 국한 된 이야기는 아니다. 이미 AI는 뉴스기사를 만들기 시작했고, 자동차를 운전하기 시작했고, 미래를 예측하 기 시작했고, 인간처럼 대화하기 시작했다. IT 기술은 이제 “네이버”, “구글” 같은 검색포털이 아니라, 나한테 현실적 만족감을 주
  • 10.
    10 는 제품이 되어버린거다. 이런 변화를 주도하는 세력은 누구일까? 당연히 기업가들이다. IT기술을 이용해 끊임없이 세상을 더 편리하고 새롭게 만든다. 그 꿈을 현실로 만드는 사람들은 누구일까? 바로 IT 개발자들이다. 소프트웨어나 하드웨어 기술을 가지고, 기업가가 꿈꾸는 것을 현실로 만들어준다. 어떤 개발자는 직접 창업을 해서 혁신적인 가치를 만들기도 한다. 2. 기업들의 숙제 공장에 필요한 로봇을 만들고, 피자매장에 필요한 AI로봇을 만들고, 자동차에게 필요 한 “자율주행”을 만들려면 필요한 재료들이 있다. 바로 “데이터”, 컴퓨터를 훈련시켜주기 위한 정보들이다. 이런 정보는 어디에서 올까? 바로 “사람”. 가장 발달한 “인공지능”이기 때문이다. 그런데 이 과정은 모두 스마트폰이나 컴퓨터로 이루어진다. 즉 IT 세계이다. 기업들은 변화에 뒤쳐지지 않기 위해 기업 내 모든 작업들을 IT화 시키고, 정보들을 데이터화 시킨다. 이런 변화를 “디지털 대전환”(Digital Transformation, 줄여서 DT)이라 고 부른다. 즉, 수작업 장부로 관리되던 “제품 출고일지”를 엑셀로 만들고, 엑셀로 관리하던 장부 를 데이터베이스로 옮겨 담는다. 그렇게 하면, 공장은 제품판매와 출고상황에 따라 제품 생산을 지능적으로 변경할 수 있게 된다.
  • 11.
    11 즉, 데이터를 집중화시키고 다양한 현장에서 사용할 수 있게 만드는 것으로도 비용 구조와 사업전략을 새로 짤 수 있게 된 거다. 이렇듯 DT 란, 기업이 가진 정보를 가치 있게 만드는 활동이자, 기업을 체질적으로 바꾸는 변화이다. 그래서 기업들은 여기에 뒤쳐지지 않기 위해 많은 노력과 투자를 기울이고 있다. 가장 먼저 하는 일이 우수한 인재의 확보, 바로 “채용”이다. 하지만, 인재수는 결코 많지 않다. 사람은 공장에서 찍어내듯이 만들 수 있는 제품이 아니기 때문이다. 우수한 개발자는 더욱 그렇다. 우수한 개발자는 학교에서 키워내는 게 아니라, 사회로 나와서 그렇게 크는 것이다. 왜냐하면 “우수한”이란 다양한 현장에서 실력이 증명된 사람에게 붙여지는 칭호이기 때문이다. 즉, 교육은 학교가 아니라 사회 속에서 성장할 수 있도록 노하우를 길러주는 시스템 이어야 한다. 하지만 우리 사회는 그런 시스템이 많이 약하다. 수능식 교육은 학생들을 수동적으로 만들고, 학교는 그런 학생들을 제품 찍어내듯이 배출하고 있다. 특히 소프트웨어 교육을 위한 시스템은 아직 갈 길이 멀다. IT 산업의 역사가 짧아 교 육방향이 아직 자리잡지 못했기 때문이다. 3. 현재 교육의 한계 각 나라의 우수 대학들이 IT 인재를 키워내고 있다.
  • 12.
    12 하지만, 수요에 비해서는인원수가 턱없이 부족하다. 개발자가 필요한 곳은 많은 반면 기존 교육시스템은 사람을 한 땀 한 땀 정성 들여 키워내기 때문이다. 퀄리티는 우수하겠지만, IT산업의 변화속도를 생각할 때 이렇게 운영되는 건 한계가 있다. 소수의 인재로 전 산업을 커버할 수 없을 뿐더러, 다양성과 규모의 문제를 해결할 수 없기 때문이다. IT교육 만큼은 기존의 시작에서 벗어나 다르게 접근할 필요가 있다. 무엇이 문제일까? 현재 교육구조의 문제점을 진단해보자. 구분 현재의 교육구조 단점 교육내용 컴퓨터 기초이론 교재 기반 단계별 학습 산업현장과 동떨어져 있음 교육시간이 오래 걸림 교육기관 대학교, 전문대학 - 컴퓨터공학과(소프트웨어) - 융복합학과, 교과과정 정원확대가 어려움 교과과정 만들기가 어려움 교수자 확보 어려움 교육방식 교수자1 강의식 새로운 교육 = 교수자 양성이 필수 실습, 훈련 시간이 없음 교육자 교수자 교수자 육성에 시간이 오래 걸림(박사급 이상) 새로운 교육과정을 만들기 어려움 교육결과 학점 획득을 통한 졸업 현장에 투입하기 위해 재교육 및 훈련이 필요함. 표 1. 현재 교육구조의 문제점 전통적인 교육시스템은 “교수-수업 방식”을 따른다. 수업은 반드시 교수가 해야 하고, 강의수업은 대부분 전달식 교육으로 이루어지고, 학 생은 전공과목 이수, 수업시간 충족, 점수획득 등을 해야 졸업장을 받을 수 있다. 전통적인 이 교육방식은 19세기 이전, 전문가를 모시고 아이들을 가르치던 “도제식 교육”에서 시작되었다. 당시에는 정보와 지식 자체에 접근하기 어려웠기 때문이다. 1 교수자 : 교사, 교수, 강사 등 가르치는 행위를 하는 사람을 포괄적으로 일컫는 말
  • 13.
    13 이 교육방식은 한명의 교사가 소수의 집단을 교육하기에는 무리가 없지만, IT교육을 하면서는 몇 가지 어려움이 생겼다. 첫째, 실습훈련을 하기 어렵다. 기술 교육은 교실수업만으로 하기 어렵다. 학생들이 직접 코딩을 해봐야 아는데, 그러 려면 노트북도 필요하고, 통제된 개발환경도 필요하다. 더구나 학생들마다 코딩속도가 달 라, 정해진 교육일정을 나가기도 어렵다. 숙련도를 높이려면 실습훈련처럼 운영해야 하는데, 수업 방식으로는 교육 포맷을 짜기 가 어렵다. 시험평가 방법도 어렵다. 지면시험으로는 코딩실력을 확인하기 어렵기 때문이 다. 둘째, 교재를 만들기 어렵다. IT기술의 변화방향은 예측할 수 없다. 스마트폰 이야기하다가 5G 이야기로 뛰고, 갑자기 또 AI로 뛰어 버린다. 비트코인 이 야기하다가, NFT와 STO, 디지털 화폐로 이슈가 옮겨가 버린다. IT는 당면한 문제를 해결하기 위해 현재 기술들을 빠르게 융합시키면서 발전했다. 변 화가 복잡하고 다양했다. 그래서 교재가 나올 때쯤 새로운 기술이 등장해버린다. 예를 들어 “빅데이터 기술”는 원래 Gmail 가입자에게 무제한 용량을 주기 위해서 탄 생했다. 그런데 지금은 그것보다는 AI를 위한 머신러닝에 사용된다. 그래서 공부는 해야 하지만, 교재는 만들기 힘든 그런 시장이다. 셋째, 교수자를 구하기 어렵다. 대학교 교수가 되려면 전공분야의 박사학위를 취득하고, 다양한 논문을 통해 연구경력
  • 14.
    14 을 인정받아야만 될수 있다. 아무리 빨라도 10년이 넘게 걸린다. 1950년대 60년대, IT산업이 느리게 흐르던 시절에는 그래도 되었다. 그 때는 학교 기술이 산업기술이었다. 슈퍼컴퓨터를 만들고 운영체제를 올리고, 프로 그래밍 언어를 탑재하는 것까지 교수들이 직접 설계해다. 하지만, 지금은 아니다. 19세기와 20세기를 지나면서 그런 분위기는 완전히 사라졌다. 산업기술의 발전 속도가 빨라지면서 학교 기술과 분리되기 시작했다. 학교는 기초기술, 산업은 응용기술로 갈라진 거다. 그나마 이젠 산업 쪽에서 기초기술 연구까지 하고 있다. 최근의 기초기술은 구글, 페 이스북, 애플 등이 선도하고 있고, AI처럼 산업 데이터에 기반한 경우는 아예 학교에서 연구를 시작하기조차 어렵게 되었다. 이런 흐름에서 IT기술을 10년, 20년씩 공부한다는 게 말이 안 된다. 그러니, 좋은 교 수를 구해서 개발자를 양성한다는 건 더욱 어렵다. 넷째, 교육을 보급, 확대하기 어렵다. 현재 제도권 시스템은 교수자가 있어야만 교육을 받을 수 있다. 그래서 교수가 반드시 필요하다. 그런데 교수가 없다. 교육교육이나 융합교육을 해야 한다. 그러면 전공학과 교수들이 수업시간을 늘리거나, 대학원생들이 강사로 투입된다. 하지만, 턱없이 부족하다. 그런데, 새로운 머신러닝 기술이 뜬다. 학생들이 이걸 배우고 싶어한다. 하지만 교수를 구할 수 없다. 교육을 할 수 없다. 이런 악순환이 반복된다. 지방대학으로 가면 더욱 심각하다. 교수도 없고, 멘토도 없다. 개발회사도 없고 개발자 도 없다. 그러다 보니 대학이 새로운 기술 트렌드를 소화하기도 어렵고, 소프트웨어 교육 을 확대하기도 어렵다.
  • 15.
    15 즉, “교수-수업 중심”의현재 교육모델로는 IT 교육을 절대 잘 할 수 없다. 시간, 공간, 사람의 제약을 심하게 받을 뿐 아니라, 실습훈련교육이 아니기 때문이다. 오직 선택 받은 소수의 학생들만 교육을 제대로 받는다. 요약하자면, 이렇게 말할 수 있다. “새로운 시대에 필요한 개발자를 양성하는 교육은 없다.” 훌륭한 교수님과 훌륭한 학생들은 있지만, 훌륭한 교육시스템이 없는 거다. 4. 교육의 숙제 왜 그렇게 되었을까? IT 산업의 발전속도와 변화의 량이 너무 예외적이기 때문이다. 반면 교육시스템은 교수자 중심의 교육모델에 묶여 경직되어 있어 대응이 불가능했다. 이 이야기를 하려면 “교육”에 대한 이해가 조금 있어야 한다. 옛날에는 부잣집 자제를 가르치기 위해, 명망 있는 사람을 불러와 스승으로 앉혔다. 그렇게 가르치는 행위가 곧 교육이었다. 중세시대의 대중 교육도 마찬가지였다. 성당에서 목사님이 설교하는 방식, 그게 오래 된 교육의 모습이었다. 즉, 가장 전통적인 교육은 지식 수용자들의 상황을 전혀 고려하지 않고, 주입식 전달 식 교육으로 이루어졌다. 문맹률이 높았기 때문이다. 하지만, 18세기 산업혁명 이후 산업이 복잡해지자 수준 높은 교육이 필요해진다. 복잡한 기계의 사용법도 익혀야 했고, 기록하기 위해 글자도 알아야 했다. 특히 민주사회의 보급과 함께, 공교육이 확대되면서 인간관과 교육철학까지 도입된다.
  • 16.
    16 20세기에 들어 “존듀이”가 인간관, 사회관 등을 기반으로 교육이론을 정립하면서, 이 후 교육의 모습은 복잡해진다. 아동중심의 교육에서 성인중심의 교육으로, 특수계층 중심에서 대중교육 중심으로 바 뀌었고, 교육은 단순히 개인이 가르치는 행위에서 학교라는 사회적 시스템으로 확장된다. 이 과정에서 교육의 형태는 자연스럽게 교수자 중심의 교실 수업으로 굳어져 버렸다. 그런데 공교육을 확대하면서 교육의 형태를 정하는 바람에 새로운 교육형태를 도입되 기 어려워졌다. 그런데 소프트웨어 개발은 기본적으로, 지식습득활동 외 코딩이라는 기술습득훈련까지 동반되어야 되는 교육이다. 이런 교육을 현재 교육의 틀 안에 집어넣으려다 보니 개발자 를 길러낼 수 없는 거다. 교육 훈련 가치지향적 활동 가치중립적 활동 인간 신념체계의 변화 제한된 특수기술의 연마 전인적인 변화 일부의 변화 지적이고 창의적인 참여 단순한 기계적 학습 표 2. 교육과 훈련의 차이점 (R.S.Peter) 그런데 소프트웨어 개발은 기술훈련이면서 다음 세가지 특성을 모두 가지고 있다. “공학자 특성”, “연구자 특성”, “사업가적 특성” 이 세가지 특성을 모두 고려하여 교육이 설계되어야 한다. 먼저 “공학자적 특성”을 예를 들어 보자. 2021년 신한은행은 3,000억원 규모의 차세대시스템 구축에 나섰다. 42개월에 걸친 대형 프로젝트이며 해야 할 업무(TASK)가 1천개에 넘는다. 이런 프로젝트는 아이디어와 창의성으로 승부하는 작업이 아니다. 건설처럼 정교한 “공학적 접근”을 해야 성공할 수 있는 작업이다.
  • 17.
    17 그래서 미리 설계를튼튼하게 하고 각 TASK는 분업으로 개발한다. 모아서 테스트를 하고, 준비된 프로세스를 따라 운영에 들어간다. 반면, 2022년 OpenAI가 발표한 ChatGPT는 그렇지 않다. “연구자적 특성”이 두드러진 케이스다. ChatGPT는 2017년 구글의 “트랜스포머”에서 시작된 연구다. 무려 5년이 걸렸다. 그나마도 이제 막 완성도 높은 제품을 만들어낸거지 아직 판매를 시작한 게 아니다. 구글의 “알파고”도 대중의 주목을 끄는 데까지 6년이 넘게 걸렸다. 2010년에 시작한 “딥마인드”를 인수, 2014년부터 바둑프로그램을 개발했고, 2016년 이세돌 9단과 대결하면서 비로소 유명해진거다. “연구”가 아니었다면, 그 긴 기간을 투자가들이 기다려주지 못했을 거다. “창업가적 특성”은 어떨까? “배달의 민족”을 보자. 창립자였던 김봉진 대표는 2010년 전화번호부 앱을 출시한다. 하지만, 반응이 좋지 않았다. 전화번호부 DB는 KT가 가장 방대했기 때문이다. 고민하던 김봉진 대표는 “전단지앱”으로 정체성을 바꾼다. 아무렇게나 바꾼 건 아니고 관련 사업을 찾다가 성공가능성을 인식한거다. 빠른 변화가 가능했던 건 자기 형이 개발자였기 때문이다. 형이었던 “김광수” CTO도 사업적 감각이 남달랐다. 그에게 이런 감각이 없었다면, 그 렇게 빠른 피봇팅은 하지 못했을 것이다. “파이썬 프로그래밍”을 강의하는 건 쉽다. 하지만, 교육이라면 이런 사람들을 길러낼 필요가 있다.
  • 18.
    18 5. 우리나라 교육제도 가.초,중,고등학교 그림 2. 우리나라의 교육제도(2022.05, KARIC) 우리나라의 교육제도에 대해서 알아보자. 크게 4단계로 나뉜다. “유아교육, 초등교육, 중등교육, 고등교육” “초등교육”은 일반교육, 기초교육이고, “중등교육”은 진로교육, 기술교육이다. “고등교육”은 사회에 필요한 전문 인력을 길러내는 곳인데 대학교가 여기에 포함된다. 이 중 유치원과 초,중,고등학교 12년을 아울러서 “K-12 교육2”이라고 부른다. 여러 가 2 K-12 : K twelve, K through twelve, K to twelve, from Kindergarten(유치원) to 초.중.고등학교 12년으로 이루어지는 의무교육을 말한다. 우리나라의 교육제도는 “미국”을 본 따 만들어졌기 때문 에 미국의 의무교육도 K-12교육이라고 지칭한다.
  • 19.
    19 지 교육이론으로 정교하게짜여 있어 일반인의 시각으론 이해하기 힘들고 거리감이 있다. 자세한 설명은 건너뛰자. 다만 2018년 소프트웨어 교육이 의무화 이후 사용되는 교재를 찾아봤는데 몇 가지 걱정이 되었다. 구분 초등학교 중학교 고등학교 교육목표  소프트웨어 소양교육  도구 활용을 통한 코딩 이해  소프트웨어 소양교육 문제해결 학습을 통한 알고리즘 이해 및 프로그램 제작능력 함양  컴퓨터 융합활동을 통한 창의적 산출물 제작 및 대학 진로 연계 학습 교과내용  놀이 중심의 학습활동 (컴퓨터 사고 이해)  소프트웨어 툴 활용학습 (부제해결 방법 익히기)  문제해결 프로젝트 학습 (프로그램 제작 기초)  논리적 문제 해결력 학습 (알고리즘 절차 익히기)  창의적 아이디어 산출물 제작(프로그램 제작 심화)  프로그램 언어학습 (심화문제해결 학습) 창의적 체험활동  논리적 사고 체험활동 (코딩 활동)  컴퓨터 프로그램 제작 (공작기기 작동원리 구현)  컴퓨터 시스템 융합활동 (R&D 활동) 표 3. 2018년 시작된 소프트웨어 교육과정 첫째, 생각보다 교재가 어렵다. 교재 내용부터 교구 사용까지 개발자가 아니면 쉽게 알기 어려운 내용들이다. 무엇보다 ‘학생들이 잘 이해할까?’라는 고민이 된다. 태권도 막 배우러 온 친구에게 9단 날아차기를 가르치는 것 같다. 둘째, 이 과정을 잘 지도해 줄 선생님이 있을까? 어린 학생들에게 이해시켜 주려면 아주 정말 쉽게 설명해 줘야 한다. 적어도 10년 이상 개발경력 있는 사람이, 교수법을 잘 배워서 쉽게 설명해주는 노하 우를 익혀야 할 것 같다. 셋째, AI 등 새로운 교재를 보면 이걸 선생님들이 가르칠 수 있나 의심이 된다. 너무 내용이 많고 온 산업 전체를 총망라해 놓은 느낌이다. 학교에서 수업만 하던 선 생님들이 이걸 잘 설명해줄 수 있을까? 나는 못할 거라고 본다. 특히 아이들의 질문을 받아줄 수 없기 때문에, 양방향 소통은 되지 않을 거라고 본다.
  • 20.
    20 교육부에서 세운 상위레벨은괜찮아 보인다. 하지만, 학교현장으로 내려왔을 땐, 교재 나 수업이 너무 어렵다는 생각이 든다. 학생들이 깨닫고 배우길 바라는 게 아니라, 강사가 일방적으로 자기 지식을 자랑하는 느낌이다. 나. 대학교 그림 3. 대학교에서 접할 수 있는 코딩교육들 대학교육은 어떨까? 요즘 전공자들은 4학년이 되면 졸업논문 대신 “캡스톤 프로젝트3”를 한다. 작은 프로젝트 하나씩은 해보고 나가게 된다. 하지만, 취업하기에 부족한 경우가 많아 적지 않은 학생들이 부트캠프에 참여한다. 목표는 이력서에 써넣을 프로젝트 하나 해보는 거다. 3 캡스톤 : 돌아치를 세울 때 마지막에 끼우는 지붕돌을 말하는데, 교육과정에선 마지막에 하는 최종과제 란 걸 의미하게 되었다.
  • 21.
    21 비전공자들은 어떨까? 복수전공이라는 제도가있지만 학업부담이 크다. 실무교육이 아니어서 취업에는 큰 도움도 안 된다. 하다 보면 ‘하는 게 맞나?’ 이런 의심이 든다. 정부지원 부트캠프도 쉽지 않다. 선발기준이 높아 일단 코딩학원을 먼저 다녀야 한다. 첩첩산중이라 대부분 온라인으로 입문해보는데, 그나마 혼자서 문법 공부를 해보다가 금방 포기해버리고 만다. 그나마 동작했던 모델이 “멋쟁이사자처럼” 같은 커뮤니티 모델이었다. 다. 정부,기업교육 정부교육과정이나 기업교육은 어떨까? 학교교육과 비교해 보았다. 정확하진 않고 느낌적 느낌만 비교해보자. 구분 교육기관 교육대상 교육목표 교육기간 교육내용 교육방식 장기교육 초중고 어린이, 청소년 훌륭한 국민 (기본소양) 12 년 교양교육 강의 대학교 성인 진리탐구, 전문인 4 년 전공필수 + 전공선택 + 교양 강의 전문대학 성인 전문직업인 2 년 전공필수 + 전공선택 강의,실습 에꼴 42 성인 전문직업인 3 년+ 전공필수 완전 실습 단기교육 학원(부트캠프) 성인 취업 1~3 개월 하드 스킬 강의,실습 공공(취업) 미취업자 취업 1~6 개월 하드 스킬 강의,실습 공공(재교육) 재직자 다양 1~6 개월 하드 스킬 강의,실습 기업(신입) 신입사원 업무관련 하드 스킬 1 개월 하드 스킬 강의,실습 기업(재교육) 재직자 업무관련 하드 스킬 1 개월 이하 하드 스킬 강의,실습 표 4. 교육기관별 교육방식의 차이
  • 22.
    22 가장 큰 차이는“교육기간”이다. 정부는 6개월 이하의 단기교육을 담당한다. 이미 취업전선에 뛰어는 케이스이기 때문에 장기교육보다는 실무전환교육에 맞춘다. “소프트 스킬”보다는 “하드 스킬”에 집중하며, 필요한 부분만 골라서 장착시켜준다. 대학교육의 목표가 “사람”을 길러내는 거라면, 단기교육의 목표는 “기술 장착”이다. 단기교육의 단점은 “교육수준”의 복잡도를 높일 수 없다는 거다. 1단계, 2단계 밟아 가기엔 시간이 부족해 고수준의 교육을 기대하기 어렵다. 그래서 공공교육이나 기업교육은 부트캠프 타입의 코스워크만 존재한다. 아쉽게도 산업파워를 높이는 진짜 교육은 거의 이루어지지 않는다. 6. 에꼴42에 대한 평가 2019년 서울 개포동, 이노베이션 아카데미에서 “42Seoul” 과정이 오픈 되었다. 42Seoul은 “에꼴42 서울캠퍼스”를 부르는 명칭으로, 교육과정은 “42”라고 말한다. 참고로 이노베이션 아카데미는 소프트웨어 개발자 양성을 위한 혁신학교로서 설립되 었으며, “42”는 설립초기 운영할 교육프로그램으로 도입되었다. 나는 계약직 멘토로 합류했는데, 초대학장인 이민석 학장님과의 인연이 큰 지원동기가 되었다. 멘토의 역할은 학생들이 원활히 공부할 수 있도록 지원하는 것과, 우리 사회에 필요 한 진짜 혁신교육모델을 만드는 것이었다. 처음 접한 42는 좀 많이 당황스러운 모습이었다. 우선 42는 파리 본사가 전체를 통제하는 일종의 프랜차이즈 학교다. 전체 교육과정은 42 고유의 것으로 각 캠퍼스에서 변경할 수 없고, 취업과 연결된 기업연계 활동만 할 수 있었다. 프랑스의 교육이념과 철학을 따르고 있어, 우리나라와는 지향점이 조금 달랐다.
  • 23.
    23 더구나 IT인프라를 중심으로한 “콘텐츠 기반 학습모델”4이었기 때문에, 교육시스템을 잘 이해하지 못하면 교육효과가 엄청 떨어졌다. 그리고 커뮤니티 학습 모델이었기 때문에 운영방식 자체가 엄청 까다로웠다. 커뮤니티 문화형성을 위해 제때 필요한 학습법을 넣어줘야 했는데, 그런 일을 하기 매우 어려웠다. 반면, 42가 했던 여러 가지 교육실험들은 충분히 보고 배울 점이 많았다. 그 핵심원리 들을 분해해서 정리해보면 이렇다. 구분 이슈 기존교육 42 교육이론 세부내용 교육장치 하드 스킬 강의를 통해 가르침 : 시범교육, 이론교육 Problem contents 문제 풀이를 통해 스스로 익혀야 함 (구글링, 강의청취 등) 학습시간, 몰입도가 중요 융복합 능력 대응느림 : 학과신설, 강사필요 Project-driven learning 프로젝트 방식으로 subject 제작 빠른 기술변화 대응못함 : 학과신설, 강사필요 Content-driven learning 새로운 기술을 subject 로 만들어 배포 강사 부족 대응못함 : 강사양성 어려움 Peer-learning Piscine 으로 학습방식 훈련 : 동료를 Teacher 로 활용 지식전달 강의를 통해 가르침 : 강사가 핵심 Peer-evaluation : 동료평가 이론은 알아서 학습(교재, 강의 등) 동료와 지식, 경험 교류 결과측정 시험(Examination) Examination 문제은행 기반 시험(Pass/Fail 방식) 학교운영 동료(자원)의 고갈 해당없음 Learning community 150 명 이상의 대그룹 학습 필요에 따라 이합집산하여 과제수행 학습의 다양성 다양한 교육내용 개발 Full open apply 다양한 학생선발(오픈선발) : 누구나 도전 가능 성장 속도 해당없음 Group study 그룹 과제를 통해 협력학습 학업동기 해당없음 Gamification Association 놀이활동, 경쟁의식 봉사활동, 기여활동 등 돌봄활동 해당없음 Group activity 그룹활동, 후원활동 등 교육연계 타학교 교과 연계 등 좌동 비즈니스 스쿨을 단위과제로 취급 산학연계 산학프로그램 Entrepreneurship 학생들이 알아서 자치적으로 판단 취업연계 인턴쉽 좌동 학생들이 알아서 인턴쉽 수행 표 5. “42교육”에 내포된 의미 4 콘텐트 기반 학습 : content based learning, 학습자를 풍부한 량의 콘텐츠에 노출시켜, 상황에 맞는 학 습을 할 수 있도록 구성된 교육방식
  • 24.
    24 현업 개발자의 시각으로보면, 42가 동작하는 모습은 특이한 게 없는 것 같다. 그냥 잘되는 개발자 커뮤니티의 한 부분을 학교로 옮겨온 것 같다. 다만 이게 학교에 구현되어 있다는 건 매우 반가우면서도 신기한 일이었다. 하지만, 교육분야의 시각에서 보면 대단히 혁신적인 모습이다. 개발자 학교를 “커뮤니티 모델”로 만든 건 세계 최초이고, “집단학습 모델”로 1,000명 이상의 규모를 운영한다는 것도 대단히 높게 평가하고 있다. 그러나, 교육원리가 새로 만들어진 건 없다. 집단학습, 집단지성, 동료평가 등은 우리 나라에서도 오랫동안 연구되던 모델들이다. 다만, 1,000명이 넘는 대그룹 단위로 해본 경 험은 없다. 안에서 지켜본 42교육모델은 개발자 교육에 있어 꽤 좋은 대안처럼 보였다. 강의수업만으로 채울 수 없는 많은 것이 해소되어 있었다. 그런 면에서 어떤 것들은 우리 교육에도 과감히 도입해 보는 게 의미 있어 보였다.
  • 25.
    25 제2장. 어떻게 개발자가되는가? 1. 개발자 성장곡선 개발자는 어떻게 탄생할까? 개발자를 교육하려면 개발자가 어떻게 만들어지는지를 이해할 필요가 있다. 그림 4. 학습곡선(Learning curve) 대부분의 성장은 이렇게 이루어진다. 개발자도 이렇게 성장한다. 이 곡선을 학습곡선(1885년, 헤르만 에빙하우스5)이라고 하는데, 투입시간 대비 성장 정도를 표현한 곡선이다. 아직 지식과 경험이 형성되지 않는 초기에는 느리게 성장한다. 어느 정도 지식과 경 험이 쌓이고 나면 가파르게 성장하다가, 고수가 되고 나면 성장이 정체된다. 당연한 이야기인 것 같지만, 이론으로 정립되기 전까진 사람들마다 의견이 달랐다. 5 Hermann Ebbinghaus : 1850 ~ 1909, 독일 심리학자이자 교육자, 망각효과와 간격효과를 발견한 인물, 학습곡선을 처음으로 설명한 사람
  • 26.
    26 이젠 이 곡선에맞추어 교육설계를 할 수 있다. 입문 초기에는 꾸준히 학습량을 채우 게 하고, 성장이 가팔라지는 시기엔 다양한 경험을 하게 한다. 그런데 이걸 좀 더 가까이서 바라보자. 그러면 또 다른 곡선이 된다. 가까이서 바라보면 이렇다. “우당탕탕” 하면서 왔다갔다한다. 지식습득은 이렇지 않지만 기술습득은 대부분 이렇게 일어난다. 계속 도전하고 실패하고, 찾아보고, 반성하고, 교정하는 활동을 반복한다. 개발자의 성장곡선은 정확히 이렇다. 새로운 개념과 기술이 계속해서 나오고 누가 가르쳐주지 않기 때문에, 끊임없이 실험 해보면서 스킬과 경험을 업그레이드한다. 스타트업에서는 이걸 팀 단위로 빠르게 반복한다. 쉽게 반복할 수 있는 이유는 실패해도 피해가 크지 않기 때문이다. 시설산업과 달리 다시 개발하면 되기 때문에 비용부담이 적다. 즉, 개발자는 이런 학습패턴과 성장패턴에 아주 익숙해져야 하는 사람이다. 따라서, 교육 프로그램을 이렇게 설계해도 전혀 이상하지 않다. 그림 5. 우당탕탕 학습곡선(Bumpy learning curve)
  • 27.
    27 2. 개발자 성장모형 개발자성장 모형이란, 개발자를 구성하고 있는 경험이나 지식의 해부도를 말한다. 그림 6. 개발자 성장모형 기술분야나 기업별로 다를 수 있으므로, 웹 개발자 사례를 간단히 정리해 보았다. 절대적 잣대는 아니지만 범용적인 사례로 봐도 무방하다. 위 그림에서 “교육학습”은 학교에서 공부할 수 있는 수준을 말한다. 학교 수준이란 재 정문제, 교실문제, 전산실습실 등 현실적인 제한을 감안한 것들이다. “현업수준”은 학교에서 할 수 없다. 고객, 실데이터, 법적책임 등의 다양한 변인들을 학교 내에 꾸밀 수 없기 때문이다. 하나씩 살펴보자. 가장 기본이 되는 건 컴퓨터 이론이다. IT란 기본적으로는 컴퓨터를 다루는 직업이기 때문이다. 하드웨어의 동작원리 이해는 필수다. 하드웨어가 소프트웨어 구조를 제한하고 성능에 영향을 끼치기 때문이다.
  • 28.
    28 “개발플랫폼”은 OS 위에서운영되는 개발자 플랫폼들이다. 안드로이드, UWP, iOS6 등 이 있다. 플랫폼을 이용해 개발할 수 있도록 여러 가지 API를 제공한다. 모든 걸 알 필 요는 없지만, 일할 만큼은 알아야 한다. 어떤 식으로 작동하고 어떤 식으로 다루어야 하 는지 연습해둘 필요가 있다. “개발환경”은 IDE(Integrated Development Environment)라고 한다. VScode 같은 툴이다. IntelliJ 도 좋고 Eclipse도 있다. 개발을 시작하려면 제일 먼저 내 노트북에 IDE를 구축해야 한다. 프로그램을 깔고 이 것저것 설정을 잡아줘야 한다. 그런데 개발환경을 익힌다는 건 단순히 편집툴을 익힌다는 게 아니다. 어떻게 개발할 지, 어떻게 실행될지 등, 일하는 환경과 프로세스를 결정하는 과정을 연습하는 거다. 여기까지 되면, 먼저 간단한 프로그램을 만들어본다. 일반적으로는 “Hello, World”라는 메시지를 화면에 출력해본다. Java면 Java로, 파이썬이면 파이썬으로, 웹이라면 브라우저에 출력해본다. 이것저것 설치하다 보면 그게 왜 필요한지 어떻게 작동하는지 알게 된다. 그제서야 비로소 개발을 시작할 수 있게 된다. 여기까진 일반적으로 학교에서 해 볼 수 있다. 그 다음 단계는 프로젝트다. 이런 내용이다. “안녕하세요, [인생네컷]입니다. 우리는 각 대학교 앞에서 스티커사진 매장을 무인으로 6 안드로이드 : 구글 스마트폰 플랫폼, iOS : 아이폰용, UWP : 윈도우 플랫폼, 일반인이라면 아~ 하고 넘 어가자. 맥락만 이해하면 된다.
  • 29.
    29 운영하고 있습니다. 사진필터를 좀 더 선명하게 개선할 방법과 광각 느낌의 필터를 개 발하고 싶습니다. 이걸 개발해주실 분을 찾습니다.” 당연히 돈을 받고 하는 거다. 고객과 목표, 기한이 있다. 이걸 끝낼 수 있으면 단순히 코딩을 넘어 직업적으로 일을 할 수 있게 된다. 학교에선 기한을 늘리거나 기능규모를 줄여서 난이도를 낮춘다. 하지만, 역시 혼자 하기엔 기능수가 많고 복잡해서, 대부분 2-3명이 모여서 한다. 더 복잡한 건 학교에서 배울 수 없다. 데이터, 성능, 보안 이슈들을 포함한 복잡도가 올라가는데, 이걸 다 학교 내에 구축할 수 없기 때문이다. 구축한다고 하더라도 유지하는데 어려움이 크다. 더구나 업무 지식이 배경지식으로 필요하다면 더더욱 학교 내에서 운영하기 어렵다. 3. 개발자의 학습방식 가. 신입사원 교육과 다르다. 개발자의 성장방식과 성장모형에 대해선 설명을 했다. 그런데 이걸 학교에서 가르치려면 연구를 좀 해야 한다. 회사에서 신입사원을 가르치는 방식으로는 학교에서 가르칠 수 없다. 왜냐하면 “신입사원”은 회사에선 최하위 레벨이지만, 학교에선 최상위 레벨이기 때문 이다. 학교에선 정말 아무것도 모르는 사람부터 가르치기 시작해야 한다. 하지만, 회사에 선 “신입사원”이 된 것만으로도 대화는 통한다는 뜻이다. 많은 CTO들이 회사에서 가르치는 것처럼 학생들을 가르치면 알아들을 거라고 생각한 다. 절대 그렇지 않다. 교육의 대상은 레벨 제로, 백지상태인 사람부터 시작한다. 더구나 대화가 통하지 않는
  • 30.
    30 경우도 많아서 그훈련부터 해야 하는 경우도 있다. 이런 교육은, 기업에 노하우가 없다. 그래서 학교 교육을 설계할 때는, 기업의 노하우로 접근하면 안 된다. 백지 친구들이 어떻게 학습하는지 관찰을 하고, 하나씩 밟아가도록 잘 유도해야 교육 이 올바로 진행된다. 나. 핵심은 학습량 긴 이야기를 하기 전에 간단히 핵심부터 짚고 넘어가자. 모든 이야기는 이걸 하기 위해 구구절절이 펼친 것이기 때문이다. 레벨 제로인 친구가 개발자가 되는 건 결국은 학습량 = 훈련량이다. 많이 보고, 읽고, 생각하고, 많이 개발해봐야 한다. 이게 핵심이다. IT기술은 파편화되어 있기 때문에, 핵심요령을 익힌다고 해서 마스터할 수 없다. 물론 웹을 할 거냐, 앱을 할 거냐에 따라 익혀야 할 내용이 쉬워지기도 한다. 기획자가 취미 삼아 할 수 있는 정도라면 좀 더 쉬워지기도 한다. 하지만, 거기에 필요한 기초 학습량이 뒷받침되지 않는다면, 아무리 핵심요령을 익혔 다고 해도 개발을 하기 어렵다. 다. 호기심과 경험학습 그러면, 소프트웨어 개발은 어디서부터 시작할까? 바로 “호기심”이다. 그리고 “따라하기”다. 내가 궁금한 게 생기면, 원리를 알고 싶어 그걸 분해해본다. 그리고 똑같이 흉내를 내
  • 31.
    31 어 직접 만들어본다. 다분히 공학적이고 남성적인 이 접근법은 아쉽게도 가장 정통적인 시작방법이다. 이렇게 직접 행동함으로써 학습하는 걸 “Learning by doing”이라고 한다. 그리고 이 “흉내내기”를 경험학습이라고 한다. “경험학습”은 개발자가 새로운 기술을 익히거나, 새로운 지식을 탐구할 때 무의식 중 에 하는 행동들이다. 그림 7. 콜브박사의 경험적 학습모델 이 과정을 네 단계로 나누어 보면 이렇다.  구체적 경험 Concrete Experience: 직접 어떤 상황을 겪는다.  반성적인 관찰 Reflective Observation: 사건들을 되돌아보고, 과거의 경험과 연관하여 개념적으로 이해하려 한다.  추상적인 개념화 Abstract Conceptualization: 깨달은 것들을 추상적인 개념 으로 정리한다.  능동적인 실행 Active Experimentation: 생각한대로 되는지 새로운 상황에서 스킬을 발휘해본다. 여기서 중요한 것은 “회고”, 즉 “반성적 관찰”이다. 자기 잘못을 교정하려는 행위가 성 장으로 이어진다.
  • 32.
    32 개발자들은 원인을 찾기위해 정보를 뒤지거나 새로운 코드를 짜서 테스트를 한다. 제대로 동작하면 새로운 곳에 적용해보거나 더 업그레이드를 시킨다. 개발자에게 경험학습은, 단순 경험이 아니라 반성을 통해 개선하려는 자발적 탐구활동 을 일컫는 말이다. 이걸 학교에 도입하려면 어떻게 해야 할까? 우선 경험학습이 전통적인 강의학습과 어떻게 다른지 이해해야 한다. 경험학습 전통적 학습 경험을 통해 배우거나, 행위를 함으로써 배운다. 현실과 관련이 없는 이론적 개념을 배우는 것 배움은 교실 밖에서도 배울 수 있다. 배움은 교실에서 일어남. 관찰, 반성, 문제해결, 창작을 통해 배운다. 배움은 지식을 암기, 반복학습함으로써 머리 속으로 흡수하는 것 많은 책임이 강사에서 학생에게로 이동한다. 강사는 가르칠 내용을 제공하거나, 시험에 대비한 지식을 전수하는데 집중한다. 학생은 얻고자 하는 지식을 스스로 식별하고 그걸 획득해야 한다. 학생은 정해진 커리큘럼에 따라 공부를 해야만 한다. 학생이 자기의 학업과정을 관리한다. 무엇을 해야 하는지, 언제 해야 하는지를 선생님이 학생들에게 이야기해준다. 실수(실패)가 인정된다 : 실수는 배움의 과정으로 받아들여진다. 실수는 배움에 있어 금지된다.(잘못된 걸로 인식된다.) 성장동기를 학생들이 스스로 찾게 된다. 성장동기를 대부분 학생이 아닌, 외부에서 제공한다. 표 6. 경험학습 vs 전통적학습의 차이점, (David Kolb, 1984) 위 도표는 미국의 심리학자인 David Allen. Kolb7 박사가 만든 내용이다. Kolb박사는 경력개발 및 임원교육을 연구하는 유명한 교육이론가이기도 했다. 이 모델은 1970년대 이후 경험학습이론을 발전시키는데 큰 영향을 주었으며, 기업교 7 David, A. Colbin : 1939년생, 하바드대학 사회심리학 박사, 경험학습, 경력개발, 임원교육 등에 관계되는 “교육이론”들을 다수 정립했다.
  • 33.
    33 육에 주로 사용되다가점차 학교에도 도입된다. 장점은 경험학습은 교사 없이도 일어난다는 거다. 교사는 보조 역할을 하면 된다. 단점으로는 회고와 반성이 없으면 지식화 되지 않는다는 거다. 그래서 교육과정을 설계할 때 “회고, 반성”을 의도적으로 포함시킬 필요가 있다. 라. 점진적 반복학습 개발을 익히는 과정은 수학을 공부하는 과정과 다르다. 그림 8 Mastery learning vs Spiral Learning(aop.com) 수학은 한 단원씩 마스터해가며 다음 단원으로 올라간다. 모든 걸 다 배우고 나면, 마 지막에 시험을 친다. 이렇게 공부하는 방법을 “마스터 학습법 Mastery Learning”이라고 부른다. 앞에 배운 게 뒤에 배울 것의 기초가 될 때 하는 공부법이다. 하지만, 일반적으로 개발을 익히는 방법은 그렇지 않다. 먼저 Hello, World를 찍는 간단한 웹프로그램을 짠다. 그 다음 CSS를 입혀 예쁘게
  • 34.
    34 만들고, JavaScript를 넣어서움직이는 기능을 만들어 간다. 마음에 들지 않으면 중간에 다 버리고 새로 짠다. 이렇게 뭔가를 더해 가면서 구현을 하고 이해가 되지 않을 때 필요한 것을 찾아 공부 하는 방식이다. 마치 그림을 배우는 과정과 흡사하다. 계속 새로운 그림을 그리면서 다양한 소재와 그림기법, 그림실력을 키운다. 이렇게 공부하는 방법을 “나선형 학습방식 Spiral Learning”이라고 한다. 그림 9. Spiral learning model (의학수업 모형, 소프트웨어 교육모형) “나선형 학습방식”은 원래 “의대 수업”에서 시작되었다. 우리 몸의 장기는 서로 분리 되어 있지만, 분리해서 대처할 수 없기 때문이다. 즉, 복잡하게 엮여 있는 것들을 함께 공부할 때 쓰는 방법이다. 처음에는 간단한 수준을 섞어서 배우고, 시간이 흐를수록 점점 더 복잡한 걸 배운다. “소프트웨어” 수업에도 “나선형 모델”이 도입되는데 이유는 비슷하다. 컴퓨터도 내부적으로는 복잡하게 얽혀 있어, 하나만 익혀서는 개발을 할 수 없기 때 문이다.
  • 35.
    35 마. 코드 리뷰 팀에막내가 들어오면 대리가 챙겨준다. 기본적으로 “코드”를 본다. 그게 결과물이기 때문이다. 코드를 보며 이런 저런 이야기를 나누는데, 그런 행위를 “코드리뷰”라고 한다. 채점하려고 보는 건 아니다. 소스코드를 병합하거나, 상용에 배포하기 전에 오류 날 만한 게 없는지 더블로 체크하는 거다. 잘못된 게 있으면 불러서 함께 본다. 대리, 과장급이 되면 서버 구조를 칠판에 그린다. 어떻게 짜야 할지, 어떤 결과를 내 야 할지 함께 토론한다. 이렇게 일하는 스타일을 “개발문화”라고 한다. 의역을 하자면 “업무스타일” 정도 된다. 개발자는 기본적으로 이렇게 함께 토의를 하면서 문제를 해결한다. 마음씨가 좋아서 그런 건 아니다. 기업 시스템은 한 명이 감당할 수 없을 정도로 크고 복잡하다. 동료를 가르쳐서 함께 일하는 방식이 생존에 유리하기 때문이다. 협동심이나 의리 같은 감정적 공감대가 생기 지만, 그게 핵심은 아니다. 이런 건 학교에선 어떻게 환경구성을 할까? 이렇게 서로를 챙겨주며 공부하는 방식을 “상호학습법”이라고 한다. 교실 수업에서 “상호학습법”은 아래와 같이 다섯 가지 유형이 있다. 상호학습의 유형 진행 방법 Peer Interaction 상호 작용형 학생들이 상호작용함, 교수자는 관찰, 필요시 개입 - 서로 가르쳐주기, 토론, 그룹학습 등 Peer Response 상호 응답형 교수자가 질문하고, 학생들이 대답함(소크라테스식) - 학생들도 서로 질문하고 가르쳐줄 수 있음 Peer Collaboration 상호 협력형 학생들이 그룹끼리 협력하고, 교수는 지켜보기만 함 - 문제를 풀거나, 아이디어를 실현하기 위해 협력 - 구조화된 방식으로 진행
  • 36.
    36 Peer Feedback 상호 피드백형 학생들이루브릭을 기준으로 서로 평가하고 피드백 해줌 - “루브릭”은 교수자가 만들어 줌 - 교수자 없이 수업이 진행됨 Peer Facilitated Instruction 학생 퍼실리테이터형 한 학생이 교수자의 지원을 받아 “퍼실리테이터” 역할을 함 - “퍼실리테이터”는 다른 반 학생이 할 수도 있음 - 학생들끼리 할 수 있도록 교과 개발 필요 범례 표 7. 동료학습의 유형(클라크 길버트 외, 2007, 브링햄영 대학) “상호응답형”은 교수자의 역할이 커 보이지만 아니다. 메인은 모두 참여 학생들이다. 상위 세가지 유형은 회사에서도 일어나는 방식이다. 팀장이나 CTO가 리딩을 하고, 업무를 목적으로 한다는 점에서 다를 뿐이다. “상호 피드백형”과 “학생 퍼실리테이터형”은 학교에서 눈 여겨 볼만하다. 교수자의 개입 없이 훈련학습이 가능하기 때문이다. 참고로, “퍼실리테이터”란 “그룹활동의 진행자” 역할을 말하는데, 그룹 내 위계질서를 제거함으로써 소통의 평등성을 이끌어낸다. 그게 경험과 지식의 전이를 이끌어낸다. 강사, 튜터 등의 역할도 있는데 이건 뒤에 다루겠다. 4. 개발자 커뮤니티 개발자를 하면서 커뮤니티 사이트에 계정 하나 없는 사람이 있을까? 단언컨대, 없다! 그만큼 커뮤니티는 개발자에게서 뗄 레야 뗄 수 없는 관계다. 해외 커뮤니티(closeriq.com, 2020) 국내 커뮤니티(블로그하는 어른이, 2021) 1. GitHub 2. Stack Overflow 3. HackerNews 4. Hackernoon 5. Hashnode 6. freeCodeCamp 7. Women Who Code 1. OKKY 2. Stack Overflow 3. GitHub 4. phpschool 5. Taeyo.Net 6. 아이폰데브 7. 안드로이드펍
  • 37.
    37 8. Code Project 9.Digital Ocean 10. Reddit 8. 우분투 한국 커뮤니티 표 8. 국내, 해외 개발자 커뮤니티 목록 그런데 적지 않은 사람들이 “개발자 커뮤니티”를 잘못 알고 있다. 초보자들은 학교 동아리처럼 상상한다. 선배가 있고 후배가 있다고 생각한다. 그래서 들어갈까 말까 부담스러워한다. 정부는 “협회”처럼 생각한다. “대표자”가 있고 회원을 통제할 수 있다고 생각한다. 그 래서 자꾸 커뮤니티한테 정부의 숙제를 내려주려고 한다. 모두 틀렸다! 개발자 커뮤니티는 그냥 게임 동아리 같은 거다. 본질적으로는 그냥 느슨한 “기술 포럼”이다. 굳이 이름을 붙이자면 “무엇 무엇을 사용 하는 사람들의 모임” 정도가 되겠다. 개발자들은 새로운 기술이 등장하면 본능적으로 모임을 만든다. 너무 정보가 부족하기 때문이다. 이렇게 개발자 커뮤니티는 다양한 이유와 목적별로 만들어진다. 그런데 이런 커뮤니티에 참여하면 무엇이 좋을까? 1. 동기부여와 기술지원 - 코딩은 혼자 하면 지쳐 버림. 커뮤니티는 조력자처럼 작동함. 서로 도와주는 것만으로도 동기가 유지되고 계속 그 일을 할 수 있음 2. 내 스킬을 개발할 수 있음 - 커뮤니티는 지식 DB 처럼 작동함. 다른 개발자들과 협업할 기회를 자연스레 갖게 됨. - 기술 토론에 참여하다 보면 내가 업그레이드되는 걸 느낄 수 있음 3. 지식의 전달 - 서로 다른 분야의 사람들과 이야기하다 보면, 지식의 확장이 일어나고 다른 분야에서 일할 기회도 얻게 됨 4. 상호 멘토링 - 일하는 방법, 툴사용법, 코드 봐주기 등 서로에게 다양한 멘토링을 해줄 수 있다. 5. 네트워킹 - 다양한 사람을 사귀는 건 사고의 폭을 넓혀주고 내 지식 DB 를 확장시켜주는 것이다. - 규칙적으로 밋업, 컨퍼런스, 온라인 이벤트 등에 참여한다. 6. 질문에 답 얻기 - 커뮤니티는 전문가를 찾아 답을 얻는 것보다 더 빨리 응답을 해주기도 한다.
  • 38.
    38 - 다른 개발자들은내 코드의 허점을 쉽게 지적해주기도 한다. 7. 퍼스널 브랜딩 - 개발자들은 콘텐츠, 자료, 답해주기 등으로 커뮤니티에 기여할 수 있다. - 기업들의 주목도가 높아져 채용, 이직의 기회가 커진다. 표 9. 개발자 커뮤니티의 장점(Koding & Kahawa Developers Community, 2022) 굉장히 많은 장점들이 쓰여 있지만, 사실 이런 건 자동으로 주어지는 게 아니다. 커뮤 니티 내에서 적극적으로 행동할 때 얻어지는 무형의 보상일 뿐이다. 즉, 본질적으로 “커뮤니티”란 동아리라는 형상을 지칭하는 게 아니라, 이렇게 행동하 는 개발자들의 문화적 습성을 지칭한다. 음, 그런데 이걸 학교 현장에 도입할 수 있을까? 있다!!! 집단지성과 집단활동을 교육현장에 활용하고자 하는 연구들이 있었고, 꽤 의미 있는 결과들이 많았다. 그걸 활용하면 된다. 단, 초기에 이런 문화를 세팅할 때, 반드시 이런 문화에 익숙한 CTO들의 참여가 필요 하다. 즉, 문화의 도입은 책이 아니라, 몸으로 만들기 때문이다.
  • 39.
    39 제3장. “42”를 만나다. 1.소개 프랑스 에꼴42는 “컴퓨터 공학과” 학생들만 약 4,000명 정도 있는 5년제 대학교다. 학비전액 무료로 진행되며 정규교육권 이외의 친구들이 주로 들어온다. 교수나 멘토 등, 교육인력들이 전혀 투입되지 않은 채, 학생들만으로 굴러가는 커다란 “커뮤니티 학교”라는 점에서 유명하다. 자율입학, 자율졸업제도로 연간 1,000명 정도 입학하고 1,000명 정도 나가는데, 평균 2~3년 정도 사이에 대부분 취업을 해버린다. 취업해도 학교에 나오는 경우가 있어 평생교육기관적 성격을 띠고 있다. 개발자 양성학교라는 점에서 여러 나라가 주목하고 있으며, 학생들만의 커뮤니티 방식 으로 진행된다는 점에서 혁신학교로 불리기도 한다. 기업 관점에선 2~3년간 코딩훈련을 한 친구들을 받는 거라 비교적 빨리 현장에 투입 할 수 있고, 학교 관점에선 자발적이고 능동적인 친구들을 배출하는 프랑스의 교육정신 을 실현하는 거다. 학생들 관점에선, “아 개발은 이렇게 하는구나”라는 사회적 성장 스킬과, 평생 함께 할 수 있는 개발자 친구들을 사귈 수 있다는 게 큰 장점이다. 교육과정은 “42 커리큘럼”이라고 표현한다. “학사수준”과 “석사수준”으로 나뉘는데, 수업시간 없이 과제를 풀어 제출하는 것만으 로 진도를 나가며, 학사수준의 과제를 다 풀고 나면 졸업생으로 취급해준다. 진도는 수준에 맞춰 알아서 나가면 되는데, 요구기한이 있어 마냥 늘어질 순 없다.
  • 40.
    40 독특한 건 이런과정과 룰을 정교하게 세팅해서 IT시스템을 제공하는데, 학생들은 이 시스템을 중심으로 활동한다는 것이다. 이 IT시스템은 과제 DB와 학습상황을 제공하는 “웹사이트”와 시험과 훈련환경을 제공 하는 “교육장 인프라”로 나뉜다. 2. 진짜 될까? 교육자 없이 교육을 한다는 거. 굉장히 낯설게 들린다. 교육업계 쪽에선 불가능하거나 우스개 소리라고 치부한다. 그렇게 생각하는 이유는 인 간의 인지구조 때문이다. 배우지 못하고 성장한 친구는 인식수준이 경험적이고 주변세계에 머물러 있다. 성장환 경마다 달라 사람들의 가치관이나 능력들이 정말 제 각각이다. 교육의 역할은 이런 사회적 불균형을 맞추어 주고 국민들의 지적 수준을 올리는데 있 다. 교육방식에 차이가 있을지 언정, 교육자의 외적 개입은 반드시 필요하다. 42 교육도 마찬가지다. 42 교육은 강의를 통해 수업을 전달하는 행위가 없을 뿐, 학생들이 스스로 학습할 수 있도록 교육환경을 설계해주는 설계자는 있다. 그 교육방식의 특징이 기존의 “교수-수업 방식”을 따르지 않을 뿐, 엄연히 우리나라에 도 존재하고 있고, 연구되고 있는 학습법이다. 교육은 여전히 그 교육설계자의 의도대로 흘러간다. 학생들은 스스로 학습을 하고, 서로에게 의지하며 성장하고, 시험을 통해 실력을 확인 하고, 기업과 만남으로서 사회로 나갈 준비를 한다.
  • 41.
    41 3. 학생들 사례 가.전공학과 졸업생 “김전공”씨는 A대학교 컴퓨터 공학과에 다닌다. 올해 졸업반인데 아직 자신이 없다. 다른 친구들은 코딩테스트를 본다, 알고리즘 문제를 푼다 하는데, 나는 이론 수업만 듣다 보니 이렇게 취업할 수 있을까 하는 의심이 들었다. 그래서 이번 여름 방학 때 42캠퍼스에 들어왔다. 어떤 매력을 느꼈다기 보단, 프랑스 스타일은 어떨지 궁금했다. 막연히 뭔가 해야 한다는 의무감도 있었다. 42커리큘럼은 학교에서 배운 내용이랑 비슷했다. 과제스타일이 생소하긴 했지만, 전공 과목을 열심히 한 덕분에 어렵지 않게 문제를 푼 것 같다. 전부 코딩해서 제출하는 것도 재미있었고, 동료평가를 하는 중에 많은 친구들과 이런 저런 이야기를 하는 것도 재미있었다. 그룹 과제는 좀 어려웠다. 해야 할 코딩분량도 많았지만, 친구들과 역할을 나누는 과 정에서 불협화음도 있었다. 두 번 정도 팀이 깨지는 바람에 기한에 촉박하게 끝내야 했 던 게 좀 아쉬웠다. 그런데 학사 과정을 다 끝내고 나니 좀 허탈하긴 하다. 이걸로 충분한가 라는 궁금증 은 여전히 남는다. 다른 친구들이 여기저기 원서를 낸다고 하니 나도 원서를 내볼 생각이다. 나. 비전공학과 졸업생 “노전공”은 B대학교 프랑스어 학과를 다닌다. 올해 대학교 4학년이다. 개발을 공부하고 싶은데, 복수전공을 할 시간적, 금전적 여유는 없었다. 그렇다고 주변 에 개발을 물어볼 사람도 없었다. 이번에 “에꼴42”가 들어온다고 하니 관심이 생겼다. 프랑스어 학과인 만큼 이 학교가
  • 42.
    42 어떤 학교인지는 잘알고 있다. 기대된다. 잠시 휴학을 하고 풀타임으로는 1년 정도를 투자할 계획이다. 42에 와서 가장 좋았던 건 물어볼 친구가 많다는 것이다. 그리고 모두 다 친절하다. 처음엔 어떻게 시작해야 할지, 어디서부터 시작해야 할지 막막했다. 그런데 “모르면 왼쪽의 동료에게 물어봐라 그가 모르면 오른쪽의 동료에게 물어봐라” 는 42격언에 따라 열심히 물어봤다. 다들 너무 친절하게 가르쳐줘서 고마웠다. 커리큘럼은 여전히 어렵다. 지금도 친구들의 도움을 많이 받고 있다. 어떤 건 설렁설 렁 넘어가지만, 어떻게 해야 코딩을 할 수 있게 되는지는 확실히 알게 되었다. 지금은 커리큘럼을 따라가는 것 외, 친구들끼리 “파이썬 스터디”를 하고 있다. 프랑스어 학과 친구들은 능수능란하게 코딩을 하는 내 모습을 보며 놀란다. 어떤 기업에 취업할 수 있을런지 아직 모르겠지만, 일단 부딪혀봐야 할 것 같다. 다. 창업희망자 “강창업”씨는 경영학과를 다닌다. 여행을 엄청 좋아해서 “마이리얼트립” 같은 여행사 업을 하고 싶어 한다. 학교를 다니면서 친구들과 작은 스타트업을 해봤다. 외주로 일을 맡겼는데 함께 일을 진행해보면서 알게 되었다. 이렇게 해선 답이 없다는 것을. 일을 주기 위해서는 나도 어느 정도 소프트웨어 개발을 알아야 하겠다는 생각을 했다. 온라인 강의를 들어볼까 하다가 42에 들어왔다. 여긴 개발자 친구들이 많아서 좋다. 여기 있는 동안 함께 일할 만한 친구들을 찾아서 졸업하는 게 목표이다. 그런데 커리큘럼이 너무 어렵다. 지금 하고 있는 과제도 잘 이해되지 않는다. 파이썬 이나 node.js 같은 것도 많은데 지금 이걸 하는 게 도움이 되는지 모르겠다.
  • 43.
    43 4. 회고 가. 멘토로서3년 이노베이션 아카데미에서 멘토의 역할은 “교육지원자”이면서 “교육설계자”였다. 단기적으로 42를 도입했으나, 결국은 우리 시장에 맞는 교육모델이 필요했다. 3년 동안 1,200회 이상 학생들과 면담하면서 코칭, 퍼실리테이팅 같은 (멘토)약결합 방식도 해보고, 멘토들이 강하게 리딩하는 강결합 교육도 해보았다. 굉장히 흥미 있고 깨닫는 게 많았다. 먼저 핵심만 정리해본다. 첫째, “교육방식”은 생각보다 잘 작동한다. 우리 학생들이 자발적이지 않을 거라는 우려는 기우였다. 대부분의 학생들은 규범과 규율에 억눌려 있는 느낌이었다. 초반에 어떤 제한을 해제 하고 나면 학생들은 기꺼이 자발적으로 움직였다. 동료학습은 초반에 어려웠다. 어떻게 서로를 도와줘야 하는지 한 번도 경험해 본적이 없었기 때문이다. 처음에는 너무 잘 해주다가 번아웃되기도 했다. 누군가 적절성을 규정해 주길 바랐지만, 나중에는 학생들은 적절한 지점을 스스로 찾아갔다. 같은 과제를 한다는 것, 다 함께 코딩을 한다는 것. 이런 동질감이 서로에 대한 거리 감을 없애 주었다. 서로의 관심사가 다르다는 건 인정했다. 뭔가 불균형에서 오는 이질감은 여전히 존재 했지만, 함께 한다는 동료의식이 상황을 안정시켰다. 1,000명 이상의 대집단이라 이합집산이 자유로운 게 큰 도움이 되었다. 집단활동은 필연적으로 갈등을 포함하는데, 헤어지면 이게 다 사라진다. 대집단이니까, 학생들은 알아서 짝이 될 만한 사람들을 잘 찾아다녔다.
  • 44.
    44 둘째, 딱 “학교프로그램”이다. 밟아야 할 코스웍은 있지만, 완전자율학습 방식인 데다 동료들을 땔감으로 삼아 성장 하는 방식이라, 많이 헤맬 수밖에 없고 불확실성에 시달릴 수밖에 없다. 어떤 동료를 만나냐에 따라, 학습진도나 학습수준, 학습속도의 편차가 심했다. 그러다 보니 충분한 시간이 없으면 학습이 일어나기 어려운 구조다. 최소 1년 상의 시간을 기다려준다면 학생들의 실력은 일반대학과 비슷할 거다. 하겠지만, 3개월 미만의 단기수업은 운영하기 어렵다는 생각이 들었다. 학생들이 충분 히 실패해 볼 시간여유가 없기 때문이다. 즉, 전체 시스템이 너무 3~5년짜리 프랑스 학제에 맞춰져 있다는 생각이 들었다. 셋째, “취업 프로그램”이 약하다. 프랑스에선 모든 그랑제꼴 취업률이 거의 100%다. 제도적으로 뒷받침되기 때문이다. 그러다 보니 42는 특별한 취업프로그램을 가지고 있지 않다. 학교가 따로 챙겨주지 않아도, 학생들이 알아서 인턴을 하고, 알아서 원서를 내고, 알아서 취업을 한다. 하지만 우리나라의 취업사정은 다르다. 적지 않은 회사들이 인턴을 기피한다. 일하는데 부담되기 때문이다. 어떤 회사는 신입 사원 채용을 피하고, 어떤 회사는 학생들이 기피한다. 그러다 보니 대졸자 첫해 취업률이 65%(2020년)8 밖에 되지 않는다. 그 중에 20%는 첫해 이직을 한다. 취업도 어렵고 직장 적응도 힘든 거다. 즉, 학교의 취업 지원 전략이 프랑스와는 달라 8 출처 : 대졸자 취업률 (한국교육개발원, 취업통계연보 index.go.kr, 2020년)
  • 45.
    45 야 한다. 일례로, 기본커리큘럼을 21명의 CTO에게 보여 드리니, 채용을 긍정적으로 고려하겠 다는 분이 48% 밖에 되지 않았다. 어떤 교육을 더 하면 좋겠냐고 물었더니, 실무형 프로젝트나 제품 만들기를 하면 좋 겠다는 응답이 69%나 되었다. 즉, 42 커리큘럼만으로는 우리나라 기업을 설득하기 힘들다는 거다. 나. 42의 한계 프랑스는 교육제도의 특성상 학업을 마치지 못하는 경우가 많다. 그래서 취약계층을 대상으로 한 장외의 교육프로그램들이 많다. 에꼴42도 이런 포지션에 있는 학교다. 그래서 열림 선발이나 학비무료, 24시간 학교 개방, 생존역량 같은 것들을 매우 중요하게 여긴다. 오랜 식민지 활동으로 민족 구성이 복잡하기 때문에 다문화 가치관, 성평등 가치관 등도 중요하게 생각한다. 이런 것들이 커뮤니티 내 갈등의 불씨이기 때문이다. 하지만, 우리나라는 상황이 다르다. 단일민족이라 갈등의 양상이 세대갈등, 남녀갈등으로 표출된다. 그런데 이걸 어떻게 다루어야 할지 알려진 노하우가 없다. 그리고 대학진학률이 높아 지원자의 대부분은 대학생들이다. 열린 선발로 뽑기 때문에 오히려 취약계층에게 기회가 가지 않는 경향이 있다. 대학생 친구들은 대부분 휴학을 하거나 학교수업과 병행한다. 그런데 3년이라는 학업시간은 휴학을 하기에는 긴 기간이다. 학생들은 보통 1년 휴학 후 “공통과정”을 돌파하고, 학교 복귀 후 병행학습을 하고자
  • 46.
    46 하는데 생각보다 쉽지않다. 학교 수업과 병행을 하기에는 쉽지 않다. 학습량 생각보다 많고 일정이 빡세기 때문 이다. 그래서 중간쯤 이탈하는 경우가 많다. 하지만 중도 이탈률이 높아지면 집단의 수가 작아져서 동료학습이 잘 되지 않는다. 실제로 1년이 좀 넘게 지나면 어떤 그룹은 함께 입학했던 친구들의 2/3가 이미 취업 한 상태가 된다. 남은 친구들은 의욕이 사라져 학업을 지속하지 못한다. 교육모델 자체가 높은 수준의 교육을 시키기엔 어려운 구조다. 반면, 교육만족도는 높은 편이다. 학교에서 못하는 코딩연습을 할 수 있기 때문이다. 42는 정확히 컴퓨터공학과 전문대 과정에 대한 “대체 학교 과정”으로 동작한다. 그런데 우리나라는 이미 그런 학교들이 많다. 경쟁학교를 굳이 꼽자면 한국폴리텍대학 이나 방송통신대학 정도 될 것 같다. 42는 분명히 혁신적이고 우수한 학교지만, 이런 우리나라 분위기 속에서 잘 생존할 수 있을까라는 질문에 대해서는 확신할 수 없다. 프랑스는 인턴쉽 제도가 잘 발달되어 있다. 그래서 42에는 취업 프로그램이 없다. 하지만 우리나라는 아니다. 기업들이 인턴을 기피한다. 지원제도도 약하다. “대학이 기업과 동떨어져 있어서 일자리 매칭 문제가 안 풀린다.” 이건 모든 대학들이 공통적으로 가지고 있는 고민이다. 이건 혁신 교육을 시작하게 된 계기이기도 하다. “에꼴42”가 이 문제를 풀 수 없다면, 아무리 좋은 교육이라도 우리 시장에선 생존하 기 힘들 거라고 본다.
  • 47.
    47 다. 42의 가치 그렇다면,42는 가치가 없는 걸까? 그렇지 않다. 정리하자면, 42의 교육내용 자체는 특이하지 않다. 그냥 컴퓨터공학과의 “자유로운 버전”이다. 반면, “교육방식”은 특이하다. 42가 교육방식의 혁신을 택한 이유는, “파이썬”이 아니라 “생존스킬”을 가르치기 위한 거다. 좀 더 범위가 넓다. 이건 우리나라의 산업계에서도 환영할 만한 일이다. 요즘 기업들은 학생들의 수동적인 태도 때문에 함께 일하기 매우 어려워한다. 스스로 자기가치를 알아서 증명해야 하는 직업인이 아니라, 학교가 모든 걸 챙겨주는 학생처럼 행동하기 때문이다. 처음에는 학생들 개인의 문제라고 생각했다. 하지만, 수백 번 학생들과 면담하면서 우 리 사회의 교육 문제임을 알게 되었다. 여기 학교에 처음 온 친구들은 매우 수동적이고 무언가에 찌들려 있다. 자존감이 매우 매우 낮다. 하지만, 어떤 깨달음이 온 순간, 급격하게 성장을 한다. 즉, 학습능력이나 역량이 뒤떨어지는 게 결코 아니다. 다만, 모은 것에 주눅 들어있고 누군가 결정해주기를 바란다는 게 문제다. 그런 사람이 회사에서 자기 몫을 잘 해낼 리 없다. “커뮤니티 방식”으로 운영된다는 것도 주목할 만했다.
  • 48.
    48 훈련 커리큘럼을 만들어DB에 넣고, 교육기능을 완전히 IT시스템으로 구현했다는 건 신선한 충격이었다. “IT시스템”을 교육현장에 보급하고 “학습커뮤니티”를 만들어준다면, 강사를 구하지 못 하는 곳에서도 소프트웨어 교육을 할 수 있겠다는 생각이 들었다. 물론 어려움이 있겠지만 충분히 고민해 볼만한 가치가 있다.
  • 49.
    49 제4장. “42”를 이해하다. 1.에꼴42란? 가. 프랑스의 대학교육 에꼴42를 이해하기 위해 프랑스의 교육현황을 간단히 알아보자. 프랑스의 대학은 크게 3가지로 나뉜다. “일반대학” Université , “그랑제꼴” Grandes écoles, “에꼴” école supérieure 그림 10. 한국의 학제 대비 프랑스 학제(2009, 교육과정.교육평가 국제동향연구) “일반대학”은 국공립대학으로 공교육을 제공한다. 학사 3년, 석사 2년, 박사 3년으로 운영되는데 학비가 낮은 대신 진급이 빡세다.
  • 50.
    50 매 학년 진급고사를치르는데 졸업할 때까지 20%가 떨어져 나간다. “교양인”과 “학자양성”을 목표로 하며, 수업과 이론중심으로 교육한다. “에꼴”은 “전문직업학교”로 “실업교육”을 담당한다. 예술, 건축, 관광 등 특정 직업군을 기르는 곳이며 2년~4년제로 운영된다. 역시 학비 가 저렴하다. 예술학교로 유명한 “루이 뤼미에르 국립학교9”의 경우, 학비를 자국민에게는 무료, 외국인에게는 연간 300유로 정도만 받는다. “그랑제꼴”은 특수목적으로 설립된 사립대학으로 “엘리트 교육”을 담당한다. “고등 사범대”, “국립행정학교” 같은 곳인데 역시 5년제로 운영된다. 졸업만 하면 출세가 보장되기 때문에 입학 자체가 어렵다. 2년 정도 준비해야 들어갈 수 있기 때문에, 사교육 열풍의 주인공이기도 하다. 졸업하면 바로 실무에 투입하다 보니 교육과정 전체를 현업 전문가들이 가르친다. 강 사 구하기가 어려워 학기마다 강사가 바뀌기도 한다. 프랑스는 우리나라와는 달리 공교육이 일반화되어 있다. 대학교육 학비가 연간 200유로 정도이기 때문에 거의 무상교육이라고 할 수 있다. 서열화를 막고 평생기술을 가질 수 있도록 돕는다. 개인의 성향이나 능력에 맞게 자 기 직업을 개발하는데 초점이 맞추어져 있다. 그래서 기술분야별로 특성화된 대학들이 다양하게 많이 있다. 제빵학교나 요리학교가 있는 것도 그런 이유 때문이다. 그래서 교육부문에선 프랑스를 많이 벤치마킹 한다. 하지만, 프랑스는 IT산업이 강국인 나라는 아니다. 대부분 서비스업에 종사하고 있으 며, IT산업에 대한 투자는 비교적 최근에 시작을 했다. 9 루이 뤼미에르 국립학교 : 프랑스 교육부 산하의 고등교육기관으로, 영화, 사진, 음향 세 가지 분야의 교육과정을 시행한다. 학생은 총 150여명에 불과하다.
  • 51.
    51 에꼴42를 볼 때이런 상황을 충분히 감안할 필요가 있다. 나. 설립이야기 “에꼴42”의 고유명칭은 “42”이다. “에꼴”은 프랑스어로 그냥 “학교”라는 뜻이다. 즉, “42”는 교육과정의 이름이면서 학교이름이면서 이를 운영하는 법인이름이다. 42는 억만장자 “자비에르 니엘”이 프랑스의 현재 교육을 비판하며, 제도권 밖의 사람 들에게 교육기회를 주고자 2013년 파리에 세운 학교다. 1억 유로(한화 1,387억원)를 기부, 학비 전액 무료 과정으로 운영하고 있다. 그림 11. 42 교육모델의 특징 교육시스템은 “니콜라스 사디락” 교수가 에피텍(Epiech)대학에서 함께 일하던 팀을 데 리고 나와 만들었는데, 물고기가 아닌 물고기 잡는 법을 가르치기 위해 독특한 교육방식 을 사용하는 것으로 유명하다. 42의 설립은 2013년이었지만 독특한 교육방식은 1999년 에피텍 대학까지 거슬러 올 라간다. 즉 교육현장에서 20년 이상 다듬어진 교육법이다. 1995년 사디락 교수는 에피타 대학의 보안근무자로 일을 했는데, 학생들 커뮤니티를
  • 52.
    52 만들어 학교시스템의 필요한기능을 개발하고 운영했다. 이 때의 개발팀을 “보컬”10이라고 불렀다. 1999년 에피타 대학이 IONIS 교육그룹의 회원사로 합류를 하면서, 석사과정에 준하 는 2년제 특수과정을 만들기로 했는데, 이 때 사디락 교수는 “보컬팀”과 새로운 교육과 정을 만들면서 에피텍이 시작되었다. “보컬팀”은 교육모델을 설계하고, IT시스템을 개발, 교육이 운영되는 과정을 전부 관리 했는데, 42가 설립될 때도 그렇게 일을 했다. 지금의 에피텍은 유럽전역에 17개 캠퍼스가 있고, 총학생수가 5,000명, 교직원수는 200명에 달하는 큰 국제학교가 되었다. 하지만, 몇 가지 과정은 제도권 하에서 실행하지 못했는데, 2010년 “Zup de Co협회 11 ”내에 사회봉사과정으로 “웹아카데미 Web@cademie”를 개설하면서, 학생들 만으로 운영되는 학교모델을 완전히 성공시킨다. 42를 세우게 된 건, “웹아카데미” 1회 졸업생이 “자비에르 니엘”의 회사에 취업, 임원 회의에 우연히 참석했는데, “자비에르”가 그녀의 총명함을 알아보고 이 학교에 관심을 가 지게 된 것이 설립의 계기가 되었다. 당시 그녀는 고등학교를 중퇴하고, 애견카페에서 일을 하다 2년동안 이 과정을 밟았 는데, 그녀의 학습과정을 듣고 자비에르는 큰 감명을 받았다. 42는 에피텍부터 시작되었지만 가는 길은 다르다. 에피텍이 그랑제꼴 과정으로 사회 의 엘리트 교육을 담당하고 있다면, 42는 비제도권에서 보편교육을 담당하고 있다. 10 “보컬” : Bocal, 바순 악기에 들어가는 구부러진 금속 취구관. 특별한 의미 없이 사용되었으나, 당시의 개발팀을 지칭, 42에서도 교육팀이자, 개발팀이자, 교육운영팀인 메인팀을 “보컬”이라 부른다. 11 Zup de Co : 2007년 설립, 취약계층 학생들을 교육시키는 비영리교육기관으로 자원봉사자들에 의해 운 영이 된다.
  • 53.
    53 42는 “그랑제꼴드누메릭”이라는 공익단체에가입되어 있는데, 이는 사회적 약자나 농 민들이 IT 일자리를 갖도록 도와주는 곳으로, 42교육의 정체성을 명확히 알 수 있다. 다. 혁신성 42가 보편교육을 지향하면서, 여러 가지 교육모델들이 바뀌었다. 교육의 정체성을 “지식전달”이 아니라 “생존 스킬 훈련방식”으로 바꾸었다. 파이썬을 가르치는 것보다, 파이썬을 스스로 익힐 수 있도록 한 거다. 학생들이 스스로 알아서 해야 하니 가장 먼저 교수자를 걷어냈다. 기존 교육시스템에 선 “교수자”가 교육을 리딩하기 때문이다. 교수자의 빈자리를 동료들이 채우도록 했다. 다만 교수자가 없으므로 전문적인 내용은 익히긴 어려웠다. 교육내용을 범용적인 부분으로 한정했다. 교수가 없어지면서 수업도 없앴다. 학생들이 과제를 풀면 진도가 나가도록 프로그램을 짰다. 20개 정도 풀면 컴퓨터공학 과 4년 과정을 마스터할 수 있도록 했다. 이게 가능한 건 참고할 내용들이 책이나 영상 으로 충분히 나와 있기 때문이다. 교수자와 수업일정이 없으니, 학생들이 알아서 진도를 나가야 하는데 이게 어렵다. 학 업분위기 조성이 중요했다. 고립되지 않고 서로를 챙겨서 함께 갈 수 있도록 분위기를 만들었다. 산업사회 관점에선 특별할 게 없는 이야기들이다. 사회로 나서는 순간 직장인들은 모 두 이렇게 살아야 하기 때문이다. 다만, “교육업계”는 다르다. 매우 주목을 하고 있다. 기존의 교육 방식으로는 소프트웨 어 교육을 감당하기 힘들기 때문이다. 중학생까지는 “스크래치”로 커버할 수 있지만, 고 등학생에게 필요한 교육도구는 없다. 담당 교원도 부족하다. 대학교의 경우는 더하다. 새로운 기술이 해마다 등장하는 데 거기에 맞추어 교육과정
  • 54.
    54 을 업데이트하기 어렵다.별다른 지침도 없고 어떻게 교육시켜야 할지 감을 잡기도 어렵 다. 제일 힘든 게 교수나 강사를 구할 수 없어 교과수업을 시작하기도 어렵다. 그래서 새로운 교육방식이나 교육모델에 대한 관심이 높다. 42에 대한 기대도 그런 관점에서 출발한다. 라. 판타지와 현실 3無 교육(No Teachers, No Courses, No Classes)이라고 하면 다들 환타지를 가진다. “아니, 선생님 없이 학생들이 알아서 성장한다고?” “그러면 이제 선생님이 필요 없는 거야?” 아니다! 그렇게 이해하는 건 “판타지”다. “교수자 강습방식”에서 “집단학습방식”으로 바뀌는 등 여러 가지 교육방식이 변하지만, 교육은 교육이다. 교수자의 역할도 수업(교육진행)만 사라질 뿐, 교육설계와 평가관리의 역할은 그대로 남아있다. 42 에선 파리캠퍼스의 “Pedagogy”팀이 교육설계와 교육평가를 맡는다. 새로운 교육이 필요하면 “Pedagogy”팀이 고민하여 과제를 설계한다. 평가관리는 정기적으로 실시되는 시험와 동료평가의 결과를 보고, 교육이 제대로 진행 되는지 진단한다. 교육진행은 각 캠퍼스의 교육운영팀이 담당하며, 과제수행이 적절한 속도로 이루어지 도록 학생들을 압박한다. 42 교육은 방치교육은 아니다. 스스로 할 수 있게끔 돌봐 주는 “돌봄교육”이다. 직접 적으로 강의하는 행위가 없어졌을 뿐, 여전히 교육기관의 역할을 하고 있다.
  • 55.
    55 마. 교육목표 42는 어떤교육목표를 가지고 있을까? 어떤 사람을 길러내기 위해 그런 교육방식을 선택했을까? 42는 자기네 홈페이지에 이렇게 정체성을 밝히고 있다. “42는 다양성과 포용성의 힘을 믿는다. 우리 교육모델은, 이론 교육보다 프로젝트에 기반한 학습 과 팀워크 훈련에 초점을 맞추고 있다. 우리는 최신의 교육혁신 방식과 모델들을 통합하면서, 차 세대 IT 인재들의 역량을 강화시키는 걸 목표로 하고 있다.” – 42.fr 즉, 42의 목표이자 핵심가치는 “다양성” 과 “포용성” 이다. 무슨 소리인가 하겠지만, “다양성”과 “포용성”은 프랑스가 교육법에 명시한 일반적이고 보편적인 가치이며, 프랑스의 모든 학교가 이 정체성을 따른다. 즉, 42 도 프랑스 학교로서 보편적인 지향점과 가치관을 따라간 것이다. 비전은 무엇일까? 그들은 이렇게 말하고 있다. 2013년 설립 이후, 우리는 혁신적인 교육방법으로 최고의 IT교육을 최대한 많은 사람들에게 제공 하려고 노력해왔다. 고등교육부문에서 세계적으로 독특한 이 포지션은 “개방성”, “학비무료”, “우수 성” 같은 가치들에 기반하고 있다. 우리의 최종 목표는 IT전문가들을 (발굴하여) 고용시장에 지속 적으로 합류시키는 것이다. 그런데 이건 프랑스의 교육상황과 직결된다. 프랑스는 1968년 이후 공교육이 일반화되면서 대학이 평준화되었다. 모두 국공립화 되면서 연간 200유로만 되면 대학을 갈 수 있게 된 거다. 대신 그랑제꼴이라는 사립대학이 엘리트 교육을 담당하게 되었다. 완전 실습과정으로 이루어진 출세코스로 학비가 연간 11,000~15,000유로가 된다. 2013년 이전에는 제대로 된 코딩교육을 접할 수 있는 케이스가 “그랑제꼴” 밖에 없
  • 56.
    56 었다. 그러다 보니자비에르 니엘은 재능 있는 친구들이 코딩을 배울 기회를 얻지 못한 다고 당시 교육을 비판했다. 즉, 에피텍에서 하던 그랑제꼴 과정을 42라는 무료교육과정으로 풀어버린 거다. 대단히 파괴적이고 혁신적인 도전이 아닐 수 없다. 그런데 고민이 된다. 우리나라가 처한 상황과는 많이 다르다. 과연 어떤 시각에선 어떻게 해석할 것인가? 이게 숙제다. 2. 교육 동작방식 가. 놀이터 학습 그림 12. 42의 교육환경 “42교육을 한마디로 설명해주세요.” 라고 누가 묻는다면 한마디로 대답할 수 있다. “42는 환경교육이자 놀이터 교육입니다.” 42는 환경을 설계하고 거기에서 학생들이 놀게 하는 교육법이다. 다만, 성인 놀이터이 고 모든 걸 스스로 해야 한다는 압박감이 있다. “교육의 질”은 “구성된 환경”에 크게 좌우된다.
  • 57.
    57 교육장, 노트북, 네트워크인프라, 서버 환경 등이 중요하다. 특히 요즘은 개인화된 노트북이 없으면 현대 소프트웨어 교육은 잘 되지 않는다. “교육내용”은 하드 스킬과 소프트 스킬로 나뉘는데, “하드 스킬”은 교육 콘텐츠와 커 리큘럼 등이 결정한다. “소프트 스킬”은 “교육방식”이 결정한다. “교육설계자”는 이렇게 교육에 필요한 놀이기구를 설계하고 만든다. 직접 가르치는 행위가 없는 만큼 꽤 철학적이고 정교해야 한다. 학생들이 따라가야만 하는 통로 하나를 만들어주는 게 아니라, 문제를 해결할 때 집어 쓸 수 있는 도구를 만 들어줘야 한다. “교육운영자”는 학생들이 제대로 학습하는지를 관찰하고 도와준다. 학생들끼리 스스로 해야 하지만 의도된 학습활동이 일어나지 않을 때는 개입하여 가이드 한다. “어린이집” 모습과 비슷하다. 이런 교육방식을 “구성주의 학습모델”이라고 한다. “구성 주의 학습”에선 교수자가 직접 개입하지 않기 때문에, “놀이환경” 설계가 중요하다. 즉, 놀이환경이 곧 교육환경이다. 42는 중앙집중식으로 운영된다. 교육환경 설계는 파리캠퍼스가 담당하고, 다른 캠퍼스 는 “교육운영”만 한다. 각 캠퍼스에서 자기들만의 교육을 할 수는 있지만, 42 시스템과는 별도로 운영해야 한다. 42는 “교육운영”도 상당부분 학생들 참여로 채운다. “자원봉사”, “동료평가”등 제도적, 비제도적 방식들로 교육진행에 필요한 노동력을 해결한다. 이것 또한 커뮤니티가 동작하 는 방식이다.
  • 58.
    58 나. 학습 커뮤니티 그림13. 42의 커뮤니티 학습방식 “성인사회”에서 “놀이터”는 “커뮤니티”가 된다. 42 학생들은 자신들을 커뮤니티라 부르고 실제로 개발자 커뮤니티처럼 행동한다. 함께 할 동료를 찾고, 학습일정 수립, 필요한 교재 조달, 샘플코드 검색 등 모든 걸 스스로 알아서 한다. 이런 걸 해보지 않았다면 학생들에겐 모든 게 다 스트레스가 된다. 하지만, 이런 과정 이 도움이 된다는 걸 알게 되면, 학생들은 생각보다 빨리 적응해 나간다. 그래서 커뮤니티 내에 좋은 경험들이 자리잡게 하는 게 엄청 중요하다. 일단 선순환 하기 시작하면 계속 선순환 한다. 다만, 악순환이 되면 계속 악순환 된다. 그래서 이상한 분위기가 자리잡지 않게끔 꾸 준히 관리를 해야 한다. 일반적인 커뮤니티 특성을 그대로 따른다. 42 캠퍼스는 학생들이 부정행위를 하거나 문제행위를 일으키면 즉시 스태프에게 보고 가 된다. 스태프는 이런 상황에 대해 굉장히 엄격하게 큰 패널티를 주거나, 개선의 여지 가 없다면 퇴학을 시켜버린다. 실제로 42는 “WURI(세계대학교 영향성 평가)”의 도덕적 가치 부문에서 매년 1,2등을 차지하고 있다. 그만큼 커뮤니티 기반 교육은 분위기 관리가 중요하다. 이 분위기가 곧 “커뮤니티 문화”이며 교육의 질을 결정한다.
  • 59.
    59 3. 교육모델 가. 교육철학 “사디락교수”가 해외 강연을 나오면 종종 이런 이야기를 한다. “42는 능동적 교육철학(Active Pedagogy)와 구성주의(Constructivism)을 따른다.” “능동적 교육방식”과 “구성주의”는 “교육학”쪽 용어다. 일반 개발자들은 들어볼 일이 없지만, 교육대학생들은 학부과정 중에 배우는 용어다. 이 이야기를 하자면 너무 길어서 핵심만 요약을 해본다. 대구분 소분류 구조주의 구성주의 구조주의(객관주의) 인지적 구성주의 사회적 구성주의 교육의 특징 등장배경 사회는 규칙으로 규명가능, 통제 및 예측 가능 사회는 불확실, 복잡, 독특, 가치관이 충돌하는 곳 교육의 정의 지식을 이해하고 기억하는 것 지식을 응용할 수 있게 되는 것 (문제해결능력, 창의력) 교육의 목표 진리와 일치하는 지식을 습득하는 것 습득된 개인경험을 사회적, 문화적 타당성에 맞추어줌. 상호작용을 통해 사회.문화적 요소를 습득하는 것 패러다임 Teaching (잘 가르치키) Teaching – Learning (잘 가르치고 잘 배우기) Learning 우선 (스스로 학습하기) 기타 발생시기 1920 년대(소쉬르) 1920 년대(피아제) 1960 년대(비고츠스키) 교육사례 전통적인 강의교육 (높은 지식을 가진 교사가 중요) 도제식 교육 (도전과제, 인지과정이 중요) 학습공동체, 에꼴 42 (학습이 일어나는 커뮤니티 환경, 보고 따라할 수 있는 롤모델이 중요) 장점 대량인원, 동시교육이 가능 지식형성기에 적합 탐구형 + 연구형 + 과학적 인재 탐구형 인재육성에 적합 창의적사고 + 행동형 + 다양한가치 사회적, 도전형 인재육성에 적합 교수자가 필요없음 단점 교사가 없으면 교육 불가능 빠른 환경 변화시 효용성이 낮음 상상력, 창의력은 관심밖 만남의 공간 부재시 교육효과 없음 폐쇄적 운용시 신규 지식 유입 불가 표 10. 구조주의, 구성주의 교육철학의 차이
  • 60.
    60 전통적인 교육은 “구조주의”라고 한다. “세상에는 구조화된 지식체계가 있고 그걸 1장부터 10장까지 전달하는 게 교육의 본 질이다, 그걸 아는 사람이 모르는 사람에게 가르치는 게 교육이다” 라고 생각한다. 구조주의 교육의 장점은 강의실에서 이루어지기 때문에, 대량으로 교육이 가능하다는 것이다. 단점으로는 지식전달에는 적합하지만 기술습득이나 훈련에는 적합하지 않다는 것 이다. 기술습득은 뭔가를 해봐야 하는데, 그러려면 학습자가 뭔가를 하고 싶어 져야 되기 때문이다. “구성주의”는 “지식은 문화와 경험을 통해 학습되는 것이다”라는 관점을 가진다. 그래서 경험과 문화가 잘 전달될 수 있도록 환경을 구성하는 것에 노력을 기울인다. 장점은 자기가 하고 싶어 지는 환경을 만들어 준다는 것이다. 한 명의 스승을 두어 욕구를 자극하는 것이 “인지적 구성주의”다. 효과는 좋은데 한 명이 한 명 밖에 못 가르친다. 교육의 품질은 좋지만, 보급성이 엄청 낮은 거다. 반면, 또래들끼리 사회를 만들어 욕구를 자극하는 것이 “사회적 구성주의”다. 교수자가 없어도 되기 때문에, 교육의 확장성과 보급성은 높은 반면, 지식수준을 높이 는 데는 한계가 있다. 42는 강력한 “사회적 구성주의” 성향을 가지고 있는데, 정체성을 기술지식을 가르치 는 것보다, 기술지식을 배울 수 있도록 “소프트 스킬”을 만드는 것에 초점을 두고 있기 때문이다. 그래서 “배우는 법을 배운다.(Learn to learn)”, “문제 해결력을 익힌다”. 이렇게 표현 하고 있다. 부족한 전문지식은 어떻게 하나? 42는 그건 학교의 역할은 아니라고 본다. 학생들이 빨리 사회로 나가서 사회속에서 성장하기를 바라고 있다.
  • 61.
    61 나. 교육과정 교육과정은 “커리큘럼”이라고부른다. 교재처럼 1장부터 10장까지 나누어져 있지 않 고, 여러 개의 “학습과제”들로 이루어져 있다. 그림 14. 42 커리큘럼 (출처: 42 Heilbronn) 모든 “학습과제”는 “프로젝트 기반 학습방식”(Project based learning, 이하 PBL)으로 만들어져 있다. 문제와 여러 가지 제한 사항을 주고 알아서 코드를 짜오게 한다. 정답은 없다. 사람마다 다를 수 있다. 오픈북으로 치러지는 중간고사처럼 학생들은 나 름대로의 코드를 짜서 시스템에 제출한다. 기본적으로 동작하는 코드이어야 하며, 동료들과 코드리뷰를 통해 PASS를 받아야 다 음 단계로 나갈 수 있다. “학습과정”은 “학습과제”들로 구성되어 있는데, 크게 2단계로 구분된다. 1단계는 동심원 안의 과정으로 “공통과정(Common core)”라고 부른다. C 로 Unix를 해체시켜 보는 과제들인데 “컴퓨터 기초과정”에 된다. 전공학과 “필수과 목”들인데, 비전공자가 모든 과제를 푸는데 평균 1.5년 정도 걸린다.
  • 62.
    62 2단계는 동심원 바깥의과정으로 “Specialty step”인데, 의역을 하면 “심화과정” 정도 된다. 여기에는 AI, 모바일앱 같은 실무과제들이나 기업실무 과제들이 포함되어 있다. 1단계를 끝내고 나면, 시스템에 “42member”로 자격이 찍힌다. 그 전에는 “Learner” 이다. 굳이 우리나라 학제와 비교를 하자면, 1단계는 학사, 2단계는 석사레벨이라 할 수 있다. 예를 들어, “철학자의 식탁”문제가 42 교육과정에도 중간쯤에 배치되어 있다. “철학자의 식탁”이란 컴퓨터의 Dead lock 문제를 상징하는 대표적인 사례로, 전공학 과 3학때쯤 배운다. 전 세계에도 널리 활용되는 예제이다. 과제의 난이도는 기하급수적으로 높아진다. 처음에는 혼자서 할 수 있지만, 중간쯤부 터는 반드시 동료들과 함께 해야 한다. 어렵다기 보다 공부할 내용이 많고, 작업량도 많 기 때문이다. 전공학과 친구들은 어렵지는 않다고 한다. 다만, 학교에서 배운 걸 이렇게 코딩으로 풀어본 적이 없어 매우 재미있어 한다. “아하, 그게 이거야?” 하고 놀라워한다. 반면 비전공자 친구들은 매우 어려워한다. 특히 예술학과 친구들은 True, False로 나뉘어지는 이분법적 사고를 이해하지 못한다. 메모리를 allocate 하고 free하는 개념부터 헤매게 된다. 그대로 3일 정도 지나면 반포기 상태가 되고, 7일 정도 지나면 완전히 포기하고 만다. 빨리 전공자들과 매칭시켜 가르침을 받아야 한다. 이런 학생들은 튜터에게 도움을 요청하거나, 스태프에게 요청해 후원자를 지정 받을 수 있다. 튜터는 보통 공통과정을 통과한 친구들이 하며, 아직 낯설어 하는 친구들이 빠 르게 적응할 수 있도록 도와주는 역할을 한다.
  • 63.
    63 다. 교육기간과 졸업 42의공식적인 교육기간은 5년이다. 외부에는 3년제 과정처럼 홍보한다. 프랑스 학제가 학사 3년, 석사 2년인 걸 생각하면 이해할 수 있다. 42는 “그랑제꼴”처럼 “학교”로 운영되고 있기 때문에, 프랑스 학제를 따라가고 있다. 실제로 입학과 졸업까지 그렇게 관리되고 있다. 다만, 교육과정을 구성하기에 따라 2년제로도 운영이 가능하다. 42의 엄마격인 에피텍은 처음에는 석사과정 2년으로 시작했다. 처음에는 에피타 전공 자들을 받았기 때문에 2년제로도 운영이 가능했던 거다. 파일럿이었던 “웹아카데미”는 2 년 과정인 대신 웹 개발로 커리큘럼을 한정 지었다. 즉, 커리큘럼을 어떻게 구성하느냐에 따라 교육기간이 달라질 수 있는 교육모델이다. 하지만, 에꼴42는 비제도권 친구들에게 학교역할을 해주는 게 목표였기 때문에 5년의 기한을 이야기하고 있다. 그런데, 학제를 논외로 하고, 진짜 교육에 걸리는 시간은 얼마나 될까? “공통과정”은 1.5년, “심화과정”은 자유. 이렇게 생각하면 된다. 실제 사례로 전공학과 친구가 집에 가지 않고 24시간 학교에서 살았는데, 딱 6개월 이 걸렸다. 그리고 다른 친구는 매일 하루 8시간씩 공부하니 12개월 정도 걸렸다. 하지만, 모든 친구들이 그렇게 공부하긴 어렵다. 통계적으로는 18개월 정도 걸린다고 42 홈페이지에 공개를 했다. 2018년 이전에는 6 개월로 홍보하기도 했는데, 당시에는 교육과정이 좀 쉬웠다. 지금은 대학 전공학과처럼 운영되고 있어 교육기간이 길어졌다. “공통과정”은 기초과정이기 때문에 이것 만으로는 취업이 쉽지 않다. 이후에는 인턴쉽 이나 기업 프로젝트를 해보는 등 실무훈련을 권하고 있다.
  • 64.
    64 물론 기초과정을 소홀히하면 안 된다. ERD, OSI 7 Layer 등 개념이 명확히 잡혀 있 지 않으면 면접에서 많이 떨어지기 때문이다. 100점 맞을 필요는 없지만, 일 할만큼은 알아야 한다. 현실적으로는 평생교육기관처럼 운영한다. 공통과정만 통과하면 계정이 지워지지 않아 평생 출입할 수 있다. 선배들이 학교로 와서 후배들을 도와주거나 데려갈 수 있도록 기 회를 만들고 있다. 42는 자율입학, 자율졸업제도다. 원하지 않으면 학교에 나오지 않으면 된다. 일정기간 시스템에 로그인하지 않으면 계정이 만료되어 버린다. 입학생들의 25% 정도가 취업 등의 이유로 매년 이탈하며 3년이 지나면 20% 밖에 남지 않는다. 남아 있는 경우도 대부분 회사에 취업을 했다 쉬는 경우들이어서 커뮤니티 에 놀러 온다는 느낌으로 학교를 나온다. 라. 프로젝트형 학습과제 그러면 42의 학습과제는 어떻게 생겼을까? 어떻게 생겼길래 학생들이 알아서 공부할 수 있을까? 대단하지 않다. 그냥 이런 식이다.12 - 과제 : 이곳에 15층 짜리 아파트가 있다. 여기에는 엘리베이터가 2개가 설치되어 있는데, 버튼 하나를 눌러서 동작한다. A는 5층에서 10층을 가고 싶어 하고, B는 3층에서 1층을 가고 싶어 한 다. 이 때 가장 효율적인 엘리베이터 알고리즘을 설계하세요. 참고로 엘레베이터가 1층을 움직이 는데 걸리는 시간은 1초이다. - 제한사항 : 코딩언어는 자유 - 출력 : 터미널로 A, B의 현재층과 목표층을 입력 받아, 소요되는 시간을 출력할 것 12 실제 42과제는 아니다. 42과제는 NDA(기밀유지협력)에 걸려있어 외부유출이 안 된다. 다만, 학생들이 자기 해답을 GitHub에 올려놓는건 통제하지 않아, 구글 검색을 해보면 쉽게 과제 내용을 짐작할 수 있다.
  • 65.
    65 상황과 맥락이 있다.하지만, 정리된 질문이 아니라 일상언어로 기술되어 있다. 초보자 친구들은 처음부터 멘붕이다. 무슨 뜻인지도 모르고 어디서부터 시작해야 할지 도 모른다 경험 없는 친구들은 절대 혼자 알아서 풀 수가 없다. 반드시 주변의 친구들을 찾아서 물어봐야 한다. 이 문제는 어떻게 풀어야 할까? 사전지식으로 Queue를 알고 있어야 한다. 동시성을 처리하기 위해 Thread도 알아야 한다. 중간취소가 일어난다면 “제어방식”도 설계할 수 있어야 한다. 그러고 보니 꽤 어려 운 과제구나 싶다. 즉, 학생들은 이 과제를 이해하기 위해 동료들의 도움을 받아야 하고, 이 과제를 풀기 위해 필요한 정보들을 찾고 코드를 찾아서 공부해야 한다. 그리고, “내가 생각하는 엘리베이터”에 맞게 알고리즘을 설계하고 이를 코드로 옮긴다. 잘못 생각한 게 있을 수 있기 때문에 친구들에게 테스트를 맡겨본다. 친구들은 자기 생각에 맞추어 이렇게 저렇게 해보고 코드를 피드백 해준다. 42 과제는 이런 식으로 설계되어 있다. 학생들의 행동을 통제하는 게 아니라, 학생들 이 행동을 시작할 수 있게 문제를 던져준다. 그래서 42과제들은 친절하지 않다. 42 과제를 보면 KT 인프라 시스템을 운영할 때 사례가 많이 오버랩 되었다. 보안이나 서버작업 중심으로 구성되어 있는데, 아마 “사디락 교수”가 3년 정도 보안관 련 스타트업을 했던 경험들이 많이 녹아 있지 않나 싶다. 마. 동료학습, 동료평가 42의 학습방식은 동료학습이다. Peer-to-peer 라고 하는데 기본적으로는 2인 학습을 말한다. 그런데 과제는 대부분 1인 과제이거나 3-4인 과제이다. 2인 과제가 없다.
  • 66.
    66 즉, 여기서 동료학습이란2인 과제를 말하는 게 아니다. 동료평가를 말한다. 동료평가는 기본적으로 1:1방식의 “코드리뷰”로 이루어진다. 학생이 코드를 만들어서 시스템에 올리면, 시스템은 랜덤으로 3명의 평가자를 매핑 시켜준다. 학생은 1:1로 평가자를 만나 내 코드를 설명하고 올바로 학습했음을 증명해야 한다. 과제당 최대 3번의 retry를 권장하니, 한 과제를 할 때 최대 9명의 사람들을 만나 내 코드를 설명하게 된다. 공통과정 안에는 약 20개의 과제가 있어, 평균 100명~200명 정 도의 사람과 코드리뷰를 해야 공통과정을 돌파할 수 있게 된다. 하루 평균 8시간 이상 코딩을 하고, 최소 100명 이상 자기 코드를 가지고 리뷰해 본 사람이라면 탐을 내지 않을 회사가 없을 거다. 참고로 코드리뷰란, 프로그램 코드를 보면서 알고리즘과 제작과정 등에 대해서 이야기 를 나누는 개발자 문화를 말한다. 요리학원에서 서로의 요리를 맛보면서 피드백 해주는 상황을 상상하면 되는데, 이 과 정에서 각자의 정보, 경험, 지식 들이 전수되고 뒤섞이게 된다. 즉, 동료평가는 맞냐 틀리냐를 따지고 점수를 매기는 활동이 아니라, 서로의 지식과 경험이 뒤섞이고 전달되는 그런 학습활동이다. 그래서 동료평가를 영어로는 Peer-correction, peer-evaluation이라고 한다. 참고로, 이런 “상호 코칭”활동은 혼자서 공부하는 것보다 10배 이상 빠르다. 복잡한 상황에 대한 이해와 지식분해활동도 도와준다. 42는 혼자서 구글링 하면서 공부하는 “고립학습”을 극도로 죄악시한다. 2020년 코로나가 극심했을 때 대부분의 학생들이 집에서 고립학습을 했다. 당시 분위 기로는 누군가를 만난다는 것 자체가 민폐였기 때문이다. 이 때 학생들의 학습진도율은 매우 느렸다. 평균적으로 7일 소요되는 과제를 평균적
  • 67.
    67 으로 30일씩 걸려서풀었다. 그래서 “줌” 화상회의실을 만들고 학생들이 온라인으로 접속한 채 공부를 하게 했다. 그랬더니 30일씩 걸리는 과제일수가 15일 정도로 줄어들었다. 코로나가 주춤했을 때 학생들이 오프라인으로 등교를 했는데, 이 때 실험그룹에선 과 제일수가 3일로 줄어버렸다. 즉, 동료학습 효과는 고립학습대비 평균 10배 이상의 학습속도가 나고, 복합적으로 문 제상황을 인식할 수 있게 만들어 교육의 질을 올려준다. 바. 시험 42에도 시험이 있다. 동료평가는 “학습”활동이지만, 시험은 “평가”활동이다. 시험은 동심원을 돌파할 때마다 본다. 진급시험처럼 동작하며 시험을 통과해야 다음 단계로 나아갈 수 있다. 시험은 인터넷이 모두 차단된 상태에서 컴퓨터 앞에 혼자 앉아 코드를 짜서 제출하는 걸로 치러진다. 재미난 건 약 5문제가 나오는데 1번 문제를 못 풀면 2번 문제가 열리지 않는 방식으 로 구성되어 있다. PASS/FAIL 만 판단함으로써 자격요건을 검증할 뿐, 우열을 가리지는 않는다. 시험에 떨어진 학생들은 몇 번이고 다시 공부해서 도전할 수 있는데, 과제를 올바로 풀지 못했다면 통과하기 어렵다. 참고로 시험문제는 문제은행식으로 관리되어 시험을 볼 때마다 바뀐다. 시험 통과율이 낮다는 건 학습이 제대로 이루어지지 않고 있다는 뜻이다. 커뮤니티 분위기가 올바로 작동되지 않는다는 뜻이기 때문에 교육운영자는 긴장할 필 요가 있다. 어디가 문제인지 짚어봐야 한다.
  • 68.
    68 사. 역량 챠트 42에도성적표는 있다. 19개의 스킬이 스파이더 챠트로 표현된다. 의역을 하자면 “역량챠트” 정도 되겠다. 과제마다 다른 스킬들이 붙어 있다. 과제를 풀면 없는 스킬은 획득된다. 이미 획득된 스킬이라면 점수가 올라간다. 각 스킬점수가 모여 하나의 레벨로 환산된다. 21레벨이 만렙이고 “공통과정”을 끝내면 10 레벨이 되도록 설계되어 있다. 역량챠트가 성적표 역할을 하지만 상대적 지표 외에 큰 의미는 없다. 하지만 스킬 항목이 의미하는 바는 있다. 42의 교육내용을 바로 보여준다. 하드 스킬은 Unix, DB&Data 등 기초역량 육성에 포커싱 되어 있다. 재미난 건 Rigor, Group&interpersonal 같은 소프트 스킬도 포함되어 있다는 거다. 즉, 42의 교육은 하드 스킬 뿐 아니라 전인적 교육을 지향하고 있다는 거다. 참고로, 각 스킬들은 스태프에 의해 추가되기도 한다. 그림 15. 42 주요 역량 스킬(출처 : 42 Heilbronn)
  • 69.
    69 아. 게임요소 구성주의 교육모델은경험학습이자 놀이학습이다. 스스로 움직이려는 동기가 없다면 교육은 동작하지 않는다. 그래서 42는 동기부여를 위해 모든 곳에 “게임이론”을 사용한다. 첫 번째로 퀘스트 시스템을 넣었다. 학생들은 본과정에 합류하면, 제일 먼저 76일 이내 첫 과제를 깨야 한다. 그리고, 과 제를 클리어할 때마다 새로운 여유일수를 부여 받는다. 과제를 깨지 못하면, 학생들은 다시 도전해야 한다. 게임에서 던전을 정복하기 위해 반복하여 도전하듯, 42는 학생들이 그렇게 공부하도록 유도한다. 여유일수 내에 과제를 클리어하지 못하면, 학생들 계정은 만료 차단되어 버린다. 이런 시스템을 “블랙홀”이라고 부른다. 교육과정을 “태양계”로 표현한 데 착안한 것이다. 그것도 42가 “The Hitchhiker's Guide to the Galaxy”라는 소설에서 이름을 따왔다 는 모티브에서 착안한 것이다. 퀘스트는 꼭 깨야 하는 것도 있고 아닌 것도 있다. 어떤 퀘스트는 학생들끼리 힘을 모아 깨기도 한다. 예를 들면 해커톤에 참여하여 상을 받거나, 학교가 개최하는 이벤트에 참여하여 보상 을 받기도 한다. 두 번째로 “레벨업” 시스템을 넣었다. 학생들은 누가 빨리 10레벨에 도달하나 친구들과 내기를 한다. 혹은 “웹 프로그래밍”만 무지하게 키우는 친구들이 있다. 어떤 친구는 “그룹. 대인관계” 속성이 있는 이벤트는 무조건 참여를 한다.
  • 70.
    70 생각보다 레벨업 시스템은학생들에게 동기를 부여한다. 굉장히 소극적인 친구라도 “남들 가는 만큼은 따라가야지”라고 생각하게 된다. 세번째는 디지털 뱃지 시스템도 있다. “빌게이츠 뱃지”, “웰컴 뱃지” 같은 것들이 있다. 뱃지 시스템은 특정 행동에 대한 유도하기 위한 보상도구로 게임화에 많이 사용된다. 그런데, 이건 수집욕구가 강한 나라에서만 꽤 효과적으로 작용하는 것 같다. 우리나라 대학생들은 대부분 시큰둥했다. 아마 대부분 취업에 목매어 있어 그렇지 않을까 싶다. 네번째는 포인트 시스템과 월렛이 있다. 학생들이 동료평가를 받을 땐 “포인트”를 평가자에게 지불해야 한다. 돈을 주고 평가자의 시간을 사는 거다. 만일 포인트가 없다면, 다른 사람에게 평가를 해주고 “포인트”를 벌어야 한다. 즉, 이렇게 강제로라도 움직일 수밖에 없게끔 시스템을 구현했다. 학습행위 자체를 재미로 느끼게 하기 위해 42는 굉장히 많은 노력을 하고 있다. RPG 와 비슷하게 사회시스템을 차용하기도 했다. 사디락 교수는 아예 “워크래프트”처럼 만들 었다고도 한다. 그런데 이건 “구성주의 학습”이 가지는 어려움이기도 하다. 동기를 떨어뜨리지 않기 위해 학생들이 관심 가질 만한 것을 찾아 계속해서 자극해줘야 한다. 물론 학업몰입도를 떨어뜨리지 않는 수준에서 적절하게 진행되어야 한다.
  • 71.
    71 4. 교육운영 가. 전체교육과정 42는 학교로서 운영된다. 독특한 운영방식을 가지고 있는데, 교육과정 전체가 “사디락” 교수와 보컬팀에 의해 창조되었다. 한 번에 짠하고 만들어진 건 아니고, 에피텍과 웹아카데미를 거치면서 10년 넘게 튜 닝 된 것들이다. 그림 16 42 교육과정 (출처 : 42 쿠알라룸프) 42는 열림 선발을 한다. 미성년자만 아니면 아무나 지원할 수 있다. 가려서 뽑는 건 안되고, 반드시 아무런 제한 없이 학생들을 뽑아야 한다. 캠퍼스도 365일 24시간 개방을 해야 하는 게 계약사항이다. 캠퍼스는 가능한 도시 내의 교통 편리한 곳에 위치할 것을 권장한다. 학생들 접근이 쉬워야 하기 때문이다. 이건 편의를 제공하는 측면도 있지만, 집단학습의 특성 때문이기도 하다. 사람이 많아 야 교육이 잘 된다.
  • 72.
    72 점진적으로 시간이 흐르면서사람이 줄어드는 구조다. 매년 25%~30%씩 줄어들어 3 년이 되면 대부분 취업해버려서 남아 있는 사람이 없는 구조다. 졸업에 해당되는 지표는 “공통과정” 돌파율로 본다. 파리 캠퍼스 평균은 80% 전후로 다른 프랑스 대학와 비교하면 꽤 높은 편이다. 별도의 입학시험은 치르지 않고, 4주짜리 부트캠프를 통해 선발한다. 일반적으로 이 부트캠프까지를 “입학과정”으로 본다. 과정을 설명하면 이렇다. 가장 먼저 온라인 테스트를 본다. 간단한 그림 맞추기 게임인데 논리력, 인지력을 검사하기 위한 도구다. 이 게임은 컴 퓨터 학습이 가능한 수준을 아주 아주 포괄적으로 식별하기 위한 거다. 통과자에 한해 대면 방식으로 “체크인 미팅”을 한다. “입학설명회”라고 보면 된다. 42학교와 교육프로그램, 학습방식 등을 설명하고 지원의사를 확인한다. 입학신청은 “체크인 참가자”들만 대상으로 “신청”을 받는다. 선착순이다. 입학시험은 학교에 모여 4주짜리 교육프로그램을 받는 걸로 대신한다. “피씬”이라고 부르는데 프랑스어로 수영장이라는 뜻이다. “해병대 캠프”를 모티브로 구 성되었다. 학생들은 이 기간 동안 친구들을 사귀고 동료학습방법을 익혀야 한다. 전체 과정은 “인트라넷”이라고 불리는 IT시스템에 의해 진행되는데 완전 자동화시스템 은 아니라 “보컬팀”이 스케쥴을 관리, 통제해줘야 한다. 입학에 성공한 친구들은 IT시스템에 공식계정을 하나 받는 걸로 학교생활을 시작한다. 입학식 같은 건 없고 학교 내부의 튜터들이 나서 학교생활을 안내한다. 프랑스에서 피씬 탈락률은 높지 않다. 똑똑한 사람을 뽑으려는 게 아니라, 동료학습 부적응자를 탈락시키는 게 목적이기 때문이다.
  • 73.
    73 한국의 경우는 50%정도 탈락한다. 정부에서 정한 입학정원이 있기 때문이다. “공통과정”을 돌파하는 데는 평균 1.5년이 걸린다. 이후 프랑스에선 대부분 인턴생활을 3-6개월 정도 한다. 인턴생활이 끝나면 대부분 정직원으로 전환되는데, 돌아오는 친구들은 학업을 계속하기도 한다. 파리캠퍼스에는 8년 이상 학교에 오는 친구들이 있다. 그야말로 고인물로, 개교 이후 계속 학교를 들락날락하고 있는 거다. 학위나 졸업식은 없다. 프랑스의 경우 학생들은 졸업을 원하는 시점에 “학업인증서”와 “인턴사실확인서”를 출 력해간다. 두 개는 입사시에 거의 필수여서, 이 두 가지 발급사실로 취업여부를 확인한다. 나. “피씬” “피씬”에 대해서 좀 더 자세하게 설명해 본다. 모든 교육은 원하는 Output을 만들어내기 위해 Input을 조절하고자 한다. 차별 없는 보편성을 기반으로 하지만, 최소한 인적 동질성은 확보하고자 한다. 요리학교가 요리 싫 어하는 친구들을 굳이 선발할 이유는 없기 때문이다. “피씬”은 동료 학습과 커뮤니티에 맞는 친구들을 식별하기 위한 교육프로그램이다. “해병대 캠프”처럼 운영되는데, 그룹과제를 할 때 낙오자를 챙기지 못하면 모두에게 빵점을 준다. 연대책임을 지움으로써 우리는 하나의 공동체라는 인식을 새겨준다. “피씬”은 4주 프로그램으로 운영된다. 개인과제, 팀과제, 시험을 매주 반복해서 치러야 한다. 개인과제는 C의 기본문법과 용법을 익히도록 구성되어 있으며, 팀과제는 협업을 해볼
  • 74.
    74 수 있도록 작은프로젝트가 제공된다. 시험은 컴퓨터 앞에 홀로 앉아서 코드 짜는 걸로 제출되는데, 문제를 제대로 풀었다 면 충분히 풀 수 있는 문제들이다. 학생들은 이 과정을 통해 혼자 하면 실패하고 함께 해야 살아남는다는 걸 체득한다. 그리고, 옆사람에 물어보는 걸 전혀 꺼리지 않게 된다. 이런 변화는 사실 42가 학생들에게 주고 싶은 가르침의 엑기스다. 만일 눈치 빠른 친구가 있다면 4주짜리 피씬 과정만 해도 42를 학습한 거다. 본과정은 공부해야 할 범위가 더 넓어지고 좀 더 다양한 커뮤니티 활동을 통해 사회 적 경험을 풍부하게 만드는 과정일 뿐 핵심은 똑같다. 최종 선발은 모든 점수를 집계하여 통합점수로 판단한다. 환산식은 비공개로 되어 있 는데, 각 캠퍼스별로 다르게 평가할 수 있다. 그런데 점수만으로 판단하진 않는다. 선발 때 “피씬”을 모니터링했던 “보컬팀”의 의견은 매우 지배적으로 반영된다. 커뮤니 티는 분위기가 흐려지면 전체 교육이 망가지기 때문에, 매우 엄격하게 부적격자를 골라 낸다. 예를 들어 코드를 베껴가며 진도를 뽑는 친구들은 탈락이다. 제보가 들어오면 “보컬팀” 이 면담을 통해 확인한다. 조금이라도 의심이 가면 과제를 다시 풀게 한다. 어떤 친구들에겐 경고를 날리기도 하고, 패널티 점수를 주기도 한다. 피씬 태도가 불 량한 사람은 퇴소를 시켜버린다. 판단 기준은 “학습집단의 보호”다. 집단학습은 분위기가 망가지면 돌이킬 수 없다. 노력하지 않고 요령으로 성과를 얻거
  • 75.
    75 나, 스스로 성장하지않는 사람들은 집단의 면학분위기를 흐트린다. 그런 분위기가 만연되면 아무도 서로 돕지 않고, 문제풀이에만 집착하게 된다. 참고로, “피씬” 과정을 C 로 운영하는 이유가 있다. C는 절차지향형 언어로 꽤 오랜 기간 동안 “교육용 언어”로 활용되어 왔다. 즉, 메모 리 관리만 아니면 배우기 정말 쉽다. 그리고, 컴퓨터 동작 구조와 아주 정직하게 연결되 어 있어 컴퓨터를 이해하기에 매우 적합하다. 일례로 2020년 2기 한 명은 “불문학과” 친구였다. 피씬에 들어오기 전에는 “코딩”에 “ㅋ”자도 몰랐다. 단지 코딩에 대한 호기심에 지원했을 뿐이었다. 그런데 피씬이 끝났을 때 그 친구는 종합평가에서 1등을 했다. 다만 피씬 기간 동안 열심히 친구들을 붙잡고 이것저것 물어가며 하루에 10시간씩 공부를 한 거다. C는 “공통과정”에서도 폭넓게 쓰게 한다. 불필요한 언어 논쟁에서 벗어나 컴퓨터가 움직이는 동작원리에 집중하기를 바라는 거다. 다. 신경 써야 할 것 이 교육모델에는 신경 써야 할 것들이 있다. 첫째, 동료수준이 고만 고만하면 “학습”이 일어나지 않는다. 비슷한 수준의 사람들, 비슷한 성향의 사람들을 모아 놓으면 학습이 일어나지 않는다. 지적 평형상태이기 때문이다. 즉, 학습 집단의 구성 상태가 교육효과에 영향을 미친다. 학습은 지적 불균형 상태일 때 일어난다.
  • 76.
    76 학습은 선불교처럼 깨달음이아니다. 지식은 모르는 사람이 아는 사람에게서 배우는 거고, 경험은 안 해본 사람이 해본 사람에게서 배운다. 경험의 종류가 많을수록 다양한 방향으로 흐름이 일어난다. 42는 연구자를 키워내는 학교가 아니므로, 뛰어난 사람을 선발하기보다 다양한 사람 들이 혼재하도록 구성한다. 잘 하지 못해도 뽑는다. 동료학습을 통해 성장하는 사람이 중요하다. 그런데 여기에선 “성장”도 중요하게 봐야 한다. 동료학습을 아무리 잘해도 성장하지 못하면 학습법이 안 맞는 거다. 42의 커트라인들 은 충분히 기다려주는 편이다. 그걸 넘지 못하면 아쉽게도 헤어지는 게 맞다. 둘째, 코칭 분위기가 형성되지 않으면 학습이 일어나지 않는다. 42에선 질문을 슬랙에 올린다. 실시간 소통성이 높기 때문이다. 그런데, 2020년 중반 학생들 사이에서 “핑거프린세스” 논쟁이 일기 시작했다. 구글 검색만 간단히 해보더라도 알 수 있는 내용을, 검색도 안 해보고 질문을 올리냐 는 것이었다. 일부 전공자들이 주도했고, 다른 전공자들도 동조를 했다. 슬랙이 점점 그런 분위기로 바뀌고 한 달쯤 지나니까 아무도 질문을 올리지 않았다. 이후 전체적인 학습진도는 정체되어 버렸다. 비전공자들이 도움을 얻을 곳이 없어지자 슬그머니 다른 교육과정으로 갈아타기 시작했다. 맞는 말이냐 틀린 말이냐가 중요한 게 아니다. 서슴없이 묻고 답할 수 있느냐 하는 게 중요하다. 42의 교육방식은 스스로 깨우치는 게 아니다. Teacher를 동료로 바꾼 모델이다. 자유롭게 질문하고 답하는 분위기가 형성되지 않으면, 학습은 일어나지 않는다.
  • 77.
    77 그러면 다시 강사에의존한 교육을 해야 한다. 교육정체성이 깨지는 거다. 상호 코칭을 통해 동반성장 하는 분위기가 문화처럼 형성되어야 교육이 동작한다. 셋째, 학생수가 작으면 학습이 일어나지 않는다. 42는 하나의 학습 집단을 최소 150명 이상으로 구성하라고 말한다. 사실 효과적인 학습은 3-5인 단위의 작은 그룹에서 잘 일어나는데 왜 이렇게 많은 학생수를 뽑으라고 할까? 42는 내가 모르는 문제를 코칭 해 줄 동료를 계속해서 찾는 모델이기 때문이다. 집단의 수가 작으면 지식 수준이 고만고만하기 때문에 금방 배울 게 없어진다. 실제로 1기 선발 때 약 90명으로 “피씬”을 치른 적이 있었다. 사람수가 적은 만큼 분위기는 화기애애 했는데, 전공자 한 명에 의해 전체적인 분위 기가 움직였다. 문제는 그러면서 대부분의 코드들이 비슷해지는 현상이 일어났다. 집단의 수가 적으면 경험의 다양성이 적어져 입체적으로 문제를 바라볼 수 없게 된다. 42는 정답을 찾는 게임이 아닌데, 분위기는 하나의 정답으로 통일되어 간 거다. 안타깝게도 42가 가장 피하고 싶은 상황이다. 라. 교육설계 42교육은 중앙 집중형 모델이다. “교육설계”는 파리캠퍼스의 “교육팀”이 하며, 글로벌캠퍼스는 운영만 한다. “공통과정” 은 42의 고유자산이며 지적재산권 보호대상이다. 새로운 교육프로그램이 필요할 땐 파리 캠퍼스 “보컬팀”에게 요청한다. 제작일정, 내용은 다 “보컬팀”에게 일임하기 때문에, 원하는 결과물이 잘 안 나온다.
  • 78.
    78 만일 우리가 콘텐츠를제작하여 교육과정에 반영되면, “파리캠퍼스”도 지적재산권을 갖게 된다. 즉, 글로벌로 공개 가능한 콘텐츠만 제공할 수 있다. 참고로 학생들이 만든 결과물은 모두 학생들이 소유한다. 과제 결과물도 마찬가지다. 그런데 교육설계란 어떤 일을 하는 걸까? 2014년에 42 학생이었던 “로리메자르” 사례를 들어보자. 그녀는 당시 42교육문제를 해결하기 위해 “게임화”를 제안했고, 이걸 계기로 42보컬 팀에서 일하게 된다. 그리고, 한 해 동안 “게임요소 개발”과 “멘토링 프로그램”에 대한 교육설계를 담당했다. 그녀는 당시의 경험을 자기 블로그에 이렇게 소개했다. 그림 17. 42과제에 게임요소 추가 제안(로리메자르, 42교육팀, 2015) 2013년, 42의 초기모델은 동료학습 방식이긴 했지만 정해진 수업일정이 있고 데드라 인에 맞춰서 과제를 제출하는 방식이었다. 2014년, 42제작자들은 각자 자기 퀘스트를 선택하는 방향으로 교육방식을 바꾸었는데 학습 일정까지 스스로 관리하게 만들었다. 그런데 이렇게 하니 재학생 중 50% 이상이 학업에 몰입하지 못하고 방황하기 시작했 다. 당시 그녀는 42학생이었는데 이 문제를 “게임화”를 통해 풀어 보기로 “보컬팀”에 제
  • 79.
    79 안을 한다. 그녀는 이문제를 이렇게 정의했다. 첫째, 과제가 너무 많이 나열되어 있어 어떤 걸 선택해야 할지 모르겠다. 첫 번째 과제를 풀면 그 다음 과제가 50개 정도 한꺼번에 열린다. 하지만, 사람들은 5개 이상의 선택사항이 생기면, 심리학적으로 포기하는 경향이 있다. 선택사항을 3개 정도로 좁히고, 점진적으로 과제를 열어 주자. 둘째, 과제에 대한 “정보”가 기술되어 있지 않다. 과제 정보에 관련기술, 영상링크 등은 있는데, 학습목표나 과제간 관련성이 없다. 그래 서 어떤 과제를 풀어야 할지 모르겠다. 과제 첫 페이지에 이건 뭐하는 프로젝트이고 왜 해야 하는지를 설명해주면 좋겠다. 셋째, 많은 과제들이 무의미하게 나열되어 있다. 인지과학에 따르면, “문제를 푸는 순서는 학습 결과를 다르게 만든다. 풍부한 환경에 학생들을 방치하는 것은 장기적으로 상황 판단력을 흐리게 만든다.”라고 한다. 내가 지금 전체 지도 중에서 어디를 지나고 있는지, 다 배우고 나면 뭘 할 수 있게 되는지 등을 알 수 있으면 좋겠다. 과제를 어떤 순서로 풀어야 할지 힌트가 있으면 좋겠 다. 초보자들이 갑자기 만렙 문제에 도전하는 일이 없었으면 좋겠다. 학업의지가 상실된다. … 등등 그녀는 총 7개 문제를 지적하고 각각의 해법을 제시한다. 그녀는 자기 주장을 뒷받침하기 위해, 인지과학의 “자기결정이론”과 “자기통제학습이
  • 80.
    80 론”을 설명했다. 모두다 채택된 건 아니지만, 2014년의 이 제안은 학생들이 동기를 잃 고 방황하던 대부분의 문제들을 해결했다. 이후 42 제작자들은 게임화에 대해서도 관심을 가졌고, 2015년엔 “해리포터 기숙사” 개념도 추가해 넣게 되었다. 마. 본과정 운영 학교에는 “교육장”으로서의 기능이 있다. 교수자가 없지만 교육장으로서의 역할이 없어지는 건 아니다. 학생들을 관찰하고, 학업을 평가하고, 부진자를 관리해야 한다. 전통적인 교육에선 교 수자가 하는 일이다. 하지만 교수자가 없으니 다른 누군가 해야 한다. 42에선 “보컬팀”이 이 역할을 한다. 다만 학업 자체에는 개입하지 않는다. 집단학습 전체를 관리하고, 정책적인 개입을 하고, 분쟁과 갈등을 해결한다. 원칙은 이렇다. “공부하고 성장하는 역할은 학생의 것이니 학생이 한다.” “교육시스템을 유지하고 발전시키는 것은 42의 역할이니 보컬팀이 한다.” “교수자 중심의 교육법”에선 이게 구분되어 있지 않다. 그래서 교수자 혼자 다했다. 학생들을 성장시키는 것까지 교수자의 역할과 책임이었다. 이 교육모델에선 학교가 학생들 “학업”을 책임지지 않는다. 개입해서도 안 된다. 다만 좋은 “교육환경”으로서의 역할은 충실히 한다. 42 교육모델은 커뮤니티 모델에 기반하고 있다.
  • 81.
    81 선배들이 후배들을 키우는방식으로 성장한다. 주변의 여러 사람이 한 사람을 돌봐준 다. 일방적인 관계로 작동하진 않고 양방향으로 작동한다. 가장 중요한 건 본인 스스로의 의지다. 학교는 동기를 잃지 않도록 계속해서 내적, 외 적 자극을 해준다. 학교에는 여러 명의 “튜터”들이 있다. 튜터 역할은 조력활동, 가이드 활동이다. “공통과정”을 클리어한 선배들이 한다. 자기가 문제를 풀었던 경험, 자기 생각, 참고했 던 교재 등을 이야기해준다. 지적 평형활동을 말한다. 이벤트 운영이나 교내 관리활동은 학생들 협회(coalition)가 주도한다. 이 협회는 4개로 나뉘어져 있는데, 입학하면 자동적으로 배정된다. 한 협회 당 약 1,000명으로 구성되는데 총학생회나 사회봉사 단체처럼 동작한다. 학교발전 활동에 자원봉사를 이끌어내고, 학교정책을 전달하는 일을 한다. 파리캠퍼스에는 기업들이 많이 찾아온다. 이건 약간의 통제를 한다. 학생들을 저임금 노동력으로 생각하고 오는 경우, 피해사례가 잇달았기 때문이다. 학교는 학생들이 다치지 않도록 보호해줄 필요가 있다. 국내의 경우도 비슷한 케이스가 많다. 학생들을 숙련된 저임금 노동력으로 생각하는 기업들이 꼭 있다. 대부분 좋지 않게 끝나거나 법적 갈등으로 번지기도 한다. 이는 학생들에 대한 이해가 부족하기 때문이다. 학생들은 아직 초보개발자가 아니다. 취업 기준에 이르지 못한 사람들이다. 간혹 잘하는 친구들도 있지만, 상위 1% 수준에 불 과하다.
  • 82.
    82 직원구성은 어떻게 될까? 파리캠퍼스의경우 학생들이 4,000명 정도 되는데, 직원규모가 30명이다. 팀제로 운영되지 않기 때문에 구분하기는 어렵지만, 역할로 나누자면 교육팀, 커뮤니 케이션팀, 마케팅팀 정도로 나눌 수 있다. 교육팀은 전체적인 교육시스템을 관리한다. 교육모델과 교육컨텐츠, IT시스템을 모두 관리하고 통제한다. 커뮤니케이션팀은 상호소통을 관리한다. 학생들과 기업들을 대상으로 한다. 갈등을 해 소하고 집단활동이 의도대로 일어나도록 조율한다. 교육이 제대로 운영 되고 있는지는 어떻게 파악할까? 여러 가지 지표가 있다. IT 시스템 내에 학생들의 “학습속도”, “시험통과율’”, “공통과정 통과율”, “학습시간” 등을 여러 가지 것들이 기록된다. 핵심관리 지표는 “경험치”다. 학생들이 습득하는 모든 경험은 경험치로 환산된다. 가 장 큰 경험치를 주는 것은 역시 “과제풀이” 활동이다. 경험치가 차곡차곡 잘 쌓이고 있다면, 학교가 제대로 운영되고 있는 거다. 그렇지 않다면 학교는 제 역할을 못하고 있는 거다. 여러 가지 정책적 변화를 할 필 요가 있다. 42는 이런 노하우를 매월 글로벌 캠퍼스 회의를 통해서 공유한다. 스태프들이 자기네 캠퍼스 이야기를 하고, 거기에 대해 서로서로 피드백을 해준다. 중학교 교사 커뮤니티처럼, 스태프들도 그렇게 서로를 학습하고 성장한다. 바. 번아웃 관리 동료학습은 생각보다 학생들에게 스트레스가 높다.
  • 83.
    83 교재가 없고 교사가없다 보니, 처음에는 물어볼 곳이 없어 헤맨다. 같이 하던 팀이 깨지기도 하고, 새로운 동료를 구하지 못해 과제가 한동안 뒤쳐지기도 한다. 그런데 그러다 보면 어느 날 현타가 온다. 번아웃 현상이다. 생물학적으로 이 상황은 막아지거나 통제되지 않는다. 쉬어야 한다. 그래서 42 에는 AGU(Anti Gravity Unit)라는 기능이 있어 학업을 잠깐 멈출 수 있다. 일종의 휴학제도이다. “블랙홀”에 빠지는 걸 방어한다는 개념으로 역시 “우주”라는 모티브 에서 차용한 개념이다. 무작정 쉴 수는 없고 몇 개월 단위로 제한이 있다. “동기”가 이끄는 학습모델인 만큼, 꽤 많은 기능들이 학생들을 배려하고 있다. 꽤 괜찮은 시스템이라는 생각이 든다. 사. 산학연계 42 에는 “파트너쉽”을 별도로 관리한다. 산학연계 프로그램처럼 운영된다. 해커톤이나 비즈니스스쿨 등에도 연계되어 있다. 단, 학업 프로그램으로서 운영된다. 학생들이 사회경험을 쌓을 수 있도록 유도한다. 42 정규프로그램 이외의 것을 기록하 고 관리하도록 되어 있다. 학생들이 해당 프로그램을 하고 돌아오면, 보컬팀이 면담을 하거나 간단한 확인을 통 해 경험치로 환산해준다. 굳이 우리나라 제도에 비유하자면, 고등학교 “생활기록부” 정도 된다. 이런 걸 관리하는 이유는, “소프트 스킬”을 함께 성장시키는 게 교육목표이기 때문이 다. 취업이 잘되는 편이기 때문에 42는 취업연계엔 큰 노력을 들이진 않는다.
  • 84.
    84 스타트업이 학생들과 함께“커뮤니티”처럼 활동하기도 한다. 프랑스 리옹캠퍼스엔 42 Artificial Intelligent 라는 커뮤니티가 있는데, 스타트업 개발 자들 포함 12명의 참여자로 구성되어 있다. 오픈소스를 만들고 이것저것 연구활동을 하는데, 여기 결과물들을 “심화과정”의 AI 과 제로 반영되기도 했다. 이런 팀들은 자연스레 그 스타트업에 흡수되기도 한다. 아. 인턴쉽과 취업 “에꼴42”의 취업률 100%. 프랑스에선 맞는 이야기겠지만, 다른 국가에선 안 맞는 이야기다. 프랑스는 인턴쉽이 매우 활성화되어 있고, 이를 통해 취업하는 케이스가 거의 100% 다. 프랑스 제도 때문이다. 보통 첫 인턴쉽에서 2/3정도가 정직원으로 고용된다. 프랑스의 인턴쉽은, 1988년부터 시작되었다. “연구인력 및 R&D 엔지니어 고용지원제도”라는 게 발표되었기 때문이다. 중소기업이 1명 이상의 박사를 고용할 경우, 신규 채용 첫해에 한해 연봉의 일부를 정부가 지급한다. 상황마다 다르겠지만, 지차제 지원금 등을 합하면 인턴 채용 시, 기업 은 연봉의 25% 정도만 부담할 수 있다. 인턴채용을 안 할 이유가 없다. “인턴쉽 참여 확인서”는 학교가 발부하며, 거의 모든 대학교의 졸업조건에 포함되어 있다. 의무사항처럼 작동하고 있는 거다. 42 교육과정에도 이 흔적이 남아 있다. 원래 “공통과정”의 마지막 과제는 “인턴쉽”이었다. 3개월 동안 인턴쉽을 하고 돌아온 친구들에게만 과제통과를 시켜준 거다. 그런데 2020년 이 과제가 바뀐다. 해외캠퍼스 보급이 확대되면서, 인턴쉽을 충분히
  • 85.
    85 보낼 수 없는나라들이 많아진 거다. 그래서 42는 마지막 과제를 “인턴쉽”에 준하는 “웹 프로그램” 과제로 바꾸었다. 간단한 멀티플레이 웹게임은 만드는 것인데, 기본적인 CRUD, 통신, pub/sub 구조설 계 등이 포함되어 있어 난이도가 꽤 높은 편이다. 현업 CTO 로서 내리는 판단은, 이 정도 프로젝트에 참여해서 자기 몫을 할 수 있다 면 솔직히 국내 기업도 쉽게 취업할 수 있다고 생각한다. 5. 인트라넷 42교육은 “학습내용”은 콘텐츠 DB로 구축하고 “학습기능”을 자동화, 학생들이 알아서 할 수 있게 함으로써 교육과정 전체를 디지털 전환시킨 세계적인 우수사례다. 그만큼 IT 시스템이 차지하는 무게는 매우 크다. 42교육 그 자체라고 말할 수 있다. 42에선 이 IT 시스템을 “인트라넷”이 부른다. 교육업무가 진행되는데 필요한 모든 것 이 들어있기 때문이다. 학생들과 교직원들이 함께 쓰고 있다. 보통의 학교에는 여러 개의 IT시스템이 운영되고 있다. 크게 구분하자면 교육 관리 + 교육행정 + 학교행정 세가지로 나눌 수 있다. 용어는 학교별로 다를 수도 있지만, 개념과 역할들은 비슷하다. 시스템 종류 주요내용 학습관리시스템 (교육시스템,LMS) 교육이 일어나는 행위에 중점을 둔 시스템  (학생관점) 수강신청, 수업참석, 시험평가  (교사관점) 수업개설, 수업진행, 수업평가 등 학사관리시스템 (학사행정=교육행정) 교육관련 업무에 중점을 둔 시스템  (학생관점) 입학, 휴학, 졸업, 각종 증명서, 등록금  (교육과정) 대학원, 대학, 단과대학, 교육과정 개설, 중지 등  (학교관점) 학적부, 장학금관리, 취업관리, 학생증관리, 교육인증 등 학교관리시스템 (교육행정,일반행정) 학교전체 운영에 중점을 둔 시스템  (시설관리) 교실, 네트워크, 전기설비 등
  • 86.
    86  (직원관리) 교원선발,교원평가 등  (회계관리) 교육회계  (기타) 급식관리, 발주 관리 등등 표 11.일반적인 대학교의 전산시스템 학습관리시스템(Learning management system)은 교육행위에 집중한다. 전통적인 교육에선 “수업”, “출석”, “시험”, “성적” 등이 포함된다. 학사관리시스템은 교육행정 시스템이다. 휴학, 졸업, 증명서 및 교육과정 개설, 중지. 교수평가 등도 관리한다. 학교관리시스템은 교육시설관리, 재정관리 등을 말한다. 42에는 “학습관리”와 “학사관리”가 혼합되어 있다. “교수자 중심 수업”이 아니기 때문 에 꽤 복잡하고 정교하게 구현되어 있다. 다만 학교관리시스템은 없다. 최근 글로벌 캠퍼스로 확장하면서 학사관리의 범위가 조금 애매해졌다. “인턴사실 확인서” 나 “42 학업인증서” 같은 건 우리나라에선 쓸 데가 없다. 요구하는 기업들이 없기 때문이다. 반면 무엇을 잘하는지에 대한 역량 조견표 같은 건 보고 싶어한다. 스킬 챠트 같은 걸 보여주면 좋을 텐데 그걸 출력하는 기능은 없다.
  • 87.
    87 그림 18. 프로젝트형학습시스템 개요(출처 : 엘리스르보, 파리 장뮬랭대학, 2016) 42 시스템은 비공개다. 그래서 공개된 “프로젝트 기반 학습 시스템”구조도를 가져와 보았다. 42 도 비슷한 느낌이긴 한데, 꽤 다르게 구축되어 있다. 이런 IT시스템을 우리나라에선 Learning management system(이하 LMS)라고 부르 는데, 교육방식이 다르기 때문에 모습이 많이 다르다. 다만, 학습지도나 행동교정을 하기 위해 학습활동을 모니터링하고 피드백 할 수 있도 록 다양한 기능들이 개발되어 있다. 6. 자주 묻는 질문 (1) 차별화되는 특징이 무엇인가? 한마디로 요약하자면 이렇다. “스스로 성장할 수 있는 인력을 배출해낼 수 있다.” 이 문장 아래에는 자발적, 능동적 이런 단어 등이 포함된다. 이런 역량은 소프트웨어
  • 88.
    88 개발자에게 중요한 역량인데,교육학적으로는 “디지털 역량”이라고 한다. No Teacher, No Classes, No Course, No Textbook 등은 그런 인력을 배출하기 위 한 교육방식을 의미한다. 지식전달이 아니라 기술훈련이라는 측면에서 이러닝과는 확연히 다르다. 이런 훈련환경을 전부 디지털 트랜스포메이션 함으로써, 관리인력 없이 무인으로 돌아 간다는 점도 특징이다. … 는 아니다. 교육행정인력, 교수자 등 직접인력이 없다는 것이지, 커뮤니티를 관리하 기 위한 인원과 IT시스템을 운영하는 인력 등은 필요하다. 물론 대부분의 인력은 학생들 자치활동으로 커버한다. 다만, IT시스템 내에 교육환경이 패키징되어 있어, 이러닝처럼 훈련교육을 표준적으로 보급확산하기 좋다는 거다. (2) 에꼴42 조직은 어떻게 운영되나? 에꼴42 홈페이지(http://www.42.fr)에 가면 직원들 명단과 역할을 볼 수 있다. 파리캠퍼스는 전체 팀원이 30명 정도로 별다른 팀제 없이 수평적으로 운영된다. 처음에는 “보컬팀” 혼자 모든 걸 다했다. 학생들이 많아지면서 “커뮤니케이션팀”이 추가되었다. 보컬팀은 교육설계, 교육운영, 시스템 개발 등 교육의 정체성과 관련된 것들을 모두 담당한다. 커뮤니케이션팀은 커뮤니티 내 소통 및 갈등관리, 기업대응 등을 담당한다. 2021년에 글로벌 캠퍼스가 40개 이상으로 확장되면서, 개발파트 충원이 많아졌다. 2022년에는 마케팅 충원 등으로 60명, 2023년 2월에는 80명 수준으로 늘어났다. 처음에는 직원 1명이 1,000명의 학생들을 감당하는 구조로, 교육의 효율성과 가성비 를 많이 강조했는데, 2021년 이후 그런 이야기를 하지 않는다. 마케팅 전략이 좀 바뀐 것 같다.
  • 89.
    89 (3) 글로벌 캠퍼스의운영인력은? 42는 시스템을 보급함으로써 교육이 보급되는 구조다. 시스템 안에 교육 콘텐츠와 교 육방식이 모두 담겨 있다. 그래서, 캠퍼스 운영인력은 10명 이하로 운영된다. 작은 인원으로 유지가 되는 이유는 단순운영만 하기 때문이다. 프랜차이즈처럼 메뉴 개발이나 연구는 본사가 하고, 각 매장은 단순판매만 한다. 각 캠퍼스가 커리큘럼을 만들 수는 있는데, 42 이름으로 운영할 순 없다. (4) 멘토가 필요한가? 42는 이렇게 말한다. “멘토는 없어야 한다. 학생들에게 정답을 줄 수 있는 모든 전문가는 제외되어야 한다. 왜냐하면 학생들 스스로 답을 찾아야 하기 때문이다.” 이렇게 생각하는 이유는 “지식”이 아니라 “고기 낚는 법”을 가르쳐주는 게 이 교육의 정체성이기 때문이다. 외부 전문가가 개입하면 학생들에게 “전문가 의존성”이 생긴다고 본다. 하지만, 학생들로 구성된 “튜터”의 개입은 좋다고 생각한다. “튜터”는 어려움을 겪고 있는 학생들에게 자기 경험이나 기술에 대한 견해 등을 이야 기해준다. 보통 공통과정을 통과한 친구들이 지원을 한다. 멘토와 튜터의 차이점은 42철학을 이해하냐 마냐이다. 즉 42교육은 극도의 자립성, 자발성을 추구한다. 이건 각 나라의 문화나 교육자의 철학에 따라 시각이 달라질 수 있다. 42교육은 명확히 “42 본사 교육팀”의 시각에 따라 운영된다.
  • 90.
    90 (5) 진짜 교육이되는가? 해외에서 공통과정을 탈피한 친구들을 만나보니 어떤 공통점이 있었다. 장점으로는 모두 기본적으로 코딩을 했다. 굉장히 기술문제에 대해 진지했다. 고민하 고 파고드는 태도를 공통적으로 가지고 있었다. 토론과 논쟁도 활발했다. 다만, 너무 논쟁에 치우쳐서 뭔가 결론을 내기 힘들어했다. 그러다 보니 답을 찾느라 시간이 매우 오래 걸렸고, 좀처럼 프로젝트가 진행되지 않았다. 그리고 이론학습을 정식으로 하지 않다 보니, 이론적 접근 능력도 조금 약했다. CORS13 에 대한 개념, https와 http의 차이점을 설명하는 것에 굉장히 어려워했다. ERD, 트랜잭션에 대한 개념 등도 낯설어 했다. 42과제에 비슷한 내용들이 있기 때문에 직접 코딩을 해내는 능력은 떨어지지 않았다. 다만, 이론적 베이스가 부족하다 보니 사고를 확장하거나 크게 보는 능력이 약했다. 분명히 장점이 있긴 했지만, 결과를 평가하기엔 뭔가 애매했다. 현업 CTO로서 바란 기대치에는 한참 못 미쳤다. 일단 우리나라 기업들의 눈높이를 맞춰주지 못할 거라는 건 명확했다. 그래서 42가 우리사회에서 경쟁력이 있을까? 어떤 부분을 보완해야 할까? 고민이 많 이 되었다. (6) 기업들 평가는 어떤가? 프랑스의 경우 대부분의 친구들이 “스테이션 F” 내 기업에 취업을 한다. “스테이션 F”는 자비에르 니엘이 세운 스타트업 인큐베이터 공간이다. 1,000개 정도의 13 CORS, https, http, ERD, 트랜잭션 등 : 컴퓨터 전문 용어인데, 실제로 있었던 일이다. 독자가 일반인이 라면 그냥 넘어가자.
  • 91.
    91 기업들이 입주해 있다.거기 스타트업들의 평가는 꽤 괜찮은 편이다. 적극성이 높다고 한 다. 프랑스 일반 기업의 시각은 조금 다르다. “SAP 프랑스”에 근무하는 지인의 이야기를 들어보면, 그냥 일반 개발자 수준이라고 한다. 다만 “사회적 아웃사이더”들이 대부분이라 그런 성향을 찾는 기업들이 많이 방문한다고 한다. 우리나라의 경우도 비슷하다. 공통점으로는 “자발적”이면서 “협력적”이라고 평가 받는다. 대부분 빨리 배우고 조직 적응력이 빠르다고 한다. 다른 부트캠프 대비 뚜렷하게 보이는 차이점이다. 반면 신입사원의 기술 수준에 대해서는 크게 감동이 없다. 사실 기업들의 기대가 크 지 않기 때문이다. 실제 다른 부트캠프와 섞어서 인턴쉽을 해보았을 때 차별성이 두드러 질 정도는 아니었다. 그리고 스타트업 보다는 중견기업 이상의 취업률이 높다. 즉, 졸업생들의 성향이 약간 더 모범적이면서 능동적이긴 했다. “더 커다란 무엇이 있는가?”라고 묻는다면, 단호하게 이야기할 수 있다. 그런 건 없다!!! 즉, 42교육 자체로는 뭔가 드라마틱한 스토리를 만들어내는 건 아니다. (7) 대학교에서 활용 가능한가? 어떤 교수님 한 분이 이런 질문을 해주신적이 있다. “다음 학기에 AI코스를 개설할 예정인데, 실습과제나 교육환경이 없어서 에꼴42를 활 용할 수 없겠냐” 해 드린 대답은 “안 된다.”이다. 현재 42는 5년제 대학교 모델로만 운영이 가능하다.
  • 92.
    92 3개월이나 6개월짜리 단기코스로운영할 수 없다. 시스템 적으로 제공되지 않는다. 집단학습 모델 자체가, 어느 정도 경험이 축적되어야 만 학습이 진행되는 구조라 단 기성과를 내야 하는 교육코스로는 운용하기 힘들다. 교육과정도 파이썬, php, Ruby 같은 언어코스들이 개발되어 있지만, 메인은 “생존스 킬개발”이라 중요도는 낮은 편이다. AI, 메타버스 같은 최신 과정 개설도 느린 편이다. 구조적인 문제가 있다기 보다, 파리캠퍼스의 일 처리가 늦게 때문이 아닌가 싶다. 교육과정 개설이 파리캠퍼스에 의존적이기 때문에, 이런 협업 니즈에 대해 적극적으로 대응하기는 어렵다. (8) 부족한 기술은 어떻게 가르치나? 42과제만으로는 취업이 어렵다는 걸 학생들은 이미 알고 있다. 졸업자들이 말해주기 도 하고, 학기 중간에 면접을 직접 보기도 한다. 그러면서 알게 된다. 다른 것도 공부해야 한다는 것을!!! 그래서, node.js 나 Java같은 취업형 기술을 병행으로 공부한다. 따로 가르쳐주진 않 는다. 학생들이 알아서 공부하는 걸로 충분하다. 42의 “공통과정”에 대해선 회의적이다. 재미없고, 어려워한다. 너무 기본기 내용이라 취업에 도움이 될 거라곤 생각하지 않는다. 마지막 과제 A 정 도가 면접질문에서 할 만한 내용이다. 다만, 전 과제를 코딩으로 해보는 것은 신선한 경 험으로 받아들인다. 제일 긍정적으로 평가하는 건, 친구들이 많다는 거다. 그 전에는 코딩을 배워보고 싶어도 같이 하는 친구들이 없어서 헤매기만 했다. 그런 데 여기에 오면 나와 처지가 비슷한 사람도 있고, 나보다 나은 사람들도 있어 물어볼 곳 이 많다. 그것만큼은 다른 곳에서 접하지 못하는 거라고 생각한다.
  • 93.
    93 (9) 우리나라에도 42가필요한가? 42 같은 국제캠퍼스가 하나쯤 운영되는 건 나쁘지 않은 것 같다. 선택은 학생들과 기업들이 하는 거다. 학생들이 이 학교에 와야 하고, 기업들이 학생 들을 잘 채용해줘야 교육기관으로서의 역할을 하는 거다. 다만, “42가 기존 학교를 대체할 수 있을까”라고 묻는다면, “No”라고 대답할 수 있다. 이 교육은 친절하지 않다. 친구들과 사귀는 게 부담스럽거나, 수동적인 친구들은 맞지 않다. 더구나 도와주는 전문가들이 없어 성장하는데도 한계가 있다. 42가 이 교육법을 고수하는 이유는 오직 생존 스킬을 훈련하기 위한 거다. 그러다 보니 충분한 시간을 기다리고 지켜봐 줘야 한다. 3-5년제로 운영할 수밖에 없 다. 그렇게 배출된 인력이 우리기업에 맞을지는 기다려봐야 안다. 42의 시도들은 교육 관점에선 참신하고 혁신적이다. 성공적으로 개발하고 운영하고 있다는 것에도 박수를 쳐줄 만하다. 다만 사업전략이 애매하다. 커스터마이징을 할 수 없어 우리 현황에 맞는 교육을 할 수 없다. “컴퓨터공학”처럼 커스터마이징이 필요 없는 기초교육을 하기엔 괜찮은 것 같다. 우리나라 교육환경을 대체하기에는 여러 가지가 맞지 않다. 다만, 42가 선택한 “집단 지성 기반 학습법”, “프로젝트 기반 학습법” 등은 괜찮은 도구들이다. 우리 교육현장에서도 적용해 볼만한 교육법이다.
  • 94.
    94 제5장. 새로운 교육모델 1.왜 필요한가? 가. 시장 이야기 “실무경험이 없다.” “개발을 할 줄 아는 친구가 왔으면 좋겠다.” “최소한 이렇게 말해주면, 알아들었으면 좋겠다. 필요하면 검색이라도 해보면 좋겠다.” “뭔가를 지시해주지 않으면 일을 안 한다. 어린아이처럼 일을 챙겨줘야 한다.” 10년 사이에 같은 CTO에게서 많이 들었던 말이다. 최근 5년 사이에는 이런 새로운 말도 들었다. “개발자를 구할 수가 없다. 아예 입사지원서가 들어오지 않는다.” “혹시나 해서 일을 시켜보면, 먹튀들이 엄청 많다.” 이 현상을 “잘못 배워서 그렇다.”, “배가 불러서 그렇다.” 로 해석하면 안 된다. 사안을 완전히 잘못 이해하고 있는 거다. 학생들 이야기를 들어보면 이렇다. “개발을 배우고 싶어요. 뭐부터 시작해야 할까요?” “너무 막막해요. 내가 뭘 해야 할 지 모르겠어요.”
  • 95.
    95 “취업했더니 회사가 너무이상한 걸 시켜요.” 재직기간 동안 1,000명이 넘는 대학생들과 인터뷰를 했다. 단순히 “가정교육”이라고 치부하기엔 비슷한 경우가 너무 많았다. 뭔가 공통적으로 설 명하는 사회적 요소가 없다면 불가능한 현상들이었다. 즉, 어떤 이유로 노동환경은 이미 변했고 기업들이 거기에 적응하지 못하면 노동력을 사회로부터 조달 받을 수 없는 거다. 나. 기업의 고민 그래서 이 문제들을 자세히 들여다볼 필요가 있다. 첫째, 실무경험이 없는 신입사원들. 기업은 신입사원에게 대단한 실무경험을 바라는 게 아니다. 신입사원을 뽑겠다고 공고 를 내는 순간 그에 맞는 기대를 한다. 만일 2-3년차 현업수준을 바라는 기업이 있다면 현실인식수준이 낮 은거다. 기업이 신입사원에게 기대하는 실무경험이란, 간단한 수준의 웹 서비스 하나를 개발해 본 수준이면 된다. 이것저것 기술을 엮어서 만든 가장 작은 단위의 제품이기 때문이다. 그런데 이 경험은, 내용을 이해하고 응용할 수 있는 수준을 말한다. 즉 일을 하고 시 작할 수 있는 최소한의 수준이다. 이게 잘 안되는 건 명확히 “대학 교육”의 문제이다. 급격한 기술의 발전 때문에 산업 현장과 완전히 동떨어져버린 거다. 꽤 많은 대학교가 1990년대 기술을 기본으로 가르친다. 하지만, 현대 소프트웨어 공 학은 다양한 변화를 거쳐 아주 많이 달라졌다. 하지만, 제도적, 현실적 이유로 이런 변화는 학교 현장에 반영되고 있지 않다. 학생들 은 부족한 걸 동아리 활동으로 채우는데, 문제는 이게 너무 케바케다.
  • 96.
    96 제도권 밖이라 수준도제 각각이고 틀린 내용도 많다. 이상한 논쟁으로 번져 감정싸 움 하다 끝나는 경우도 있다. 하지만, 그런 기회조차 얻을 수 없는 게 지방 대학교다. 현실적으로는 소프트웨어 개 발자 육성은 운에 맡기는 것 같다. 미래가 어둡다. 산학협력 프로그램이나, 정부의 교육과정이 틈새를 메꿔 주고 있긴 하다. 하지만 교육 인프라가 받쳐주는 느낌이 아니라 땜빵 하는 느낌이다. 둘째, 말귀가 어두운 친구들. CTO들이 이런 이야기를 아주 많이 한다. “뭔가 해달라고 하면 엉뚱한 걸 해온다. 업무를 지시하면 굉장히 맥락 없이 반응한다. 마치 사춘기 청소년들과 이야기를 하는 기분이다. 실력이 모자라면 가르치겠다. 하지만, 이해를 못하면 정말 난감하다.” 그리곤 그 사람의 자질 문제로 결론이 난다. 하지만 새로운 사람을 뽑아보면 알게 된 다. 그게 그 사람만의 문제가 아니라는 걸. 뽑아 보면 똑같은 사람이다. 왜 많은 친구들이 이렇게 되었을까? 그런데, 이 교육을 지켜보면서 학생들이 원래 그렇지 않다는 걸 알게 된다. 이런 자발적인 교육환경에 들어선 친구들은 어느 순간 빗장이 풀리면서 빵~하고 성 장한다. 거의 90% 이상이다. 우리나라 교육의 질 자체는 절대 낮지 않다. 초,중,고에서 쌓은 실력이면 충분하다. 다만 너무 모두 수동적이다. 다들 너무 착한 모범생들이다. 그런데 왜 그럴까, 이건 “교육제도”의 문제로 귀결된다. 기존 강의식 교육은 “수동형 교육방식”14의 대표적인 사례다. 인지심리학 관점에서 보 14 수동형 교육방식 : Passive pedagogy
  • 97.
    97 면 학생들은 수업중에 교사에 대해 강한 의존성과 종속관계가 형성된다고 한다. 16년의 학교수업이 학생들을 그렇게 바꾸어 놓는 거다. 셋째, 이직과 채용의 문제. 능력 되는 신입사원들이 더 좋은 곳으로 이직하는 경우는 제외하자. 급여문제, 업무환 경 등이 복잡하게 얽혀 있기 때문이다. 하지만, 신입사원이 기업에 쉽게 적응하지 못하는 경우는 교육문제가 조금 끼어 있다. 학생들이 직업적 가치관, 사회관을 배우고 나올 기회가 매우 적기 때문이다. 인턴쉽이나 산학협력프로그램 등 사회적 스킨쉽 프로그램이 많아야 하는데, 그게 너무 적다. 지방대학교의 경우 더 심각하다. 그리고 일자리 추천이 전공학과별로 되기 때문에, 비전공자들에게는 기회가 없다. 예를 들어, 기업들이 프랑스어 전공 중에 코딩할 줄 아는 친구를 구한다면, 그런 친구 를 만날 확률 자체는 거의 제로다. 우연히 사회 속에서 그런 친구를 구하거나, 프랑스어 하는 친구를 데려다가 코딩을 가르쳐야 하는데 작은 기업이라면 엄두를 내기도 힘들다. 즉, 채용은커녕 기업들의 인재접근 비용자체가 너무 높고 확률적이다. 이건 사회적 교육인프라가 발달되어 있으면 개선될 수 있다. 다. 학생들 고민 학생들 고민 중 1위는 단연코 학교나 학원에서 기업에서 필요한 기술을 배우지 못한 다는 거다. 면접현장에 들어가보면 알 수 있다. 내가 대답할 수 있는 게 하나도 없다는 것을. 사전에 준비할 수 없나? 그런 사실조차 인식하지 못하고, 인식했다 하더라도 어디서부터 시작해야 할지 모른다. 학교, 학원이 단편적인 정보나 지식만 전달하기 때문에, 학생들이 스스로의 위치를 인
  • 98.
    98 식하고 자발적인 성장전략을세울 수 없다. 정보의 바다 속에서 정작 필요한 정보는 얻 을 수 없는 거다. 다양한 원인과 해결책이 있겠지만, 여기선 교육에만 초점을 맞춰서 보자. 결심하고 행동하는 건 학생들의 몫이다. 하지만, 그들에게 좋은 정보환경과 좋은 행동환경을 챙겨주는 건 사회적 인프라의 몫 이다. 거기에는 정부의 역할도 있지만 일반 기업들의 역할도 있다. 인력공급이 충분하던 시절에는 기업들이 채용에 대해 관심 가질 필요가 없었다. 하지만, 이제는 무관심한 걸로 버틸 수 없다. 모르면 못 오는 시대가 되었기 때문이다. 라. 공공부문의 고민 생각보다 정부의 역할이 크게 필요하다. 기업이나 개인이 담당하기엔 애매한 위치에 해결방향이 있기 때문이다. 단기적인 해결책은 이미 충분히 하고 있다. 문제는 장기적인 구조개선이기 때문이다. 세금투입을 통한 부트캠프의 확대는 단기적인 효과는 크지만 재원부담이 크다. 취업률은 높아지지만, 산업경쟁력이 높아지진 않는다. 교육부문에서 어느 정도 역할을 해야 하는데 교육구조가 경직되어 있어 쉽지 않다. 이 이야기를 하자면 복잡 해지니까 여기선 넘어가자. 사교육은 좋은 선생님을 모시면 된다. 공교육은 그렇게 하기 힘들다. 좋은 선생님을 모시기에는 재원부담도 크고 그걸 지속하기도 어렵다. 교실수업으로는 기술훈련이 되지도 않고, “교수자 중심의 수업”으로는 학생들의 성향 을 능동적으로 바꾸기도 어렵다. 이 부분은 42가 걸어온 길을 참고하여 새로운 “교육모델”을 수립함으로써 접근해볼 필요가 있다.
  • 99.
    99 2. 교육의 모습 가.교육 개요 정리 교육을 모든 방향에서 접근하자면 너무 주제의 범위가 넓다. 42 사례를 참고해서 우리나라에 맞는 교육모델을 하나만 정리해본다. 죽 읽어보면 우리 학교에 맞게 어떻게 교육을 설계해야 할지 감이 올 거다. 구 분 내 용 교육대상 성인학습이 가능한 사람 - 스스로 필요에 의해 학습을 시작한 사람(동기가 뚜렷한 사람) 교육목표 찐 개발자 되기 (석사, 박사 등 연구자 아님) - 하드 스킬, 소프트 스킬, 성장 노하우 교육구성 이론 실용주의, 경험주의, 성인교육 - 개발자들이 현장에서 학습하는 방식 교육환경구성 과제은행 + 시스템학습 + 자율학습 + 집단학습 - 친구들과 과제풀이를 반복하는 방식으로 레벨업 - 시스템과 학습법을 보급을 통해 교육이 확산 교육방식 자율학습 + 집단학습 - 스스로 하지 않으면 얻는 게 없음(필요한 건 알아서 조달) - 궁금한 건 동료집단으로부터 조달 교육내용 IT 기초 ~ 취업수준 - 입문급의 내용만 담당 : 3 개월+ - 고수준 교육은 친구들과 개별 프로젝트 : 3 개월+ 교육인원 그룹당 50 명 이상 (참여율 80% 이상) x 연간 2 회 이상 선발 교육운영원리 학습 커뮤니티 운영방식 – 포럼, 게시판 필수 교육환경구성 기본 교육장 - 기본 작업공간 : 1 인용 자리 + 노트북 + 인터넷 환경 - 프로젝트 공간 : 4-5 인용 회의실(프로젝트) 프로젝트 환경 - 저렴한 비용의 클라우드 (서버 환경) - 네트워크 개발자 : 네트워크 개발환경 - AI 개발 : GPU 하드웨어 (클라우드 등) 개방된 커뮤니티 환경 - 자유로운 출입환경(기본적인 출입통제 필요) - 외부개발자 접근도 자유로울 것(스킨쉽 향상)
  • 100.
    100 표 12 새로운교육모델의 개요 이 교육모델의 특징은 “슈퍼맨의 양성”이 아니라 “코딩교육의 보편화”에 있다. 교수자가 필요 없어 강사를 구할 수 없는 환경에서도 코딩교육을 시킬 수 있다. 여기서 교수자란, 학교에서 수업을 열고 강의하는 교육의 주체자를 말한다. 전통적인 교육모델에선 교수자의 확보가 교육의 성공인데, 이 길을 따르지 않는다는 뜻이다. 다만, 그 역할을 대신할 학교 커뮤니티를 구축해야 한다. 시스템 계정만 발급하면, 이러닝(e-learning)사이트처럼 콘텐츠나 코스가 다 들어있어 교육을 보급하기가 쉽다. 전문가가 없으면 교육수준을 끌어올리는데 한계가 있는데, 이건 추가과정으로 사정에 맞게 교육을 설계하면 된다. 이 교육은 제로레벨에서 기초레벨까지 올라오는 것에 초점 을 맞추었다. 나. 자세히 설명하기 상세하게 이야기해보면 다음과 같다. 인력 양성의 목표는 연구자가 아닌, 기업에서 일하는 일반 개발자들이다. 신입사원 수준에 맞추는 이유는, 기업과 같은 현장을 교육현장에 구현할 수 없기 때 문이다. 1TB 가 넘는 데이터를 확보할 수도 없고, 그 데이터를 해석하기 위해 필요한 사업경 험 같은 것도 교육현장에 풀어놓을 수 없다. 무엇보다, 회사에서 더 잘 배울 수 있는 걸, 가짜 회사환경을 만들어 놓고 가르칠 이 유는 없다. 대신 회사에 들어가기 위한 역량을 조금 더 넉넉하게 기르는 걸 목표로 한다.
  • 101.
    101 교육대상을 성인으로 하는이유는, 동기가 뚜렷해서 스스로 학습이 가능하기 때문이다. 그리고 경험이 풍부해서, 구성주의 교육법을 사용할 수 있기 때문이다. 고등학생의 경우 지식을 구성한 기반 경험들이 없기 때문에, 외부에서 이를 지원해야 한다. “웹 아카데미” 같은 경우, 에피텍 학생들이 튜터로 참여를 하며, 에꼴42도 비슷하게 고등학교를 지원하는 경우가 있다. 교육목표는 “성장 노하우”를 포함한다. 일반적인 “강의 수업”은, 과제를 제출 받는 걸로 제대로 공부했음을 판단한다. 하지만, 외워서 내는 친구도 있고, 베껴서 내는 친구도 있고, 그룹과제에 얹혀서 프리 라이딩 하는 경우 있다. 이건 평가설계를 그렇게 했기 때문인데, “성장 노하우”를 익히게 하려면 그런 환경을 만들어주고, 그런 과정을 겪었는지 서로 물어보게 하는 것밖에 없다. 역시 속일 수 있는데, 이건 다른 방법들로 보완을 한다. 교육환경 구성은 꽤 중요한데, 기본적으로는 자주 어울릴 수 있도록 3-4인이 함께 할 수 있는 사무실 환경을 만들어주는 게 중요하다. 집단학습은 다양한 사람들의 소통에 의해 경험과 지식이 균형을 이루는 학습법이다. 온라인 게시판이나 포럼은 필수이다. 오프라인 환경도 중요하다. 많은 사람들이 뒤섞여서 공부하는 환경을 잘 만드는 게 이 교육모델의 특징이다. 교육기간은 집단학습의 특성상 협력학습이라는 습관을 형성하지 못했거나, 참고할 만 한 정보를 적시에 구할 수 없다면 강의 수업에 비해 꽤 많이 걸린다.
  • 102.
    102 다만, 노하우가 쌓이고나면 학습속도가 두 배 이상 빨라진다. 지식습득을 순차적으로 하는 게 아니라, 다차원적, 종합적으로 하기 때문이다. 따라서 교육기간은 초보자때는 넉넉히, 익숙해지고 나면 조금 빠듯하게 잡아주면 좋다. 학습과제는 처음부터 “프로젝트 타입”15으로 운영하는 게 좋다. 과제가 먼저이고, 그걸 해결하기 위해 공부를 한다. 이런 개념으로 가야 한다. 자세한 교육이론은 뒤에 설명하겠지만, 다짜고짜 문제상황에 맞닥뜨리게 하는 게 핵심 이다. 과제 설계는 반드시 “리니지”처럼 게임 퀘스트 방식으로 구성한다. 세계관을 세우고 그걸 정복하기 위해 레벨업을 하고, 파티사냥을 하도록 구성한다. RPG16 은 게이머들이 몰입할 수 있도록, 오랫동안 많은 자본을 투자해 완성시킨 인간 사회의 축소된 버전이다. 과제 설계를 할 때 이만큼 좋은 벤치마크 사례가 없다. 교육의 규모는, 일일 방문자 기준으로 한 그룹당 40명 정도가 되도록 설계한다. 보통 동료학습은 3-5인 단위가 가장 좋은데, 평균 4명 x 10팀이 되도록 하는 거다. 이것도 뒤에 설명하겠다. 다. 학교 모습 그려보기 (1) 과제풀이 게임 학교에 입학하니 계정을 하나 준다. 웹 사이트에 접속하니 과제 목록이 죽 뜬다. 15 프로젝트 타입 : Project-based learning, 프로젝트 기반 학습법 16 RPG : Role Playing Game, 게이머가 그 세계의 등장인물이 되어 그 역할을 수행하면서 즐기는 게임
  • 103.
    103 약 100개 정도의커리큘럼이 있는데, AI, 빅데이터, 웹 개발 등 다양한 분야가 많다. 나는 비전공자라 기본 커리큘럼을 먼저 해야 한다. 커리큘럼을 열면 과제들이 있는데 과제 설명으로 미리 알 수 있다. 과제 할 땐 GitHub 코드를 참고하긴 한다. 하지만, 결국 다 새로 짜야 한다. 내가 이해를 해야 하기도 하지만, 평가 받을 때 일 일이 다 설명을 해야 하기 때문이다. 다양한 회사들의 프로젝트들도 만나 볼 수 있다. 예를 들면 카카오 웹툰 같은 것. 어려운 것도 있고 초보적인 것도 있다. 그 과제를 푼다고 해서 카카오에 들어갈 수 있는 건 아니다. 하지만 다 풀고 나면 대충 감이 잡힌다. 과제 하는 중에 이것저것 공부하다 보니 자 연스레 자신감이 생긴다. 그렇게 3달 정도 반복하다 보니 회사면접을 봐도 대부분 합격한다. (2) 학습 커뮤니티 학교에 나오면 나랑 비슷한 친구들이 많다. 누구는 철학과 전공이고 누구는 법학과 전공이다. 지금 학교를 다니면서 저녁이랑 주말에 공부하러 온다. 현재 10번 과제를 하고 있는데 3명이서 공부반을 만들어서 하고 있다. 그런데 두 친 구가 곧 바빠진다고 해서, 다음 과제는 다른 친구들과 할 예정이다. 캠퍼스에는 누구나 올 수 있다. 얼마든지 앉아 있을 수 있다. 그래서 스타트업 개발자들이 종종 앉아 계신다. 가끔씩 이것저것 물어보는데 친절하게 대답을 잘해 주신다. 매주 여러 가지 주제들로 토론이 열린다. 학생들이 여는 게 있고, 선배들이 와서 던지는 것도 있다. 나는 아직 잘 몰라서 듣기
  • 104.
    104 만 한다. 어려운것도 많지만 하여튼 듣는다. 작은 밋업들이 많아서 좋기도 하지만, 다양한 사람들이 와서 좋다. 지난 주엔 핀테크 개발자가 왔는데, 코인과 CDDC에 대한 이야기를 물어볼 수 있었다. 가상화폐 거래소에도 node.js 가 사용된다는 걸 알고는 깜짝 놀랐다. 종종 이직을 위해 퇴직했던 선배들이 학교에 와 있기도 한다. 과제에 대해 도움을 받을 수도 있지만, 첫 직장 이야기를 듣는 것도 도움이 된다. 하여튼 학교에 학생들뿐 아니라 다양한 사람들이 왔다 갔다 하니 조금만 용기를 내어 물어보면 다양한 경험들을 들을 수 있어, 이곳이 참 좋다. (3) 기업들 이야기 요즘에 신입사원 구하기가 매우 힘들다. 새로운 신입사원을 구했다 하더라도, 3년정도 지나고 나면 남아 있는 친구들이 없다. 반면, 계속 사업은 계속 확장하느라, 인사팀이 사 람 구하러 다니는 게 일이다. 새로운 사람을 구했다고 해도 일은 끝나지 않는다. 경력사원들 관리도 쉽지 않고, 신 입사원들 관리도 쉽지 않다. 그런데, 이 캠프에선 꾸준히 학생들이 배출되니까 자주 찾게 된다. 커리큘럼이 우리 회사랑 어느 정도 맞아서 채용을 해도 부담이 없다. 처음엔 조금 복잡한 코드테스트를 했는데, 요즘은 그렇지 않다. 이미 복잡한 과제들이 있기 때문에 과제 코드를 보고 이것저것 질문한다. 요즘은 오히려, 우리 회사랑 궁합이 맞는 친구들을 찾기 위해 몇몇 친구들을 눈 여겨 보고 있다. 한 달에 두세 번 캠프를 방문해서, 친구들의 코드를 봐주는 요즘은 친구들을 데려와서 함께 이야기하게 되니 더 좋은 것 같다.
  • 105.
    105 3. 학교 만들기 가.소프트웨어 이야기 소프트웨어 기술은 처음에는 그냥 컴퓨터를 다루는 기술이었다. CPU, 메모리를 이용해 복잡한 계산을 하고 데이터를 화면에 뿌려주는 게 전부였다. 좀 더 복잡해지면서 워드, 엑셀, 파워포인트 같은 제품들이 만들어졌다. 이 때 까지만 해도 소프트웨어란 건 1대의 PC에서 1개가 실행되는, 멀티 기능의 새 로운 하드웨어였다. 그런데 인터넷이 나오면서 많이 변했다. “검색” 같은 독립사업이 생기기도 했지만, 무역, 국방, 금융 등 산업에 맞게 성장하면 서 시스템의 모습도 분화되었다. 스마트폰, 웹, 스마트TV가 등장하자 기술은 더 복잡해졌다. 그러면서 소프트웨어 기술은 파편화되었다. 그래서 맥락 하나를 쫓아가면 모든 것을 죽 꿸 수 있는 그런 분야가 아니다. 필요한 기술을 그 때 그 때 익히면서 문제를 풀어나가는 그런 분야가 되었다. 물론 하드웨어를 다룬다는 관점에서 가장 기본이 되는 컴퓨터에 대한 공부는 해야 한 다. 그래야 상위 기술을 익히기 쉽기 때문이다. 어느 정도 기초를 익히고 나면, 다양한 프로젝트를 통해 스스로 성장해야 한다. 그게 개발자에게 요구되는 능력이다. 나. 학습자 시나리오 개발자는 경험을 바탕으로 성장한다. 이론은 교재를 기반으로 체계적으로 정립한다.
  • 106.
    106 익혀야 할 게있으면 다짜고짜 시작한다. 필요한 이론은 프로젝트를 하면서 그 때 그 때 습득한다. 이걸 여러 번 반복해서 무의식 중에 몸에 베일 수 있게 한다. 필요한 정보는 여기저기 공개된 정보를 참고한다. 지식은 외우기 보다 그때 그때 찾아본다. 검색할 수 있을 정도의 기초지식을 가지고 있어야 한다. 최종적으로 현실 문제를 이해하고 해답을 도출하고 그걸 코드로 구현하여 문제해결에 기여할 수 있어야 한다. 목표는 “재현능력”이다. 비슷한 걸 만들거나 재현할 수 없다면 이걸 배운 게 아니다. 프로젝트를 할 땐 동료들과 잘 협력해서 함께 만들 수 있다. 그림을 함께 그리고, 일을 나누어서 하고 필요하면 리딩을 하고, 필요하면 팔로잉을 한다. 팀 작업을 함께 해도 거의 실패하지 않고 결과물을 만들 수 있다. 학교 모델에선 여기까지를 기본으로 생각한다. 더 이상은 고급레벨이다. 다. 학습원리 (1) 교육의 핵심 실력 향상을 결정하는 건 결국은 “학습량”이다. 많이 보고 많이 경험하고 많이 생각하는 거다. 많이 이야기하고 많이 싸우면서 최적 의 해답을 찾아가는 거다. 여기서 학습량은 “경험”의 양을 말한다. “학습량”에 직접적으로 관여하는 건 “학습시간”이다. 하지만, 학습시간이 많더라도 헤매고만 있으면 실력이 늘지 않는다. 헤매지 않게 해주 는 게 “질문”이다. 질문은 “방향성”을 제시해준다.
  • 107.
    107 즉, 경험량을 높이고방향성을 잡아주기 위한 방법들이 아래의 내용들이다. (2) 학습자 중심의 교육관 “가르치는 사람”이 아니라 “학습하는 사람”을 중심으로 교육을 설계한다. 전통적인 교육은 “교수자”가 교습행위를 잘 하도록 모든 지원활동이 일어난다. “교수 자중심 학습법” Teacher centered learning이라고 한다. 수업시간에 학생들은 서로 소통 하지 않고, 교수자 하고만 1:1관계를 형성한다. 이 때 학생들은 스폰지 같이 모든 걸 흡 수하는 인지상태에 있다고 가정한다. 현대교육에선 이 가정이 틀렸다고 본다. 지식이나 경험은 결국 받아들이는 사람이 어떻게 받아들이나 보고 교육을 설계한다. 그래서 학습자가 지식을 습득하는 인지과정에 초점을 맞춘다. 어떠한 인지과정이 일어나 도록 경험 목적의 학습환경을 구성한다. 스스로 그 경험을 하는 건 학생의 몫이다. 소프트웨어 개발은 정확히 이 관점을 따라간다. 직접 해봐야만 실력이 늘기 때문에 학생들이 직접 코딩을 해보는 것에 초점을 맞춘다. 교수자가 아무리 잘 가르쳤어도, 학생들이 직접 해보지 않았다면 배움은 일어나지 않 은 거다. (3) 구성주의 학습 “구성주의 학습”이란 지식은 경험을 통해 구성된다는 교육이론이다. 그래서 학생들이 지식을 습득할 수 있도록, 그런 경험 환경을 만들어준다. 예를 들어, OSI 7 Layer를 알게 하기 위해, 간단한 TCP/IP 통신프로그램을 만들어보 게 한다. 중요한 건 학생들이 OSI 7 Layer를 검색해서 공부를 해야 한다는 거다. 초보자용 과 제이나 학습집단이 소수라면 반드시 힌트를 넣는다. 반면, 고수이거나 서로 코칭이 활발하게 일어나는 집단이라면 힌트를 제거한다. 사고
  • 108.
    108 의 범위를 제한할수 있기 때문이다. (4) 그룹학습방식 3-5인 단위의 소그룹으로 학습한다. 교수자의 부재를 동료로 채운다. 단방향 전달방식 을 상호소통방식으로 바꾼다. 3-5인은 한 팀으로 공부하기 좋은 가장 사이즈다. 집단이 커지면 적절히 역할을 나누 어서 다시 소집단으로 활동하게 한다. 가능하면 프로젝트마다 그룹을 바꾼다. 경험의 다양성 때문에 그렇다. 마음 맞는 친구가 있다면 오랫동안 같이 해도 된다. 학습 상태와 질에 따라 유연하게 대응하면 된다. 두 개 이상 참여해도 좋지만 연습시간이 적어 실력향상이 되지 않는다면 좀 덜 참여 해야 한다. 그룹학습은 수단이지 목표가 아니다. (5) 커뮤니티 학습 학습 커뮤니티란 공부를 같이 하는 집단이라는 뜻이다. 목적 집단이라는 관점에서 “친 목형 커뮤니티”와 다르다. 양질의 커뮤니티를 유지하기 위해서는, 학생들이 도움을 얻고자 할 때 30분 이내로 피드백을 받을 수 있어야 한다. 함께 공부하고자 할 때, 일주일 이내 동료를 구할 확률이 90% 이어야 한다. 현재 팀과 갈등이 생겨 찢어질 때, 적어도 3번 이상 팀을 갈아타도 될 만큼 풀이 넓 어야 한다. 이 팀은 보통 비슷하게 학습진도를 나간다. 보통 100명 이상의 코호트 그룹으로 꾸며 준다. 코호트 그룹의 동질성을 부여하기 위해, 가능한 같은 커리큘럼을 따르게 한다. 즉, 100명이 모여 있는데 다 다른 공부를 하고 있다면, 서로 도와주거나 협력할 이유가 생기 지 않는다.
  • 109.
    109 미션을 해결하기 위한협력학습은 짧으면 1주일, 길면 한달을 넘기지 않는게 좋다. 길어지면 감정적 갈등이 생길 확률이 높아져 커뮤니티 분위기가 나빠진다. (6) 프로젝트 기반 학습 전통적인 교육법에선 교재를 다 뗀 다음 마지막 과제로 프로젝트 하나를 해보게 한다. “마스터 학습법 Mastery Learning” 이라고 한다. 숙달을 통해 실패를 하지 않게 한다. 부품처럼 일해야 하는 노동자들을 교육시킬 때 적합한 방식이다. 소프트웨어 개발은 R&D 성격을 갖는다. 어떻게 문제를 해결해야 할지, 어떻게 개발 해야 할지 고민하는 게 일상이기 때문에 “숙달”을 연습하는 게 전혀 도움이 되지 않는다. 그래서 문제풀이를 반복 연습하는 “프로젝트 기반 학습 Project-based learning” 방 식으로 교육과정을 구성한다. 초보자들은 작게 해보고, 고수들은 큰 사이즈로 해본다. 다 만 큰 사이즈라고 하더라도 현업수준을 넘어서진 않는다. 교육환경이란, 현업의 경험을 시뮬레이션 함으로써 교육목적을 달성하는 거다. 현업수준에 맞게 구성된다면 교육환경을 유지보수하기 위한 자원투입이 계속되기 대 문에, 교육의 지속성을 보장할 수 없다. (7) 나선형 학습 Spiral Learning이라고 부른다. 첫 과제에는 OS, 네트워크의 기초적인 내용만 공부하면 되고, 다섯번째 과제쯤에는 OS, 네트워크의 심화내용을 공부하도록 구성하는 거다. 계속 비슷한 방식으로 전체 내용을 반복하면서, 쉬운 문제에서 어려운 문제로 나아가 도록 구성하는 걸 말한다. 지식이 파편화되어 있고, 융합역량이 중요할 때 처음부터 이렇게 시작하는 학습법인데, 개발자가 프로젝트를 하는 방식과 동일하다. 프로젝트 기반 학습법과 함께 생각하여 교육과정을 설계한다.
  • 110.
    110 (8) 성인학습 교육대상이 성인이라는건, 반대개념인 “아동학습”과 많이 다르다. 성인은 자기 필요성에 의해 배우러 오기 때문에, 수동적인 아동교육환경처럼 설계했을 때 오히려 재미를 잃거나 배움이 속도나 질이 확 떨어진다. 그래서 현실중심, 실용주의적인 가치관으로 교육내용을 구성하고, 서로 가르치고 배울 수 있게 “상호학습방식”을 배치함으로써 교육의 몰입도를 높인다. 기타 등등 성인학습의 기본 원리를 활용한다. (9) 놀이터 학습 학교는 성인들의 놀이터처럼 동작하도록 설계한다. 누구나 들어올 수 있고, 누구나 나갈 수 있다. 학교에 오면 다양한 놀이시설들이나 장 난감들이 흩어져 있다. 학생들은 여기서 혼자서 무언가를 하거나 친구들과 함께 큰 동상을 만들어볼 수 있다. 놀이터는 “환경학습”이다. 인지발달에 필요한 놀이기구를 설계하고 거기서 학생들이 놀게 한다. 서버랙이나 아두이노 같은 하드웨어부터, Linux Kernel, Unix 같은 OS 바이너리, 운영 중인 웹 서비스까지 모든 게 학생들의 놀이기구가 될 수 있다. 놀이터 학습은 학습의 속도보다 학습의 질에 관여한다. 소프트 스킬이 훨씬 더 풍부 해지고, 기술의 깊이가 깊어진다. “코딩학원”들은 단기간에 교육을 끝내야 하기 때문에, 웹 개발 1단계~5단계처럼 프로 세스 기반으로 설계해야 하지만, 장기간 교육이 가능한 “학교”라면 놀이터처럼 구성한다. (10) 자율학습, 자율진도방식 자율 학습이란 Unsupervised learning, 비지도 학습이라고 한다. 즉, 교수자가 학습 을 감독하지 않는 거다.
  • 111.
    111 자율 학습의 목적은,학생들의 자율성을 높이기 위한 거다. 성인으로 살아가기 위한 기본 소양이며, 학교는 이를 적극 지지한다. 자율성은 자기가 정보를 찾고 결정하고 책임지는 과정에서 길러지는데, 실패했을 때 원인을 분석하고 자신의 행동을 교정함으로써 더 강화된다. 충분한 시간이 필요하기 때 문에, 학습진도도 알아서 나가게 한다. 동료들이 도와줄 수는 있지만, 교수자가 먼저 개입하지는 않는다. 학습동기가 상실되면 학교 밖에 머무르게 한다. 동료학습은 면학분위기가 중요하기 때 문이다. 단, 쉽게 복귀할 수 있도록 한다. (11) 수업, 교실, 강사 없음 이 교육에서 배척하는 건, 강사가 강의를 통해 지식 전체를 1장부터 10장까지 전달하 는 방식이다. 학생들은 교수자에게 학습을 의존하게 되고, 결과에 대한 책임을 학교나 교수자에게 돌리게 된다. 이런 학생이 사회로 나오는 건 산업경쟁력을 약화시키는 지름길이다. 회사는 책임 전 가 게임이 아니라, 부가가치를 창출함으로써 생존하는 게임이기 때문이다. 특강이나 세미나, 밋업 등은 괜찮다. 강의 형식을 거부하는 게 아니라, 전통적인 수업 방식을 거부하기 때문이다. 강사 의존성과 규율 의존성을 높이지 말아야 한다. 자율성과 주체성이 핵심이다. 라. 학교의 자산 학습이 일어나는 원리는 그렇다 하더라도, 학교는 어떤 모습이어야 할까? 무엇에 투자해야 교육의 질을 높이고, 좋은 학생들을 키워 나갈 수 있을까? 모든 게 다 중요하겠지만, 세가지로 압축시켜 본다.
  • 112.
    112 첫째, “프로젝트형 과제”로구성된 “문제은행 DB” 다. 교육내용을 “프로젝트형 과제”가 결정한다. 학생들이 여러 가지 경험을 해보고 사회로 나갈 수 있도록 산업별, 기술별로 풀수 있 는 다양한 과제가 있으면 좋다. 헤매지 않고 필요한 걸 선택할 수 있도록 전체 지도를 제시한다. 과제설명과 난이도를 잘 표시해서 현재 풀 수 있는 내용인지 아닌지 알 수 있게 한다. 과제를 하기 위해 공부할 내용들과 필요한 교재, 기타정보, 키워드들이 기재되어 있어야 한다. 즉, 과제 접근성을 쉽게 해준다. 그래야 자율학습이 된다. 과제 접근이 어려우면 누군가 선택을 도와줘야 한다. 그럴 사람이 충분히 있으면 좋 겠지만 대부분 없다. 정보탐색 시간과 헤매는 시간은 명백히 다르다. 헤매는 시간을 줄여주는 건 “교육기관” 의 역할이다. 과제는 쉬운 것부터 어려운 것까지 레벨을 잘 구성해서 채워 넣는다. 갑자기 어려워 지면 학생들은 헤매기 시작한다. 난이도를 잘 배치해서 “커리큘럼”으로 만든다. 하나의 커리큘럼은 하나의 완성된 경험이도록 구성한다. 프론트엔드, 백엔드 등 부품 형태로 커리큘럼을 짜지 않는 게 좋다. 경험의 동선이 끊 어져서 커리큘럼을 다 끝내도 일을 할 수 없는 상태가 된다. 가능하면 회사에서 일을 할 수 있는 형태로 필수적인 구성을 한다. 프론트엔드 과정 이라도 백엔드 과제를 써서 경험을 하나로 잇도록 하면 좋다. 둘째, 잘 훈련된 “학습 커뮤니티”다.
  • 113.
    113 교육의 질을 “학습커뮤니티”가 결정한다. 교육결과에 관여하는 직접요소이다. 집단학습은 교수자 역할을 동료들이 대신하는 교육법이다. 동료그룹들이 형성되지 못 하면 이 교육은 실패한다. 물론 학생들은 이런 상호학습, 집단학습 방식에 대해 우호적이어야 한다. 장점을 잘 이해하고 잘 활용하거나, 단점을 보완해서 비는 게 없도록 해야 한다. 서로에 대해 협조적이거나 리딩할 수 있어야 학생들이 커뮤니티와 연결된다. 단, 친목그룹이 아니라 과제 학습을 목적으로 하는 “목적그룹”이어야 한다. 질문에 답해주는 것에 그치지 않고 함께 과제 할 수 있는 동료들이 있어야 한다. 그래야 Pair coding 이나 XP Programming 같은 활동들이 일어난다. 가장 밀도가 높은 지식전이활동이라 이 경험만으로도 학생들은 변한다. 셋째, 학생들과 스킨쉽을 쌓을 “현업 개발자 그룹”이 필요하다. 현업개발자를 만나보는 것과 아닌 것의 차이는 하늘과 땅차이다. 학교는 학생들이 현업개발자와 쉽게 만날 수 있는 환경을 제공할 필요가 있다. 현업개발자를 만나면 학생들의 목표는 구체적이면서 현실적으로 변한다. 모호함이 걷 혀 나가고, 동기와 학습일정, 목표역량 등을 스스로 설정하게 된다. 진행자가 앞에 나서 서 이렇게 하세요. 저렇게 하세요라고 말할 필요가 없다. 하지만 제도적으로 강제되면 안 된다. 현업 개발자들도 학교에 올 이유가 있어야 서 로 윈윈하게 된다. 그래야 교육이 지속된다. 가장 좋은 건 학생들이 “개발자 커뮤니티” 속으로 들어가는 거다. “파이썬 커뮤니티” 나 “자바 커뮤니티” 등에 학생들이 참여할 수 있게 이런저런 기회를 마련해준다.
  • 114.
    114 제6장. 교육 설계하기 1.교육과정 설계 가. 개발자 성장모형 가장 먼저 인재상을 결정한다. 교육을 공장처럼 찍어낼 순 없지만, 방향을 정하면 개략적인 동질성이 나온다. 이 교육모델에서 졸업시점의 스냅샷을 취업 수준으로 정한다. 그 시점에 가져야 할 역량들을 “역량모델”, 습득과정을 “성장모형”이라고 한다. 기본적인 내용은 “제2장. 어떻게 개발자가 되는가?”에서 자세하게 설명했다. 다른 인 재상을 원한다면, 거기에 맞게 다시 설정하면 된다. 교육설계를 할 땐 역량항목들은 자세하게 정의한다. 역량항목은 What을 결정한다. 내 맘대로 하면 될 것 같은데, 이것도 국제규격 같은 게 있다. 잘 찾아보자. 여기에선 기업 시각을 반영하기 위해 “CTO관점”에서 다음과 같이 정의한다. (1) 인지발달이론 우선 경험과 지식이 어떻게 형성되는지 인지적 과정을 정리해본다. 장 피아제 비고츠키 학생에 대한 정의 학생은 사회적 상호작용을 통해 인지발달을 이루는 능동적 학습자 학생은 세상을 스스로 학습해 가는 “독립적인 발견자” 인지발달의 주 요인 타고난 인지능력을 통해 환경과 접촉하며 스스로 인지발달 사회적 상호작용과 여기서 얻는 고등정신기능을 하동이 내면화하면서 인지발달 주요 용어 동화, 조절, 인지적 불균형 근접발달영역, 스캐폴딩 문화적 맥락에 대한 견해 인지발달에 큰 영향 없음 문화적 맥락이 제공하는 문화적 도구가 인지발달을 매개함 언어 인지발달의 부산물 언어는 지적기능수준을 높여주지 않음. 언어는 사고, 문화전달, 자기조절을 위한 필수기재, 언어는 지적기능수준을 높여줌
  • 115.
    115 사회적 상호작용 사회적상호작용은 인지적 불균형 상태를 만들어서 인지발달을 촉진시킴 * 또래의 상호작용이 중요함. 사회적 상호작용은 언어를 습득하고 고등정신기능을 학습할 수 있도록 도움을 제공하여 인지발달을 촉진시킴 * 이질적 수준의 학습자와 상호작용(어른, 교사, 앞선 동료) 학습과 인지발달 학습은 발달에 종속 학습이 발달을 주도하지 못함 학습이 발달을 높은 수준으로 끌어올림 사회적 상호작용이 중요한 요소 표 13 피아제, 비고츠키17 의 인지발달이론 소프트웨어 개발은 두 가지를 다 고려한다. 두 가지 다 해당사항이 있다. 개발자는 상호작용을 통해 정보를 습득하지만, 코딩은 결국 혼자서 해야만 경험과 지 식으로 굳어진다. 상호작용은 지식과 경험이 아는 사람에게서 모르는 사람으로 흘러가는 불균형 해소과 정이다. 따라서 교육환경을 구성할 때, 다양한 경험의 사람을 골고루 섞어서 구성해야 한 다. 동질적이고 비슷한 수준의 사람으로 집단을 구성하면 학습은 일어나지 않는다. 경험이 없으면 생각을 확장하지 못한다. 이 때 힌트와 가이드를 제공함으로써 벽을 깨고 나오게 만드는 조력활동을 “스캐폴딩”이라고 한다. 이런 과정을 잘 일어날 수 있도록, 학습분위기를 잘 조성할 필요가 있다. (2) 역량 지표의 설정 인지과정을 이해했다면, 어떤 사람이 배출되어야 하는지 정의해보자. 이 때 기대되는 능력을 “역량”이라고 한다. 역량은 그 사람이 가지고 있는 실력을 말하고, 역량기준은 내가 그 사람을 볼 때 평 가하고 판단하는 기준이다. 학교에선 일종의 성적표처럼 활용될 수 있다. 우리 교육 모델에선 역량기준을 산업사회와 유사하게 맞춘다. 학생들이 사회로 나갈 때 이질감이 없도록 하기 위함이다. 용어차이가 크면 학생들은 헷갈려 한다. “프론트엔드 17 비고츠키 Lev Semenovich Vygotsky : 1896-1934, 소련의 인지심리학자, 인지발달이론 제시 (“근접발달 영역” 개념을 처음 사용), 장 피아제 Jean Piaget : 1896-1980, 스위스의 철학자, 발달심리학자. 자기 딸들의 성장과정을 관찰, 교육실험을 통해 “인지발달이론”을 재정립했다.
  • 116.
    116 개발자”, “데이터 엔지니어”등으로 표현한다. 역량지표는 What을 의미하지만, How를 위해 사용된다. 즉, 계량할 수 있어야 지표로서의 의미가 있다. 그래서, “사람”을 평가하지 않고 “행동” 및 “결과”를 평가한다. 예를 들어, “창의력”, “도전성” 이런 건 역량항목으로 삼지 않는다. 이런 건 훌륭한 국민을 양성하고자 하는 K-1218영역에서 쓰는 거다. “너는 창의성이 10점이야.” 이게 아니라, “너는 창의력이 필요한 과제를 5번이나 했네.” 이렇게 표현한다. 학생이 어떤 것에 관심이 많고 어떤 일을 많이 했는지 표현해줘야 한 다. 역량항목과 점수는 공개한다. 동료들이 서로의 상태를 금방 인지를 하고, 조력활동을 할 수 있도록 한다. (3) 하드 스킬 요소 하드 스킬은 “프로그래밍 언어” 등 소프트웨어를 만드는 직접기술이다. Java Spring, Ruby, Android 등 업계에서 쓰는 포괄적인 용어를 사용한다. 개발과 엔지니어링 둘 다 포함한다. 역량항목은 계층형으로 만들지 않아도 괜찮다. 목표는 이 지표만으로 상대방을 개략적으로 알아볼 수 있게 하는 거다. 그래야 집단학습과 동료학습이 된다. 학교라면 갖춰야 할 기본지식이 “컴퓨터의 동작원리”이다. 18 K-12 : 초.중.고등학교 12년을 일컫는 말. 초등교육과 중등교육을 말한다.
  • 117.
    117 CPU, 메모리, 스토리지,네트워크라는 하드웨어 세계부터, OS, 플랫폼, 웹이라는 소프 트웨어 세계까지 포함한다. 지식항목은 시험 등을 통해 따로 평가하진 않는다. 과제나 프로젝트로 결과물을 만들어 실력으로 증명하지 않으면 평가하지 않는다. (4) 소프트 스킬 요소 “협업능력”, “소통능력” 등으로 구분한다. 인사평가에서 정성적 평가에 해당하는 항목이다. 많은 기업들이 채용할 때 직접 반영은 하지 않지만, 충분히 고려하는 사항이다. 소프트 스킬은 업무수행에 필요한 능력이기 때문에 동료들의 평가로 측정한다. 주관적 편향성이 존재하기 때문에, 정규분포를 따르도록 충분히 많은 평가를 한다. “디지털 문해력”, “유연성”, “도전정신” 등 학교 항목은 사용하지 않는다. 이 항목들은 전인적 교육을 위해 도출한 기준으로, 교사들의 학습지도에 유용한 지표 이다. 집단학습에선 학생자신이나 동료, 기업 개발자들에게 아무런 의미가 되지 못한다. 역량지표의 존재이유는 행동변화를 이끌어내기 위한 것이다. 내가 어떻게 성장해야 할지, 어떤 역량을 가져야 할지 명확하게 보여 주어야 한다. 즉, 학습 자체에 도움이 되지 못한다면, 지표화 하지 않는 게 좋다. (5) 경험치 부여 레벨업을 표현할 때는 범용 지표과 특성화 지표를 사용한다. 범용지표는 “경험치”이다.
  • 118.
    118 경험치는 경험이 쌓였음을증명하는 수치다. 과제를 클리어 하거나 미션을 달성했을 때 준다. 그래서 경험치는 “학습량”을 의미한다. 경험치가 높으면 오랫동안 많은 과제를 푼 거 다. 경험치가 높아서 주어지는 보상은 없다. 올바른 방향성만 표시한다. 베껴 쓰기 등 잘못된 행동을 했을 때는 경험치가 깎이도록 설계한다. 특성화 지표는 하드 스킬과 소프트 스킬의 점수다. 경험치가 많더라도, Java 스킬은 낮을 수 있다. Python 점수는 높더라도, “협력적 태도”는 점수가 낮을 수 있다. 지표는 모두 주관적 척도를 사용한다. 평가를 여러 번 반복함으로써 자연스레 실제 점수에 가까워지도록 설계한다. 나. 교육 콘텐츠 설계 (1) 무엇을 교육할 것인가? 그 역량을 기르게 하기 위해, 무엇을 교육시킬 것인가? What을 먼저 정의해보자. 구분 구분 사례 일반적인 습득방식 1 이론, 규격, 표준 http 의 동작원리, 웹브라우저의 구조 등 검색해서 공부하고, 원리를 이해함. 2 프로그래밍 언어 파이썬, C, C++, Java 등 공부해서 이해하고, 코딩을 해봄 3 플랫폼 윈도우, 안드로이드, iOS 등 구조를 이해하고, 응용해봄으로써 사용요령을 익힘. 4 프로그래밍 능력 (코딩능력) 통신모듈, 배치처리 프로그램 등 - 기술의 동작원리를 이해하고, 프로그램을 많이 만들어 봄 기술의 동작원리를 이해하고, 프로그램을 많이 만들어 봄 5 소프트웨어 개발 예) 메모장, 계산기, 게시판 등 제품을 분해, 재현, 완성시킴으로써
  • 119.
    119 능력(제품화) - 하나의목적으로 동작하는 앱 경험을 완성시킴 - 규모가 커지면, 협력이 필요함 6 인터넷 서비스 개발 예) 직방, 배달의 민족(연습용 버전) - 고객에게 지속적 가치를 제공하는 선순환 선순환 서비스 사용자 가치 이해, 필요한 내용 식별, 구조 설계, 기능개발 - 호흡이 길고 복잡해, 여러명의 협력개발이 필수 표 14. 웹,앱 개발자가 기술을 습득하는 방식 전통적인 학습에선 교수자가 가르칠 내용을 정하고, 강의를 통해서 전달한다. 그래서, 1단계인, “이론, 규격, 표준” 등을 자세히 가르쳐주는 것 까지만 가능하다. 나머지는 다 자기가 알아서 해야 한다. 혼자서 해볼 수 있는 수준이 4 단계에서 5단계의 심플 버전까지다. 온라인 사이트나 문제 풀이 정도를 해보는 거다. 기업에서 원하는 채용수준은 간단하게라도 5단계, 6단계를 해본 사람들이다. 기술의 복잡도가 커지면서 업무의 복잡성이 커졌기 때문이다. 회사마다 업종마다 달라지는 건 회사에 가야만 습득이 가능하다. 학교에선 공통수준의 경험만 할 수 있어도 된다. 실력은 저런 프로젝트를 반복하면서 자연스레 깊어지고 넓어 진다. 그런데, 개발자들은 이런 경험을 단계별로 습득하지 않는다. 즉, 1단계 한 다음, 2단계 하는 방식으로 습득하지 않는다. 무언가를 구현하기 위해 필요한 걸 배워가면서 익힌다. 지식과 경험DB에 순차적 방식 으로 접근하지 않고, 무작위로 접근하는 거다. 즉, 교육설계를 할 때, 도서관 속에 학생을 던져 놓는 것처럼, 밀도가 높은 경험과 지 식 DB 환경에 학생들을 던져 놓고, 계속 무언가를 만들어보도록 미션을 주는 방식으로 설계한다. 웹 개발이면 파이썬을 공부하던, node.js를 공부하던, 가장 많이 만들게 해보는 대표
  • 120.
    120 사례가 “웹 게시판”이다. 개발자로시작하기 위해 익혀야 할 내용들은 대부분 들어가 있으면서 학생들이 도전 해볼 수 있는 가장 쉬운 단위이기 때문이다. 앱 개발자라면 “일기장”이 그 역할을 하고 있다. 단, 여기서 교육의 결과물은 “돌아가는 프로그램”이 아니다. 그걸 만들기 위해 필요한 기술과 원리를 습득, 응용할 수 있는 학생의 실력. 그게 교육의 결과물이어야 한다. (2) 프로젝트 기반 학습방식 소프트웨어 산업은 개발과 운영으로 나뉘어져 있다. 스타트업에선 두 개가 섞인 개발운영(DevOps)를 하지만, 이 교육모델에선 “개발”에 집중하자. 개발은 모두 “프로젝트” 단위로 이루어진다. 제한된 자원과 시간 안에 주어진 목표를 달성해야 한다. 이 과정은 팀원역량을 주어진 시간 안에 종합적으로 발휘해야 하는 협업게임이다. 교육 콘텐츠도 이렇게 할 수 있도록 설계한다.
  • 121.
    121 그림 19. “프로젝트”와“프로젝트 기반 학습법”의 차이점 (magnifylearning.org) 그런데, “프로젝트”를 하는 것과 “프로젝트 기반 학습법”은 조금 다르다. 일반적인 대학수업은 4학년 교육과정의 마지막으로 “프로젝트”를 한다. 캡스톤 프로젝 트라고 부른다. 이건 “프로젝트”이지 “학습”이 아니다. “프로젝트 기반 학습법”은 “프로젝트”를 통해 “학습”하는 과정이다. 회고를 통해 교훈을 정리하고 지식화 시켜 내 몸속에 보관한다. 무엇을 알게 되었고, 무엇이 중요했는지 서로의 관점과 생각을 나누는 게 중요하다. 그게 다 내 몸속에 지적 경험적 양분으로 쌓이게 된다. “교육 콘텐츠”는 이렇게 학습할 수 있도록 만들어져야 한다. 그런데 대부분의 “현업개발자”들에게 “프로젝트형 콘텐츠”를 만들어 달라고 하면, 대 부분 그냥 “프로젝트 사례”를 과제로 낸다. 현업에 준하는 수준이지만, 학교에 적용하기는 어렵다. 학생들에겐 지식화 시킬 경험이 없기 때문에 “학습”이 일어나지 않는다. 그래서 “현업 사례”들은 반드시 학생들이 할 만한 수준으로 “레벨다운”을 해야 한다.
  • 122.
    122 기준은 학생들이 스스로찾아갈 수 있도록, 수준을 단계별로 쪼개는 거다. 중요한 건 답이 아니라, 학생들이 해야 할 경험들을 정의해야 한다는 거다. (3) 학습 콘텐츠 설계 원리 “프로젝트 기반 학습”의 작은 개념으로 “문제 기반 학습법”이 있다. 비교해서 설명해 보자. 프로젝트 기반 학습 문제 기반 학습 목표 : 최종 제품이 있음 - 학생들은 답이 없는 개방형 과제를 수행. 여러 개의 문제가 포함되어 있음. - 학생들은 문제를 분석하고 솔루션을 만들어야 함. - 학생들은 솔루션의 프로토타입을 만들고 개발 - 전문가, 강사, 동료의 피드백을 기반으로 솔루션을 개선함 목표 : 새로운 발견, 지식의 습득 - 학생들에게 답이 없는 개방형 질문이 제시됨 - 학생들은 질문을 분석하고 - 현상을 설명하는 가설을 세움 - 추가 후속질문을 만들어내고 - 질문에 답할 수 있는 추가 데이터를 검색함. 표 15. 프로젝트 기반 학습, 문제 기반 학습에 대한 차이점 두 개는 대척점에 있지 않다. 같은 맥락이고 지향점도 비슷하다. 개발자 관점에서 보면 하나만 써도 되고 두 개를 섞어서 써도 된다. 중요한 것은 틀리고 볼품없더라도 학생들이 스스로 뭔가를 만들어 내야 한다는 거다. 그게 첫 번째다. 그리고 그걸 반성하고 더 좋은 걸 만들기 위해 다시 해봐야 한다. 이게 두 번째다. 이 경험의 세트가 가르쳐야 할 내용이다. 정답이 있지 않기 때문에 동작하는 그 무엇만 만들어낼 수 있으면 시작할 수 있다. 이런 걸 2~3회 반복해서 만들어보면, 아무리 어려운 개념이라도 머리속에 딱 잡힌다. 이걸 찾아가고 탐구해가는 과정이 오픈북 형태의 토론이다. 그런데 토론의 장점을 느끼려면, 좋은 사람들과 만날 수 있어야 한다. 그래서 이 학습법은 어쩔 수 없이 “집단학습”이 필수이다.
  • 123.
    123 (4) 학습 콘텐츠제작과정 그러면 “프로젝트형 과제”는 어떻게 만들어야 할까? 범위를 넓히면 어려우니까, 신입사원 취업자 기준으로 좁혀보자. 구분 주요내용 핵심 커리큘럼 자체보다, 학생에게 초점을 맞출 것. 배워야 할 지식이 아니라, 학생들이 겪어야 할 경험을 기준으로 설계, 관리 교수자의 역할 교육관리자, 교육 운영자, 교육프로그램 진행자 촉진자의 역할. (교육관리, 부족한 경험의 조달) 주요이론 상황학습, 구성주의 학습, 경험학습 키포인트 - 장기적인 학제 개념으로 학생들이 학습활동을 해야 함. (최소 6 개월 수준) - 학생들이 자신이 공부할 작업을 구성하고, 자기 시간을 관리해야 함 - 결과물은 반드시 코드, 서비스 등으로 제출되도록 구성 학생의 역할 - 문제 해법을 적극적으로 연구, 창의성을 발휘 - 자신을 평가, 동료를 평가, 평가 가능한 사람으로 성장 설계시 고려사항 - 답이 없는 개방형 질문일 것. 도전할만한 주제일 것 - 필수 콘텐츠가 있어야 함. - 문제를 풀기 위해 알아야 할 기술이 있도록 설계 - 답을 풀기 위해 창조, 탐구할 꺼리가 있도록 설계 - 토의, 토론, 협업 등 다양한 커뮤니케이션이 가능하도록 설계 - 학생들의 목소리와 선택을 교과에 반영 - 코드리뷰, 피드백, 수정 등이 연결되어 일어나도록 설계 - 결과는 공개되어져서 다른 사람들이 참조하거나 개량할 수 있어야 한다. 세가지 유형 챌린지 기반 학습(문제기반 학습) : 실생활 문제를 해결하는 것 장소 기반 교육 : 그런 장소에 학생이 가보게 하는 것 활동 기반 학습 : 봉사활동, 소셜활동에 참여시키는 것 평가 결과를 동료들이 평가, “평가지시서”(루브릭)을 기반으로 주관적 평가 - 주관적 편향성을 평가반복을 통한 정규분포 수렴으로 커버함 주의사항 무임승차가 필연적으로 발생 이론공부가 필요한 부분은 프로젝트 학습이 적합하지 않음 결과의 평가가 “루브릭”(평가지시서)에 의존함으로써 표준성이 약함 표 16. 프로젝트형 학습 콘텐츠 제작 요령 과제 제작시 고려해야 할 요소들이다. 전체적으로 조명하기 위해 주욱 정리를 해보았 다. 중요한 건 학생들이 경험을 통해 스스로 공부하도록 유도해야 한다. 구체적인 제작과정을 예로 들어보자.
  • 124.
    124 ① 목표 프로젝트설정 네이버 프론트엔드 개발팀에서 신입사원을 뽑는다. 어떤 사람을 원할까? “채용공고”를 찾아본다. 구분 주요내용 업무소개 네이버웹툰, 라인웹툰, 시리즈 등의 프론트엔드 개발 및 운영 디지털 미디어 콘텐츠를 기반으로 하는 웹 저작도구, 웹 미디어 플레이어 개발 HTML5 기반 게임, 애니메이션, 성능최적화, SSR 등 리서치 자격조건 시맨틱 마크업, 반응형 CSS 개발 자바스크립트 프레임워크의 동작원리를 이해하고 성능을 고려한 개발 모던 프론트엔드 개발, 테스트, 빌드, 배포 환경 구축 및 도구활용 비동기 처리 및 API 기반 통신을 이해하고 효율적인 적용 우대사항 SSR 을 사용해 다량의 트래픽을 처리한 경험, 아키텍쳐 설계 모델(서버-클라이언트 통신환경 고려) 및 아키텍쳐(계층 및 관심사 분리)를 정의하고 목적에 맞는 디자인패턴 적용 WebGL, Canvas, SVG, CSS Animation 등 그래픽스와 관련있는 전문적 경험 WebAssembly 개발경험 웹 저작도구나 FE 기술을 기반으로 하는 플랫폼 소프트웨어(스마트 TV 등) 개발경험 이 외 자신만이 가지고 있는 남들과 다른 기술 및 경험 표 17. 2021년 네이버 프론트엔드 개발자 채용공고 “자격조건”은 최소 지원자격, “우대사항”은 경력자들에게 원하는 조건들이다. “자격조건”을 100점 받는 건 불가능하다. 현장에서 필요한 건, 저 기술을 활용해 일할 수 있는 사람이지, 저 내용을 모두 알고 있는 사람이 아니기 때문이다. 따라서, 저런 내용이 포함된 프로젝트 경험이 있다면 채용이 가능하다는 뜻이다. 저 내용들은 어떻게 획득이 될까? 시맨틱 마크업, 반응형 CSS는 교재를 끼고 직접 이런 저런 페이지를 만들어봐야 한다. 가능하면 네이버가 하고 있는 서비스를 직접 구현해 보면 좋다. 이 때 쓰이는 다양한 템 플릿이나 문법들이 손에 익어 있어야 한다. 자바스크립트 프레임워크의 동작원리는, 자바스크립트라는 언어를 구사하는 것 외에도 자바스크립트가 동작하는 환경, 웹 브라우저, HTML, http 규격 등에 대한 이해가 있어야
  • 125.
    125 한다. 그런데 이건컴퓨터 이론에 대한 기본적인 이해를 바탕으로 빈번한 사례에 대한 경험이 필요하다. 이론대로 동작하지 않는 경우가 꽤 되기 때문이다. 그리고, 통신 프로 토콜의 경우 의도와는 달리 움직이는 경우가 많아서 이런 건 실제 구현경험을 통해 습득 할 수밖에 없다. 개발, 테스트, 빌드, 배포는 작더라도 비슷한 회사를 다녀봐야 쌓일 수 있는 경험이다. 테스트, 빌드, 배포는 고객 관점에서 웹 서비스 중단없이 기능 업그레이드를 하고자 하는 방법이기 때문에, 서버 환경에 따라 순서나 제한사항이 다르고, 문제 발생 시 롤백, 재배포하는 방법이 기업환경에 따라 달라지기 때문이다. 즉, 책이나 커뮤니티 게시판을 통해 습득할 수 없고, 작더라도 상용서비스를 직접 운 영해봐야 한다. 비동기처리는 통신이론을 이해하고 있어야 한다. 그러려면 컴퓨터 비트연산이나 메모 리, 통신환경에 대한 이해도 바탕이 되어야 한다. 즉, 이 경험은 1~3년 정도 스타트업을 다니면서 여러 가지 일을 경험해 보았다면, 일 반적으로 습득되는 경험들이다. 어렵다기 보다 복잡도가 높다. 대학생 수준에서 획득할 수 없는 경험인가? 그렇지 않다. 시간만 충분히 있다면 필요 한 정보를 찾고, 친구들이랑 비슷한 프로젝트를 해보면 된다. 이 경험을 목표로 삼고 공부를 하면, 비슷한 기업에 취업할 수 있는가? 그렇다. 프론 트엔드 개발자들이 하는 일이 대부분 비슷하기 때문이다. 그렇다면 이런 자격을 갖추었음을 어떻게 증명할 수 있을까? 경력직의 경우, 대부분 기존에 했던 프로젝트를 기준으로 이야기를 나눈다. 검증하고 싶은 건 이거다. “지금 우리 회사일을 제대로 할 수 있는가?” 보통 상황을 주고, 복잡한 기술구조나 알고리즘, 설계 등에 대한 이야기를 묻는다. 코 드를 어떻게 짜야 하는지 묻는다. 비슷한 일을 해봤고 함께 일했던 사람이 보증을 해준
  • 126.
    126 다면 대부분 PASS다. 신입사원의 경우, 초보적인 기술구조나 알고리즘 등을 묻고 코드를 어떻게 짜야 하는 지 묻는다. 검증하고 싶은 건 이거다. “조금 기다려주면 우리 회사일을 제대로 할 수 있 는가?”, “조금만 가르쳐주면 금방 따라와서 1인분의 몫을 할 수 있는가?” 비슷한 일을 해보지 않았고, 보증해 줄 사람도 없기 때문에 기본적으로 하드 스킬과 소프트 스킬이 준비된 친구인지 알아보는 거다. 그래서 이 수준을 “과제의 최종목표”로 정한다. 최종 목표로 정할 때 다음과 같이 익혀야 할 내용을 분해하고, 난이도를 레벨링 한다. 레벨은 5점 척도면 충분하다. 척도를 많이 나누면 평가기준도 세분화해야 하는데, 그 러면 그에 맞는 피드백이나 보상도 달라져야 한다. 피드백, 보상 수준이 세분화되면, 동 료평가를 사용하기 어려우므로, 레벨을 많이 나누지 않는 게 좋다. 구분 요구 경험 역량 구분 기술능력 http 통신에 대한 이해 프론트엔드(1), 웹기초(1) HTML 에 대한 기초 프론트엔드(1), 웹기초(1) React + node 코딩능력 프론트엔드(3), 프레임워크(4) 업무경험 3 인 이상 프로젝트 경험 개발업무(1) 3 개월 이상 장기 프로젝트 경험 개발업무(2) 상용 앱 출시 경험 개발업무(5) 역량은 가능하면 기업이 사용하는 용어를 사용한다. 학생들이 사회와 학교를 혼동하지 않게 되며, 학습 목표를 정확하고 정교하게 수립할 수 있게 된다. 또 용어가 같기 때문에 기업개발자들과 이야기하는데도 어려움이 없다. 전문용어는 가능하면 그대로 사용하면서 시간 있을 때 익혀 두도록 한다. ② 중간 프로젝트 설정 목표가 정해지면 중간 프로젝트를 3~5단계로 나눈다. 교재처럼 딱딱 단원을 나눌 필요는 없다. “제2장. 어떻게 개발자가 되는가?”에서 이야 기한 것처럼, 여러 역량을 함께 사용하도록 구성한다.
  • 127.
    127 단계가 높아지면 복잡도가높아진다. 중요한 건 “쉽게, 단계별로” 구성해야 한다. “신입사원”은 기업 입장에선 최저 레벨이지만, 학교 입장에선 최고 레벨이다. “학교”는 기초가 없는 친구들을 교육시키는 곳이다. 그래서 쉬운 단계에서부터 시작한다. 기초가 없는 친구들에게 필요한 건 첫째 “도와줄 친구들”, 둘째 “함께 공부할 내용들” 이다. 도와줄 친구들은 학습 커뮤니티로 해결할 수 있다. 하지만 그 친구가 헌신하는 방 식으로 이루어지면 안 된다. 금방 번아웃이 오고 교육이 지속될 수 없다. 그룹학습은 기본적으로 자기가 해오고, 친구가 함께 봐주는 식으로 진행된다. “자기주 도학습”, “집단학습”, “경험학습”의 원리다. 친구가 한 번에 모든 걸 다 봐주지도 않는다. 나선형 커리큘럼 모델(Spiral curriculum model)은 한 걸 또 하고를 반복한다는 뜻이다. 즉, 반복하면서 익숙해져서 성장하는 거다. 기술지식은 경험이 없으면 굳어지지 않는다. 예를 들어, “http 통신방식”은 한 번에 이해할 수 없다. 이론을 머리에 담고 있다고 해서 할 수 있는 게 아니다. 기술은 자기가 해본 만큼 이해를 하게 된다. 학생들이 쉬운 수준의 일을 끝내고 복잡한 수준으로 나가면서 성장하도록 만든다. 그런데, 이런 콘텐츠 설계는 생각보다 쉽지 않다. 해보지 않았다면 잘 되지 않는다. 이것도 나름 노하우가 생겨야 익숙해진다. 처음에는 이렇게 해본다. 처음에는 그냥 교재를 참고하여 구성한다. 더 세련되게 하면 좋겠지만, 아쉽게도 이게 가장 쉬운 입문방법이다. 그리고, 학생들 반응과 피드백을 보면서 계속 튜닝을 해간다. 실시간으로 바꿀 순 없 으니, 1기, 2기 이렇게 나누어 가면서 조금씩 바꾼다. 학생들의 변화과정을 관찰하고, 후 행방식으로 문제를 업그레이드한다. 튜닝이란 실사례에 맞춰 복잡도를 적절히 높이는 거다. 경험상 1~2회 정도 반복하면 문제가 꽤 쓸 만하게 나온다. 42의 경우 매년 학생들의 경과를 보고 조금씩 튜닝해간다. 중간 프로젝트 사이즈를 3~5개로 나눈다는 건, 프로젝트 하나의 복잡도나 거친 정도
  • 128.
    128 를 적절히 표현하는거다. 3명으로 구성된 팀이, 1주일 정도 했을 때 끝낼 수 있는 분량 이 딱 좋다. 해보니 2주일은 약간 처지는 느낌이 있고, 1주일 정도가 “협력압박”을 유도할 수 있는 적정한 기간이다. 그리고 1주일 단위로 성과가 나오면 “학습 동기”가 무척 높아진다. 목표 프로젝트를 끝내는 건 한 달 정도로 잡는다. 한 달보다 길어지면, 동기가 급격하게 떨어진다. 늘어지더라도 1.5개월 정도에 끝낼 수 있도록 사이즈를 잡는다. 프로젝트 기간과 복잡도는, 설계시 아주 중요하다. 기간이 짧으면 난이도가 낮아져야 해서, 학생들이 협력 없이 혼자 클리어 해버린다. 상호 피드백이나 토론 같은 “경험 교환 과정”은 일어나지 않는다. 복잡도와 기간을 초보자 2인이 할 만한 수준으로 맞춘다. 즉, 3명이 2명 난이도의 일 을 매주 반복하며 1달짜리 프로젝트를 하게 한다. 1명 분의 여유가 있다는 건, 서로 가르 칠 여유가 있다는 뜻이다. 이건 Full time으로 참여하는 경우이다. 직장인이라면 이야기가 좀 다르다. 직장인들의 가장 일반적인 접근성은 “저녁 2시간 x 5일 x 5주 = 50시간”이다. 그런데 저녁 2시간은, 논쟁을 벌이거나 무언가를 만들기 위한 시간으로는 부족하다. 특히 직장인들은 수업시간을 어기는 경우가 많아서 2시간을 알차게 활용할 수 없다. 몰 입시간이 낮아 협력학습을 기대하고 커리큘럼을 설계하기 어렵다. 소프트웨어 교육은 훈련프로그램이기도 하다. 꽤 시간을 두고 도전, 실패를 반복하는 학습법이다. 그래서 1~2개월 코스로는 학습이 어렵다. 3개월 단위 등 학기 개념을 도입 하는 게 좋다. ③ 단위 프로젝트 개발 “목표 프로젝트”가 기업에서 일어나는 작은 수준의 단위라면, “단위 프로젝트”는 학교 에서 일어나는 작은 수준의 단위다.
  • 129.
    129 위에서 이야기했듯이, 3인팀이1주일 정도를 투자할 만한 크기로 만든다. 이유는 약간 만 열심히 하면 풀 수 있을 정도로 난이도를 맞추기 위해서다. 특징 설명 시나리오성 과제는 스토리를 가지고 시나리오 형식으로 만든다. 그래서 존재하지 않는 환경 등을 상상할 수 있다. 이 상상이 협업, 창의성, 다양성을 만들어낸다. 복잡성 문제를 파악하는 것부터 시작할 수 있어야 한다. 완벽한 문제를 만들어서 이해시켜주는 게 아니라, 학생들 스스로 문제를 Define 할 수 있어야 한다. 융합성 하나의 지식, 하나의 경험 만을 활용하도록 구성하면 안 된다. 최소한 2 개 이상의 스킬들이 활용되도록 구성한다. 즉, 너무 잘게 쪼개어서 난이도가 낮아지면 학습효과가 없다. 현실성 과제 시나리오는 현실성이 있어야 한다. 교수자가 없기 때문에 학생들 스스로 물어보고 가르쳐주려면, 현실법칙으로 설명되는 무엇이어야 한다. 경험성 과제는 경험을 통해 추론할 수 있는 것이어야 한다. 사람들의 경험을 연결시키면 하나의 경험이 완성되는 것이 가장 좋다. 비구조성 과제설명이 현실을 벗어나 과도하게 친절하지 않아야 한다. 현실 업무에서 얻을 수 있는 정도의 수준이 딱 좋다. 학생들은 비구조화된 문제를 해석하여 구조화된 문제로 변환할 수 있어야 한다. 표 18. 단위 프로젝트가 가져야할 특징 프로젝트형 과제는 위와 같은 특징을 가져야 한다. 물론 100점일 필요는 없다. 간단히 요약하면, 가능한 실제 프로젝트와 유사하게 만든다. 다만 학생들이 소화하기 쉽게 작은 크기로 여러 개를 나눈다. 회사에서 “프로젝트를 한다”는 건, 문제를 발견, 해결해야 할 이슈를 정하고, 풀기 좋 게 적절히 해체한 후, 단위별로 해결 방법을 모색, 그걸 코드로 구현한다는 뜻이다. “단위 프로젝트(학습 과제)를 한다.”는 건 그걸 학교 안에서 해본다는 뜻이다. 학교는 충분한 시간을 가지고 하나씩 뜯어볼 수 있는 안전한 테두리다. 자전거를 뜯어보면서 정비사가 되어가듯, 소프트웨어 개발도 그렇게 공부한다. 그런데 이런 과제는 절대 첫술에 예쁘게 만들어지지 않는다. 학생들 행동을 보면서 의도대로 학습하고 있는지 꾸준히 관찰해야 한다. 과제 사이즈의 적절성과 복잡도가 “학 습 콘텐츠”의 핵심이다.
  • 130.
    130 ④ 문제 개발 “문제”Problem 은 “단위 프로젝트”를 구성하는 요소이다. 그래서 “단위 프로젝트” 하나에 최소한 3개 이상의 “문제”를 가질 수 있도록 구성한다. 기준은 역시 “학습 단위”를 적절히 잘라주는 것이다. 전체적으로 보면 이렇게 구분될 수 있다. 구성단계 주요 내용 목표 역량 목표 프로젝트 2 인이 플레이할 수 있는 “장기게임”을 웹으로 만들어라. - 로비에 입장한 후 사용자는 게임방을 열 수 있다. 등등등 React.js + node.js 기술 3 인 이상 협업 프로젝트 알고리즘 능력 ㄴ중간 프로젝트 로비 시스템 만들기 - 입장한 사용자는 채팅방을 열고, 다른 사용자를 초대할 수 있다. - 관리자는 특정 사용자의 권한을 조정할 수 있다. 등등 다중접속환경에 대한 이해 유저시나리오 도출역량 클래스 기반 설계 역량 서버 부하분산 구현하기 - 인증서버를 별도로 구축하고, 이를 기반으로 Scale out 할 수 있는 구조를 설계하라 - OOO 기능을 하도록 서버를 구현하라. 다중접속환경에 대한 이해 실시간 트랜잭션 처리에 대한 이해 ㄴ단위 프로젝트 채팅방 만들기 - 개설, 폐쇄, 강퇴 기능 포함 등등. 채팅서버 개발 역량 ㄴ문제 해시구조를 활용하여 FIFO 큐를 설계하라. 해시알고리즘 기타 등등 표 19. 학습 콘텐츠의 단계별 구조 “목표역량”은 프로젝트를 통해 얻어야 할 경험들이다. 명사가 아니라 “서술적”으로 기 술한다. 즉, 현업 개발자들에게 이렇게 이야기할 수 있다. 이 역량을 들은 개발자들이 이 해한대로 질문해도 핀트가 어긋나지 않아야 한다. 교육관리를 위해, “서술적 묘사”는 “카테고리 명사”로 분류될 수 있다. 하지만, 학생들 과 개발자들에게는 한 눈에 이해할 수 있을 정도로 서술적으로 묘사되어야 한다. “목표역량” = “역량척도”는 학생들이 구체적으로 목표를 인지하고 그렇게 노력하기 위
  • 131.
    131 해 필요한 것이지,이론적 탐구를 위해 존재하는 것이 아니기 때문이다. (5) 동료평가 설계 ① 평가지시서 우리 교육의 목적은 학습자가 어떤 기술이나 경험, 역량 등을 습득하게 하는 것이다. 그래서 과제평가는 필기시험으로 하지 않는다. 그건 지식을 확인하기 위한 거다. 경험과 역량을 확인하려면 “대면 확인” 밖에 답이 없다. 이 때 사용할 질문지를 “평가지시서”, 루브릭 Rubric이라고 한다. 학습 과제를 만들 때는 반드시 1:1로 “평가지시서”를 같이 만들어야 한다. 답변은 Yes, No 또는 5점 척도 등 척도방식을 사용한다. 92점, 91점 등 점수부여방식 을 사용하지 않는다. 포함사항 주요내용 기본사항 제출된 코드가 평가가 가능한 수준으로 동작하는 프로그램일 것 작동확인 코드가 학습목표에 의도한 대로 동작하는지를 확인한다. 오류처리 코드가 오류처리를 얼마나 했는지 확인한다. - 기본 : 메모리, Disk I/O, 네트워크 통신에 관한 사항 알고리즘 알고리즘이 포함되는 경우, 알고리즘에 대한 이해수준과 응용능력을 확인한다. 설계 복잡도가 높은 문제의 경우, 설계과정과 자기생각에 대한 이해를 묻는다. 협업과정 팀 작업의 경우, 협업과정에 대한 이슈를 확인한다. - 무임승차자 발견시 전체 FAIL 처리 - 의도한 행동들이 일어났는지를 확인 경험획득 문제를 풀면서 얻게된 경험 등에 대해 물어보고 확인한다. 표 20. 평가지시서 설계시 포함해야 될 내용들 평가지시서를 통해 확인해야 할 사항은 이렇다. 첫째, “구현19했느냐?” 19 구현 : Implementation, 코딩을 통해 동작하는 프로그램을 만들어내는 것
  • 132.
    132 둘째, “정말 네가구현했느냐?” 셋째, “또 만들 수 있냐?” 이다. 만일 팀과제라면 이렇다. 첫째, “구현했느냐?” 둘째, “정말 팀원 모두가 함께 일을 했느냐?” 셋째, “이 팀으로 다시 또 만들 수 있겠냐?” 이다. 즉, 동작하는 소프트웨어를 만드는 게 첫 번째 교육이고, 학습목표이다. 개발자의 기본 능력은 “그거 만들어주세요.” 할 때 “그걸 만들어주는 거다.” 그걸 못하 면 개발자 자격이 없다. 조금 더 나아가면, “그런 거 만들어볼까?” 할 때 “그런 걸 만드 는 거다.” “평가지시서”에는 그 경험을 확인하기 위한 질문들을 담아야 한다. ② 동료 평가 그런데, 동료 평가를 하면 “속이려는 현상”이 생겨난다. 평가자가 전문가라면 쉽게 밝혀낼 수 있지만, 그렇지 않다면 평가는 잘못될 수 있다. … 라고 생각하면 안 된다. 이런 생각이 들었다면, 평가방식과 교육철학을 완전히 잘 못 이해한 거다. 이걸 시험처럼 피평가자의 실력을 평가하는 자리로 이해하면 이 교육은 완전히 망가진다. 평가활동은 학습활동 중 하나이다. 이 활동 중에 서로를 가르치는 “Teaching”과 경험 이 공유되는 “전달”현상이 일어난다. 이런 현상이 일어나지 않는다면 이 교육은 실패다. NO 피평가자 평가자 일어나는 현상 대응방법 1 올바른 학습 기경험자 평가 중에 의견교환이 일어남. 평가자가 빡센 경우 FAIL 도 받음. 전체적으로는 기경험자의 경험이 피평가자로 전달됨 필요없음 2 올바른 학습 비경험자 평가 중에 피평가자가 평가자를 가르침 평가자가 잘못된 PASS 를 주기도 함 재도전을 통해 재학습
  • 133.
    133 전체적으로는 피평가자의 경험이평가자로 전달됨 3 속이고자 함 기경험자 (올바른 평가) 기경험자가 피평가자를 탈락시킴 - 평가자의 경험이 피평가자에게 전달됨 (잘못된 평가) 기경험자가 피평가자를 PASS 시킴 - 피평가자에게 실력이 쌓이지 않음 이번 문제를 알아야만 다음 문제를 풀 수 있도록 콘텐츠를 만듬 4 속이고자 함 비경험자 (올바른 평가) 비경험자가 피평가자를 탈락시킴 - 평가지시서를 통해 원하는 행동이 없음을 확인 (잘못된 평가) 비경험자가 피평가자를 PASS 시킴 - 피평가자에게 실력이 쌓이지 않음. 이번 문제를 알아야만 다음 문제를 풀 수 있도록 콘텐츠를 만듬 표 21. 평가 중에 일어나는 현상과 대응방안 2번 사례의 단점은, 부족한 조건임에도 불구하고 PASS를 줄 수 있다는 거다. 하지만, 교육과정을 클리어할 때까지, 평가를 50~100번 정도 반복하다 보면 자연스 레 실력과 평가의 결과는 일치하게 된다. 3,4번 사례의 단점은, 피평가자가 평가자를 속이는데 종종 성공한다는 거다. 그래서 교육과정을 점점 어렵게, 앞쪽 과제를 제대로 통과하지 못하면 다음 과제를 통과하지 못하도록 설계한다. (Spiral curriculum model의 장점) 교육과정을 모두 통과할 수도 없고 얻는 것도 없기 때문에 사회 속에서 자연스럽게 도태된다. 이런 사례와 사실을 학생들에게 적극 공유함으로써 문화적 공감대를 형성시키고, 자연 스럽게 자정작용이 형성되도록 한다. “즉시 통제방식”은 교육기관이 무결하다는 걸 과시하기 위한 수단일 뿐 학생들은 수 동적으로 변하게 된다. 커뮤니티 학습은 문화와 분위기로 운영되는 곳이다. 이걸 잊으면 교육은 망가진다. ③ 평가 방식 그럼 어떤 식으로 평가방식을 설계해야 할까? 개발 문제는 정답이 있긴 하지만, 하나의 정답만 있는 건 아니다.
  • 134.
    134 예를 들어 이런문제와 답변을 생각해보자. 문제) 터미널 환경에 “시간”을 출력하는 함수를 만들어보자 답 1) printf("Today is %s", ctime(&now)) 답 2) echo “Current time : $now” 답 3) … 문제가 정답이 없는 열린 문제이기 때문에, 1번, 2번이 모두 정답이다. 좀 모자란다고 해도, 시간을 출력한다면 모두 정답이다. 물론 코드가 동작하는 게 첫 번째다. 다만, 이렇게 물어보도록 설계한다. “왜 저렇게 코딩했는지?”, “다른 조건이 주어졌다면 어떻게 코딩 했을지?”, “이러이러한 제한 조건에선 어떻게 처리할지” 등등. 피평가자가 대답을 전부 다 할 수도 있고, 아닐 수도 있다. 하지만 중요한 건, 그런 생각을 하면서 코딩을 했느냐 아니냐의 차이다. 그런 생각을 하면서 코딩을 했다면, 조금 더 높은 과제로 나갈 준비가 된 거다. 단지 그냥 PASS만을 위해 코딩했다면, 아직 준비가 덜 되어 있는 거다. 동료평가는 이런 식으로 한다. 하나의 정답이 있는 것처럼 집착할 필요가 없다. 그런데 주관이 개입되면 평가자가 틀릴 수도 있다. 하지만 수용한다. 그것도 미리 겪어야 할 경험이고, 연습해야 할 상황이기 때문이다. 우리 교육은 지식 수준을 높이기 위한 교육이 아니란 걸 잊어서는 안 된다. 그럼 주관성에 의한 편향성은 어떻게 관리할까? 교육과정을 졸업할 때까지 50~100회 정도의 평가를 하게 한다. 다양한 사람에게서 다른 과제를 여러 번 평가받다 보면, 결과는 자연스레 실제 실력 에 수렴하게 된다. ④ 전문가 평가 전문가 피드백이 없어도 교육은 동작한다.
  • 135.
    135 하지만, 꽤 많은경우 전문가의 피드백이 학생들을 성장시킨다. 학생들이 바라볼 수 없는 시각을 제시하기 때문이다. 다만, 전문가의 피드백이 커뮤니티 내에서 정답인 것처럼 취급되거나, 새로운 시도를 저해한다면, 부정적 요소로 동작하고 있는 거다. 그런데 전문가는 학교 외부 집단이므로 변화시킬 수 없다. 다만, 학생들에게 인지시킨다. “전문가의 의견은 경험치를 반영하기 때문에 그 또한 귀중한 조언이지만, 다른 정답이 있을 수 있기 때문에 절대의견처럼 취급될 필요는 없다”라는 걸. 이걸 구두로 전달할 필요가 있는 건, 우리 학생들이 대부분 수능교육에 단련이 되어, 무의식적으로 전문가의 조언을 정답처럼 인식하고 암기하기 때문이다. 전달방식도 서면공지보다는 구두 전달을 통해, 커뮤니티 내부에 전파되도록 하는 게 좋다. 게시판 공지처럼 쓰여지면 엄격한 규칙처럼 비춰지기 때문에 학생들의 자발성은 낮출 수 있기 때문이다. (6) 학습자원의 중요성 과제를 설계할 때 “학습자원”을 가이드 하는 건 매우 중요하다. 커뮤니티 학습이 가능한 이유는, 공부하고 참고해야 할 것들이 공개되어 있기 때문이 다. 코드, 이론, 강의자료 등 모든 것이 검색을 통해 접근이 가능하다. 정보자원을 찾을 수 없다면 커뮤니티 학습은 불가능하다. 지식과 경험을 조달할 곳이 없기 때문이다. 타인의 경험에만 의존하는 건, 정보가 불확실하고 편차도 크고, 습득시간 도 오래 걸린다. 사람들이 필드가 아니라 교육기관을 찾는 이유는, 기술을 익히는 데 필요한 학습시간 과 노력을 줄이기 위한 거다. 따라서, 전혀 접근할 수 없는 정보자원을 알아야만 풀 수 있는 과제라면, 그건 콘텐츠 설계를 잘못한 거다.
  • 136.
    136 ① 교재의 가치 레벨제로인 친구들, 아무런 기초가 없는 사람들은 정보검색 능력도 없다. 동작원리를 몰라 무엇을 검색해야 할지 알 수 없을 뿐더러, 용어 자체도 알지 못하기 때문이다. 그래서, 기본 자원으로는 초보자를 도울 수 있는 정보를 제공해야 한다. 가장 먼저 필요한 게 “지도”다. 가장 초보적인 수준으로 시작하는게 필요하다. 용어나 개념까지 익힐 수 있는 “교재”가 있으면 좋다. 핸드북으로 있으면 더 좋다. 초 보자의 경우 필요할 때 쉽게 펼쳐볼 수 있기 때문이다. pdf 도 있으면 좋다. 쉽게 검색할 수 있고, 스마트폰이나 노트북에 쉽게 넣어다닐 수 있기 때문이다. “교재”가 좋은 건 “목차”가 있다는 거다. 초보자는 전체 안목이 없어, 지식을 체계화하기 어려워한다. 새로운 경험을 쌓아도 그 걸 어디에다 끼워 넣어야 할지 모른다. 중요도와 우선 순위를 모르다 보니 배운 걸 금방 잊어버린다. 이 때 필요한 게 전체적인 지도다. 교재의 “목차”는 이 지도역할을 해준다. ② 동영상 강의 IDE를 열고 코딩하는 화면을 보여주는 건 정말 쌩초보자용이다. IDE 자체를 어떻게 실행해야 할지 모르는 경우, 하나라도 따라해볼 수 있게 해준다. 하지만, 그 시기를 지나고 나면 메인 콘텐츠가 되긴 어렵다. 동영상은 따라하기 콘텐츠가 아니기 때문이다. 따라해 보고 베끼기 도구는 정확히 “블 로그”의 역할이다. 동영상은 이야기를 전달할 때 탁월하다. 기술 배경, 현장 이야기, 실제 적용사례 등을 들려줄 때 쓴다. 우리 학습에서는 배경과 사례를 이해하는 게 정말 중요하다. 학습동기를 적극적으로
  • 137.
    137 자극하기 때문이다. 가능하면 과제를이해하기 위한 설명이거나, 힌트를 제공하고자 할 때 유튜브나 동영 상 강의를 첨부하자. ③ 전문 자료 우리 학습방식은 불교의 “깨달음”이 아니다. 동료학습이 가능한 이유는, 그 정도의 동료들 수준에서 학습정보가 구해지기 때문이다. 그리고, 인터넷 등에 충분한 정보가 존재하기 때문이다. 하지만, 학습자료를 찾을 수 없다면, 우리의 학습은 이루어지지 않는다. 자료를 기반으 로 지식, 경험의 공유를 통해 학습이 일어나기 때문이다. 예를 들어 이런 프로젝트형 과제가 이렇다고 하자. “유방암 검출을 위한 유전자 검색 알고리즘을 개발하라.” 만일 유방암, 유전자 정보에 대한 의학적 지식이 없다면 어떨까? 이 문제는 절대로 풀 수 없을 거다. 그럼 그런 의학적 지식은 어떻게 확보해야 할까? 의학서적과 관련 논문을 충분히 찾아서 공부해야 한다. 또는 전공 의대생을 만나 도 움을 요청해야 한다. 그런데 의학에 대해 완전 문외한이라면 어떨까? 어떤 정보를 찾아야 할지, 어떤 사람을 만나야 할 지조차 파악하지 못한 채 한참을 헤매야 한다. 이렇게 콘텐츠가 설계되었다면 잘못된 거다. 찾으면 정보가 나오는 것과, 안 나오는 것에는 아주 큰 차이가 있다. 그래서 학습 콘텐츠를 제작할 때, 과제를 풀기 위해 어떤 정보들을 참고하면 좋을지 “단서”를 제공하거나, 핵심적인 “전문자료”는 제공되어야 한다. ④ 훈련환경 컴퓨터 등 훈련환경도 학습자원이다. 만일 Linux 프로그램을 만들어야 하는데, Linux
  • 138.
    138 머신이 없다면 교육은이루어질 수 없다. Hadoop을 공부해야 하는데, 3대 이상의 서버 를 구성할 수 없다면 교육이 이루어질 수 없다. 클라우드 환경, GPU 환경 등은 꼭 필요한 학습자원들이다. 우리 교육은 “실습훈련” 중심이다. 실제 해보지 않고 입으로만 코딩하는 건 실력이 아니다. 학교를 운영한다면 필요한 컴퓨팅 자원을 꼭 확보할 필요가 있다. 즉, 소프트웨어 교육에도 교보재는 꼭 필요하다. ⑤ 인적자원 학교 수준의 과제는 동료학습만으로 커버가 가능하다. 문제의 난이도, 정보취득의 용 이성, 학습의 편의성 등이 충분하기 때문이다. 하지만, 취업 및 기업 수준의 과제는 동료학습만으로는 안 된다. 학생들이 다양한 현 장 사례를 이야기해줄 순 없기 때문이다. 그래서, 이런 과제들은 멘토진들을 확보해야 한 다. 즉, 인적자원도 학습자원 중의 하나이다. 학습 콘텐츠를 설계할 때 함께 고려해야 한 다. 2. 교육방식 설계 가. 학습동기 그러면, “프로젝트 기반 학습”방식을 어떻게 교육시킬 것인가? 물론 과제마다 세부사항들을 적시할 수 있다. 하지만, 큰 흐름을 먼저 정리하자. 우리 교육모델은 처음부터 끝까지 학생들이 스스로 하는 자율학습이다. 기본원리는 “집단학습” 이며 캠프는 “학습환경” 만을 제공한다.
  • 139.
    139 교육의 모습을 정리하자면이렇게 설명할 수 있다. 분류 구분 주요내용 특징 기본 학습내용 (기초) 커리큘럼 격파 (개인과제, 그룹과제) (취업) 취업과제 격파 (기업형 과제) 문제은행 DB 개인학습 자율 학습, 동료 학습 - (학습자원) 교재, 유튜브, 블로그, 타인코드 결과물 : 코드 제출 학습 : 코드 리뷰 그룹학습 학습그룹 만들기(3~5 인) - 동아리 참여, 변경 - 목적 그룹(과제당 1 개) 프로젝트형 실습 협업능력, 복잡도 증가 과제평가 제출된 코드기준, 코드리뷰 방식 상호평가 동아리 참가자 (랜덤매칭) PASS/FAIL 만 결정 취업,창업 도전,시험 사이드 프로젝트 (동료들간) 해커톤 등 대회 참여하기 현실 프로젝트 사회속의 성장 네트워크 만들기 - 컨퍼런스, 세미나 등 현업 개발자 커뮤니티 표 22. 새로운 교육모델의 전체 구조 그런데 이런 교육이 잘 작동하려면, 이 방식에 맞는 구성원들부터 모아야 한다. 이 때 식별할 수 있는 “키워드”가 하나 있다. 바로 “학습동기”이다. 소프트웨어 개발은 훈련학습이다. 행동하지 않으면 알고 있는 것도 잊어버리게 된다. 그런데 나의 행동은 누가 시켜서 하는 게 아니다. 동기가 없으면 하지 않는다. 그래서, 이 교육방식의 핵심은 “동기가 이끄는 스스로 학습방식” 이다. 그래서 두루뭉 실하게는 “성인학습”의 원리로 교육방식을 설계한다. 성인학습의 출발점이 “학습동기”이 기 때문이다. 구분 전통적 교육철학(Pedagogy) 성인대상 교육철학(Andragogy) 교육목적 전인적 교육, 민주시민 교육 직무기술, 자아존중감 증진, 삶의 질 향상을 목적으로 교육에 참여 학습자 학습자는 의존적 교사중심적 - 어린이를 가르치다 학습자는 자기주도적 참여학습 - 성인학습을 돕는다. 교수자 역할 Teaching 동기부여, 안내자 Facilitating
  • 140.
    140 학습자 호칭 학생,교육생(Student) 학습자(Learner) 학습지향성 교과목 지향 생활중심적, 성과지향적 사회적 역할변화에 기초 교육방법 교사중심적 수업 학생중심적 수업 학습초점 미래지향적, 교과 지향적 실생활에 즉시 적용가능한, 문제해결 지향적 학습동기 외적 동기 사용(보상, 벌) 내재적 동기 중요(호기심 등) 학습책임 교사가 책임 학생이 책임 동료의 중요성 학습자원으로의 동료, 덜 강조 동료는 매우 중요한 학습자원 경험의 역할 학습자원으로서의 가치 없음 질적, 양적으로 풍부한 경험으로 교육활동에 참여, 학습자원으로서의 가치가 높음 주요사례 초.중.고등학교 교육 요리학원, 댄스학원 표 23. 청소년 교육과 성인교육의 차이점 “성인”들은 실용적인 걸 지향한다는 측면에서 기존 교육과는 다르다. 취업, 창업 등 당장 실생활에 도움이 되는 걸 배우고 싶어한다. 자기의지로 교육장을 찾고 의도와 다르면 교육장을 이탈한다. 학습보다 생업이 우선이 어서 안정적인 공부시간을 확보하는데도 어려움이 있다. 그래서 이렇게 “내적동기”가 높은 사람들을 위한 교육은, 실습 위주로 스스로 해볼 수 있게 “학습환경”을 조성하는 방식으로 진행한다. 그런데 이 교육모델은 단점이 있다. “동기가 지속되지 않으면, 학습이 중단된다.” “수동적 학습” Passive learning은 시키는 대로 하면 되기 때문에, 동기가 상실되어도 어느 정도 학습이 일어난다. 하지만, “능동적 학습” Active learning은 동기가 상실되면 학습이 아예 멈춰버린다. 그래서 “동기”를 잃지 않고 유지시킬 수 있도록, 관리해줄 필요가 있다.
  • 141.
    141 (1) 매슬로의 욕구이론 그림20. 매슬로의 욕구5단계 이론 “사람은 자신의 욕구를 채우기 위해 행동한다.” 욕구이론의 기본 개념이다. 즉, 사람들에게는 누가 자극하지 않아도 자연스럽게 발생되는 행동 에너지가 있다. 그게 “욕구”이다. 매슬로20는 좀 더 자세하게 이야기한다. “사람들은 결핍욕구를 채운 다음에야 성장을 위해 노력한다.” 매슬로는 욕구를 세분화해서 결핍욕구와 성장욕구로 나누었다. “결핍욕구”란 나에게 부족한 것을 채우고자 하는 욕구인데, 기본적으로 육체적 안정감, 심리적 안정감을 대상으로 한다. “성장욕구”는 다른 사람에게서 인정받고자 하는 욕구인데, 기본적으로 나만의 방식으 로 인정받기를 원한다. 그리고 이런 욕구는 하위 욕구가 충족되어야, 상위 욕구가 나타난다는 것이다. 즉, 내가 건강한 다음에야 직장을 다닐 수 있게 된다. 자존감이 높아지고 인정받고 난 20 Maslow : 1908-1970, 미국 철학자, 심리학자, 1943년 욕구 5단계설을 주장했고, 맨 상위 개념으로 “자 아실현”을 이야기했다. 이후로 “자아실현”이라는 개념이 널리 사용된다.
  • 142.
    142 후에야, 더 성장하고픈욕구가 발현된다. (2) 성취동기이론 “성취동기이론”이라는 게 있다. 1960년대, 맥클랜드가 발표했다. “개인의 욕구는 타인과의 관계, 상호작용에 의해 생성되며, 기본적으로 성취욕구, 친화 욕구, 권력욕구21로 나눌 수 있다. 이 때 가장 중요한 것은 성취욕구이며 이게 충족되면 새로운 동기가 발현된다.” 그림 21. 내적동기 자극방법 학습과 관련된 건 성취욕구인데, 이걸 계속 자극하려면 과제의 난이도가 중요하다. 성취감을 줄 수 있어야 하기 때문이다. 난이도를 적절히 배치하고 과제를 풀었을 때의 쾌감을 선물해준다면, 학습동기는 더 잘 유지된다. 나. 학습환경 설계 그런데 이렇게 동기를 유지시키기 위한 학습환경은 어떻게 구성해야 할까? 사실… 이게 어렵다. 해 본 사람이 거의 없기 때문이다. 21 성취동기이론 : 성취욕구 : need for achievement, 친화욕구 : need for affiliation, 권력욕구 : need for power, 조직행동론 연구 중에 탄생된 개념으로 이런 욕구를 감안해서 조직을 운용해야 한다고 주장했다.
  • 143.
    143 우리나라에 성인학습은 1950년대이후에 시작되었고, 그나마도 문맹퇴치가 목적이었 기 때문에 전통적인 강의수업방식을 따랐다. 1980년대 “평생교육”이 본격화되었지만, 교육방식은 여전히 “수업 방식”을 고수했다. 즉, 이런 학습환경은 설계해본 사람도 없고 구하기도 어렵다. 학생들조차 낯설어 한다. 이런 교육을 받아보지 못했기 때문이다. 특히, 소프트웨어 교육을 위한 환경학습은 전세계적으로도 흔하지 않다. 일반적으로 알려진 게 “조나센 모형”이므로 이를 참고해서 설계해 본다. 그림 22. 조나센의 구성주의 학습환경 설계 모형 그는 1947년생으로 대학교를 다니면서 TV카메라맨으로 일을 했는데, 이후 교육에 관 심을 가지면서 학습기술 및 교육심리학 교수로 일을 했다. 특히 미디어나 컴퓨터 등으로 학습하는 것에 대해서 관심이 많았는데, 그는 구성주의 학습방식을 이용해 이런 교육을 설계할 수 있음을 증명하였다. 이론적으로 접근하면 좀 복잡하니까, 이해하기 쉽게 딱 잘라서 이야기해본다. (1) 시작지점 “프로젝트형 과제”가 시작지점이다. 가지고 놀 놀이기구가 “환경구성”의 첫 번째다. 즉, 학생들에게 던져 줄 “과제”가 먼저 있어야 한다.
  • 144.
    144 “14층 아파트에 엘레베이트두대가 있다. 가장 효율적으로 운영될 수 있도록 로직을 설계하라.” 프로젝트형 과제는 이런 식이면 좋다. 어떻게 풀어야 할까? 사실 이 문제에 대한 정답은 없다. 누구는 “전력사용량”을 기준으로 볼 것이고, 누구는 “시간”을 기준으로 볼 것이다. 둘다 정답이라고 할 수 있고, 아니라고도 할 수 있다. 왜냐하면, 상황마다 다르기 때 문이다. 그래서 돌아가는 프로그램을 제출했더라도 PASS가 아닐 수 있다. 의도된 경험치를 습 득했느냐 아니냐가 기준이 된다. 과제를 만들 때는 무엇에 신경 써야 할까? 핵심 구성요소로 “맥락”, “표상”, “조작공간”을 꼽는다. 첫째로 “맥락” Context은 문제를 이해시켜주는 상황을 말한다. 맥락이 없으면 학생들이 문제를 이해하기 어렵다. 누군가 추가설명을 할 수밖에 없어 서 의존학습을 하게 된다. 맥락이 있으면 학습자가 나머지를 상상한다. 그게 디테일을 결 정한다. 둘째, “표상” Representation은 문제를 표현하는 방식이다. 과제설계자는 문제를 풀기 위한 단서, 정보, 해결해야 할 문제를 적절히 잘 섞어서 표 현해야 한다. 이런 게 없으면 학습자는 너무 어려워하거나, 진도를 나가지 못해 좌절해버 리고 만다. 셋째, “조작공간” Manipulation space는, 말 그대로 문제를 푸는 공간이다. 소프트웨 어 개발이라면 노트북 하나, 서버계정 하나를 주면 되지만, 요리 수업이라면 요리를 해볼 수 있도록 조리환경이 갖추어져 있어야 한다.
  • 145.
    145 (2) 학습자원 학습환경 설계시“학습자원”은 두 번째로 중요하다. “과제”가 학습해야 할 내용이라면, “학습자원”은 그 문제를 해결하기 위한 도구이다. 도구가 없다면 문제를 해결할 수 없다. 즉, 학습자원이 부족하면 학습은 일어나지 않 는다. 도구제작을 해도 되지만, 이건 너무 시간이 오래 걸린다. 학습자원에는 “정보”도 있지만, “멘토” 같은 인적자원도 있다. 굳이 학생 옆에 있을 필 요는 없지만 느슨하게 연결되어 필요할 때 도움을 받을 수 있으면 된다. 소프트웨어 교육은 인터넷과 유튜브에 이미 많은 자료들이 있어 굳이 정보자원들을 준비하지 않아도 된다. 하지만, 특수한 교육이라면 그에 맞는 자료들이 비치되어야 한다. 학습자원은 경험을 구성하는 요소이기도 하다. 예를 들어 채팅프로그램을 짜야 한다면, 다른 채팅프로그램을 다운로드 받아 분해, 분 석해보고 원리를 깨닫는 경험 자체가 실력으로 간다. 필요한 도구는 직접 만들게 할 수도 있다. 그런데 학습자원의 존재 목적은, 덜 헤매게 함으로써 “시간”을 줄여주기 위함이다. 시 간을 줄이면 학습량이 늘어난다. 학습의 질은 개별적으로는 내려가는데, 전체적으로는 올 라간다. 여러 번 반복해서 학습하기 때문이다. 기술교육은 훈련교육이다. 유사경험을 반복하도록 설계하는 게 좋다. 시간압박에 시달릴 필요는 없다. 다만 시간낭비라고 생각하는 건 줄여주자. (3) 교수자의 역할 분리 환경 중심의 교육은 교수자를 교육진행자에서 분리해낼 수 있다. 그런데 잊지 말자. 이런 교육을 하는 이유는 “스스로 하게 하기 위해서다.” 그렇게 하는 이유는 소프트웨어 개발이, 직접 해보지 않으면 익힐 수 없는 것이기 때 문이다.
  • 146.
    146 전통적인 교육에선 교수자가교육설계, 교육진행, 교육평가를 한다. 그런데 우리 모델에선, “교육진행”은 분리된다. 교육진행은 “수업”을 의미한다. “교수 → 학생”의 흐름을 “(교수 → 과제) + (과제 → 학생)”으로 바꾼다. 예를 들면, 중간고사 문제지를 3년치 정도를 주고, 이번 중간고사 시험을 보겠다고 이 야기하는 것과 같다. 정답을 맞추는 거라면 외워서 오기 때문에 나쁜 교육법이다. 하지만, 훈련을 시키고 숙련여부를 평가하는 거라면 좋은 교육법이다. 예를 들어 음대수업이나 연기수업과 비슷하다. 학생들이 스스로 해야 하고, 교수는 중 간중간 필요한 피드백을 해준다. 물론 이론수업도 한다. 소프트웨어 교육에도 이론수업은 필요하다. 직접 강의를 하기도 하지만, 전문서적이나 이러닝 등으로 대체할 수도 있다. 단, 교육대상자가 달라지거나 규모가 커지면, 분리된 “교육진행”의 역할이 커진다. 예를 들어 “리더십 캠프” 같은 사례를 보면 이렇다. 앞에 나온 강사가 어떤 상황을 주고 옆에 앉은 동료들끼리 역할극을 하도록 시킨다. 참가자들이 적극적으로 역할을 하며 수업에 참여하지만, 강사는 지켜보거나 조율할 뿐 그 상황 자체에는 개입하지 않는다. 어떤 경우는 강사가 직접 교육설계를 해오지만, 큰 회사의 경우는 별도의 교수진이 교육 프로그램을 설계한다. 이 때 강사의 역할은 지식전달자가 아니라 교육 진행자이다. 이런 역할을 퍼실리테이터라고 한다. 그리고 이 역할의 범위는 꽤 크다. “MBC 100분 토론” 같은 걸 보면, 손석희 아나운서가 사회자이면서 갈등조율 및 토론 촉진자의 역할을 한다. 수업에서 벗어나 교육이 “프로그램”처럼 만들어지면서, 이런 역할들의 중요성이 커지 기 시작한다.
  • 147.
    147 우리 교육모델도 교육프로그램처럼운영되기 때문에, 이런 역할을 재조명해야 한다. 이 때 중요한 것은 상황을 명료화 시키거나 방향을 잡아줌으로써 “헤매는 비용”을 줄 여줄 뿐 학습자로부터 “해결 경험”을 뺏어 가면 안 된다. “해결 경험”은 “내적동기”를 발현시켜 성장을 만들어낸다. 그래서 “해결 경험”을 뺏어 가면, 학생들은 동기를 잃고 수동적이 된다. 그러면 이 교육은 완전히 망가지게 된다. 다. 공통 커리큘럼 학습커뮤니티를 만들 때 “공통 커리큘럼”이 있어야 한다. 입학과정으로 설계한다. 아는 사람이 모르는 사람을 가르치는 “조력활동”을 경험시켜주기 위해서다. 커뮤니티 의 일체감과 소속감이 생긴다. 다른 활동으로 대체해도 되지만, 학습커뮤니티라면 학습을 함께 한다는 경험을 들어올 때 줄 필요가 있다. 강력한 각인효과 때문이다. 사례로 비전공자를 위한 “입문과정”을 공통커리큘럼으로 만들어보자. “파이썬 기초과정” 정도로 시작해보자. 단계 제목 목표 경험 1 파이썬 설치 및 개발환경 구성하기 다짜고짜 설치부터, 설치할 때 왜 그런 걸 설치하는지를 이해함. 2 파이썬 동작원리 이해하기 설치한 프로그램과 컴퓨터, 내가 보는 화면까지의 상관관계를 이해하고 조작할 수 있게 됨 3 파이썬 프로그래밍 언어 공부하기 프로그래밍 언어의 문법과 사용법을 익힘. 여러 가지 함수와 사례를 익힘 4 웹 개발 시작하기 웹브라우저에 내가 볼 수 있는 내용을 출력해보고, 내 마음대로 이런저런 조작을 해봄 5 데이터 베이스 핸들링하기 데이터를 입력받아 저장을 해보고, 출력해보는 조작과 기본 원리를 이해함. 6 인스타그램 만들어보기 위에서 배운 기술을 가지고 인스타그램을 흉내낸 파일럿 프로그램을 만들어 봄 표 24. 파이썬 웹 개발과정 경험기획
  • 148.
    148 이 과정은 “파이썬”으로간단하게 동작하는 웹 프로그램을 만들어보게 하는 것이다. 목표 수준은 학생이 응용프로그램을 만들고 싶어 지는 것, 그걸 시작할 수 있게 되는 것이다. 이게 의미하는 바는 “이제 어떻게 공부해야 할지 알게 되었다.” + “이제 뭔가 만들어 보고 싶어 졌다.”이다. 즉, 이제 제대로 배울 준비가 된 거다. 커리큘럼은 강의를 듣고 시험 보는 방식이 아니어야 한다. 그걸로 이론지식은 습득이 가능한데 코딩실력은 전혀 늘지 않는다. 과제 기간은 7일, 14일, 30일 정도로 끊어준다. 하루 8시간 코딩하는 걸 기준으로 한 다. 몰입도는 자기 능력의 40% ~ 60%. 커리큘럼 하나를 끝내는데 한 달을 넘기지 않는 게 좋다. 기간을 이렇게 정하는 이유 는 심리적 허들을 낮추기 위함이다. 도전의 경계성을 낮추고, 단위 과제의 시간을 짧게 해서 중간중간 평가를 통해 점검 받을 수 있게 한다. 라. 그룹 학습 방식 이론학습이든 과제든 가능하면 모두 “스터디 그룹”(학습그룹)을 만들도록 유도한다. 구성원들끼리 서로를 돕는, 양질의 스터디 그룹이어야 한다. 과제를 할 때마다 그룹을 바꾸도록 유도한다. 궁합이 맞는 동료를 찾게 하는 거다. 그 룹은 고정된 게 아니라 사람처럼 호흡하고 바뀌어 간다고 생각해야 한다. 무임승차자는 자연스럽게 배제시켜 나간다. 3번 정도 변화를 겪다 보면 학생들은 자연 스럽게 자기에게 맞는 동료그룹을 형성하게 된다. 학습그룹은 한 그룹당 구성원이 3-5명 정도가 적당하다. 모여서 함께 공부하다 보면 항상 누군가는 바빠서 1~2명의 결석인원이 생기게 된다.
  • 149.
    149 이 때 출석인원이2인 이하이면 대부분 늘어지거나 놀게 된다. 학습이 끊어지고 몰입도 가 떨어지면서 두 배 이상의 노력이 들어간다. 평균출석인원이 3인 이상 되는 게 좋다. 그런데 좋은 스터디 그룹이란 어떤 그룹일까, 어떤 장점들을 가질까? 그 특징을 정리해 본다. 구분 특징 상세내용 학습 원리 상호의존성 서로에게 도움을 주는 방식으로 부족함을 메꾼다. 개별책무성 집단의 목표를 위해 책임을 나누어 가지면서 기여하게 된다. 대면 상호작용 대면방식은 더 많은 내용을 더 짧은 시간에 전달한다. 사회적 기술 사회적 성장 스킬인, 대화, 토론, 논쟁 스킬을 익힌다. 집단 회고 지난 과정을 회고하면서 개선 능력을 습득한다. 학습 효과 학업성취의 향상 고립학습 대비 학습속도와 학습의 질이 대폭 향상된다. 고등정신능력 획득 4-5 인이 참여한 결과를 1 인이 습득함으로써, 경험이 풍부해지고, 통찰력이 높아진다. 학습동기 촉진 높은 성과에 대한 결정권을 기여했다는 경험이 자존감 향상 등의 높은 성과동기로 돌아온다. 사회적기능의 발달 협력을 통한 성과창출 경험을 뚜렷하게 습득한다. 자아실현 경험 성공경험을 보상으로 받으면서, 자아실현 과정을 이해하게 됨 문제점 오류발생 사람이 모인 만큼, 오해와 갈등이 생긴다. 이를 잘 풀지 못하면 그룹이 깨진다. 친목효과 친한 사람들끼리만 어울리면서 다른 사람을 배척함 부익부 빈익빈 못하는 사람끼리만 모이면 배우는 게 없음 무임승차 놀았는데 그룹평가가 좋아서 나도 좋은 평가를 받은 경우 봉효과 1 명에게만 일이 몰려, 골고루 학습이 일어나지 않음. 표 25. 그룹학습의 특징 (엘런대학교) 학습원리나 학습효과는 좋은 이야기니까 건너 뛰고, 문제점만 이야기해보자. “친목효과”는 의도된 효과다. 친목성이 동료에 대한 신뢰와 헌신을 만들어내어 이게 부족한 교수자를 대신한다. 하지만 친목효과는 폐쇄성과 갈등도 만들어낸다. 잘 지켜보다가 학생들이 선을 넘어가면 운영자가 개입해야 한다.
  • 150.
    150 판단기준은 커뮤니티 보호다. 그룹학습의동작원리는, 내가 누군가를 가르쳐주면 누군가 나를 가르쳐줄 거라는 “상 호성”의 믿음에 기반한다. 이 믿음이 깨어지면 커뮤니티는 깨어지고 다시 회복되지 않는 다. 이걸 막아야 한다. “무임승차”는 학생들이 학교적 세계관을 가지고 있기 때문에 발생된다. 시험점수를 잘 받거나 과제 통과를 하는 것으로 생존이 되기 때문이다. 이런 생각들은 계도하기 어렵다. 현실세계를 통제할 수도 없고 시시비비를 가리기도 어렵기 때문이다. 스스로 깨달아야만 한다. 그래서 사전통제방식이 아니라 사후관리방식으로 대응한다. 무임승차 후 주어지는 보상이 없으면 동기가 상실된다. 과제1을 제대로 하지 않으면 과제2를 하기 어렵도록 구성한다. 과제통과라는 행위에 외적 동기를 실어주면 안 된다. 실력, 자신감, 자존감 등 내적동 기에 의해 움직일 수 있도록 한다. 어떻게 그렇게 할까? 전문가, 멘토와의 지속적인 면담이 효과적이며, 커뮤니티 내에 문화로 자리 잡히면 저절로 돌아간다. “봉효과”는 한 명이 하드캐리하는 거다. 과제가 어려우면 발생한다. 한 명의 고수에게 모든 걸 의지하는 현상인데 이게 무임승차를 만들어낸다. 문제는 고수가 번아웃 되면 교육이 멈춘다는 거다. 교육의 지속성을 담보할 수 없다면, 교육기관은 존속할 수 없다. 그룹학습에서 리더가 생기는 건 당연하다. 하지만 상호작용에 기반한 학습활동이 멈추 면 안 된다. 누군가 리드해야만 학습이 된다면, “교수자”나 전문가가 하는 게 더 낫다.
  • 151.
    151 이런 현상이 커뮤니티내에 만연하다면 운영자가 개입해야 한다. “그룹학습”은 생각보다 까다롭다. “커뮤니티”는 더 까다롭다. 다양한 사람들이 모이는 만큼, 많은 가치관이 충돌하고 갈등이 발생한다. “교수자”가 개입하여 이 문제를 해소할 수 있다. 하지만, 그룹이 많아지면 그럴 수 없다. 원칙과 규칙으로 개선하고, 커뮤니티 문화로 동작하게 해야 한다. 그룹 문화가 자리 잡히는 데 보통 6개월의 시간이 걸린다. 첫 그룹의 성공사례, 실패사례가 나오고, 그게 학생들 사이에 전파되는 시간. 학생들 스스로 감을 잡아서, 서로에게 좋은 영향력을 행사하는 시간. 이 시간들이 필요한 최소시간이다. 그룹 문화는 한 번 돌기 시작하면 자동으로 돌아간다. 시작은 운영진의 도움으로 하지만, 유지시키는 건 학생들의 노력이어야 한다. 마. 성공경험 만들기 “동기중심의 교육”이 지속되게 하는 건 “성공경험” 이다. 작은 성공경험들이 모여 성장과정에 대한 확신을 만들어낸다. 그게 학습을 유지시키고 강화시킨다. 성공경험은 코딩의 결과물이 아니다. “프로세스”와 “성장방법”에 대한 긍정적인 심리변 화가 성공경험이다. 이게 성장을 만들어내고, 실력을 만들어낸다. 앱을 하나 만들어 출시해보거나, 웹 서비스 하나를 만들어 보게 하자.
  • 152.
    152 해냈다는 뿌듯함 뒤에내가 어떻게 하면 되는지 믿음과 확신을 가지게 된다. 이 때 느끼는 성취감과 책임감이 “성공경험”이다. 이런 성공경험은 어떻게 만들 수 있을까? 첫 번째는, “타인”으로부터 인정받게 한다. 이 때의 타인이란 다른 개발자들이나 고객들을 말한다. 업계 개발자들의 인정은 내가 업계에서 통한다는 자신감을 만들어 낸다. “고객”은 내가 돈을 벌 수 있다는 자신감을 만들어준다. 생존에 대한 걱정이 줄어들고, 계속 스킬업을 하고자 하는 욕구가 생긴다. 두 번째는, “나 스스로에게” 인정받는 것이다. 순간적인 타인의 인정은 블러핑으로 얻어낼 수도 있다. 하지만, 자기 자신은 속일 수 없다. 타인의 기대가 실제 내 실력과 불일치할 때 사람은 불안해진다. 그 차이가 커질수록 대인관계를 맺기 어렵고, 레벨업에 대한 동기를 상실한다. 반면, 타인의 인정이 낮아도 자기 만족감이 큰 경우 성장동기는 불타오른다. 학교 내에서의 성공경험은 직장인으로서 가지는 성공경험과 다르다. 훨씬 더 작고 볼 품 없을 수 있다. 하지만 학생 때는 그런 작은 경험만으로도 성장이 만들어진다. 학생들끼리 서로 칭찬하게 하자. 다만 생일 축하가 아니라 이유를 알게 하자. 이유를 알아야 자존감이 생긴다.
  • 153.
    153 바. 사회 네트워크와연결 그렇다면 준비된 학생들을 사회로 어떻게 내보내야 할까? 우리 학교의 친구들은, 기업들이 요구하는 수준에 맞을까? 답은 “아니다”이다. 기업은 실무경험, 즉 실전경험을 원한다. 학생들은 기초지식과 성장노하우를 익혔을 뿐 실전경험을 익히지 못했다. 그래서 실전경험을 익히게 해야 한다. 이미 답은 나와 있다. 인턴쉽을 하게 하면 된다. 결국은 학생들이 직접 기업현장에 가는 거다. 바로 취업을 하는 것도 괜찮다. 취업한 후 일을 배우는 거다. 하지만, 이 방법은 아쉽게도 기존의 회사 직원들에게는 너무나 폭력적이다. 김대리는 오늘 퇴근을 못하고 신입직원을 가르쳐야 할 수도 있다. 하루 시간의 절반 을 신입직원에게 투자해야 할 수도 있다. 그런데 그렇게 애써준 학생들이 대부분 다른 회사로 가버린다. 회사는 정말 얻는 것 없이 남 좋은 일만 시키게 된다. 이 경험을 두 번 정도 하다 보면 회사는 더 이상 인턴 을 받고 싶어하지 않는다. 이건 꽤 심각한 문제다. 이게 일자리 매칭을 줄어들게 한다.
  • 154.
    154 그렇다면, 학생들이 기업에취업하지 않고 실전경험을 쌓을 방법이 있을까? 여러 가지 방안들이 있는데, 대표적인 것이 “개발자 커뮤니티”로 들어가는 거다. 컨퍼런스, 세미나, 밋업 등을 찾아다니고 자원봉사자로 일을 하다 보면 나만의 네트워 크가 쌓이고, 일을 할 기회도 얻게 된다. 오픈소스 프로젝트에 참여해서 현업 개발자들과 일할 기회를 얻기도 한다. 개발자 커뮤니티가 좋은 건, 사회진입의 문턱이 낮고 접근하기 쉽다는 거다. 다만, 여기에선 학생들이 주인공이 아니다. 학생들이 자기발로 걸어서 들어가는 거다. 학교가 할 일은 스킨쉽 기회를 많이 만들어주는 것이다. 학교에서 개발자 컨퍼런스나 밋업, 세미나가 열리게 해주자. 학생들이 쉽게 구경하고 참여할 수 있게 해주자. 사실 학교에서 현장에 준하는 교육환경을 꾸미기란 어렵다. 빅데이터 교육을 한다면, 10GB 이상의 데이터나 10여대 이상의 서버가 필요하다. 그리고 그 환경을 유지보수하고 업데이트할 개발자까지 필요하다. “ChatGPT”도 마찬가지다. GPT-3를 학습시키는 데만 150~340억원이 들어갔다고 한 다. 학교는 그걸 감당할 수도 유지할 수도 없다. 그리고, 아무리 교육환경이 현업과 닮아 있더라도, 개발자들이 잘 인정해주지 않는다. 현업은 굉장히 많은 예외들과 싸워야 하기 때문이다. 사회적 성공경험은 반드시 사회적 네트워크 속에서 획득되어야 한다. 그래야 개발자들이 인정해주기 때문이다. 학교는 어린 새들이 둥지 안에서 날개짓을 안전하게 연습할 수 있도록만 해주자. 결국은 학생들이 기업으로 가야 문제가 해결된다. 산학연계 프로그램도 좋은 선택이 된다.
  • 155.
    155 사. 기업형 콘텐츠 이노베이션아카데미에서 했던 독특한 시도가 있었다. 네이버, 라인, 크래프톤 등이 “프로젝트형 콘텐츠”로 만들어서 학생들에게 배포한 것 이다. 기준은 “신입사원으로 채용할 만한 수준”이다. 과제 내용이 특별한가? 그렇지 않다. 프론트엔드, 백엔드, 게임 기초 같은 것들이다. 현업개발자 관점에서 보면 너무 쉽고 평범한 것들이다. 하지만, 학생들에겐 어렵다. 다만, 학생들이 접근하기 쉽도록 레벨을 나누고 난이도를 차등 조정한 거다. 처음에는 일주일짜리 과제도 어려워한다. 하지만 곧 익숙해진다. 학생들은 성장을 위해 충분한 동기를 얻을 수 있고, 기업들은 미리 훈련된 친구들을 받을 수 있어 채용실패율이 낮아진다. 다만, 학생들이 꼭 그 기업에만 가진 않는다. 실력이 쌓이다 보면 빨리 돈 벌고 싶어 다른 곳에 취업해 버리기도 한다. 매칭 문제는 강제로 되지 않는다. 다만 풀을 늘려 기회와 확률을 높여준다. 이런 콘텐츠는 어떻게 확보할 수 있을까? 아쉽게도 이건 교육설계자들이 개입해야 한다. (문제) “초보자가 쓸 수 있는 블로그 에디터를 이렇게 저렇게 개발해 보세요.” 기업이 문제출제는 할 수 있어도 이걸 교육용으로 만들 순 없다. 기업은 제로 레벨의 친구를 교육시켜본 적이 없기 때문이다. 철학과 친구가 어떻게 공부해야 저걸 할 수 있 는지는 “교육설계자”가 해야 한다.
  • 156.
    156 3. 학습 커뮤니티 가.왜 커뮤니티일까? 42를 처음에 보고 깜짝 놀랐었다. 학교가 “개발자 커뮤니티”처럼 움직인다는 거였다. 그런 학교가 있으면 좋겠다는 생각을 한 적이 있었지만, 막상 보니 너무 인상 깊었다. 정말 학교를 예쁜 커뮤니티처럼 꾸며 놓았다. 동료학습? 동료평가? 그건 다 “커뮤니티”에서 일어나는 일들이다. 다만, “학습 커뮤니 티”22라는 게 다를 뿐. “학습 커뮤니티”라고 하면 낯설 수 있다. 굳이 번역하자면 “학습 동아리” 정도 되겠다. “공부한다”라는 목표를 가졌다는 게 일반 커뮤니티와 다르다. 조금 상세히 정리해보자. 구분 학습 동아리 개발자 커뮤니티 42 과정 구성원 학생들 일반 개발자들 학생들 집단크기 10 명 이하 1,000 명+ 1,000 명+ 구성이유 학습(기술습득) 정보교류, 기술질문 학습(취업, 창업) 친목성 높은 편 낮은 편(비즈니스적 관계) 아주 높음 존속기간 과제 기간(1~3 달) 구성원이 존재하는 동안 교육과정(3 년) 가입 알음알음 제한없음 피씬 이탈 알음알음, 눈치 자유(안나감) 자유(동료끼리 관리) 공부과제 자유(스스로 정함) 없음 커리큘럼 있음 장점 물어볼 사람이 있음 고립으로부터 탈피 폭넓은 인적교류 - 다양한 기술, 산업군 다양하고 풍부한 동료들 - 다양한 관점, 경험들 단점 전문가 부재 - 또래학습 수준만 느슨한 관계 전문가 부재 - 또래학습 수준만 표 26 .개발자 커뮤니티와 학습동아리의 차이점 22 “학습커뮤니티” : (영어) Learning Community, (줄임말) LC, (동의어) 학습공동체. 학습동아리 (의미) 학습 을 목적으로 개인들이 자발적으로 구성한 집단.
  • 157.
    157 현실적으로 “커뮤니티”는 소프트웨어개발자들에게서 떼어놓을 수 없는 존재다. 왜냐하면 IT 산업은 다양한 기술들이 글로벌 단위로 융합하면서 성장했기 때문이다. 제품 하나를 만들기 위해 쓰이는 기술이 굉장히 복잡하고 고도로 집적되어 있다. 한 명의 개발자가 모든 걸 다 알 수도 없고 다 할 수도 없기 때문에, 개발자들은 생 존을 위해서라도 계속해서 커뮤니티에 기대게 된다. 그래서 커뮤니티는 정보교류와 상호배려, 상호 코칭이 기본이다. 그래야 서로 생존할 수 있기 때문이다. 개발자 커뮤니티는 친목 모임처럼 동작하기 때문에 대부분 외부의 도움 없이 자생한 다. 결속력이 쉽게 약해지기도 하지만, 굴러가면 자동으로 굴러가는 게 커뮤니티다. 이런 특징을 학습에 차용한 게 “집단 학습”이다. 엄격하게 따지자면 “학습 커뮤니티”와 다르지만, 여기에선 비슷한 맥락으로 묶어보자. 나. 역사와 유래 학습 동아리는 조금 작은 개념이다. “게임 동아리”, 이 정도로 생각하면 된다. 학습 커뮤니티는 조금 더 큰 개념이다. 100명 이상을 생각하면 된다. 작은 동아리가 여러 개 모여 있고, 동아리끼리 서로 교류를 한다. 학습 커뮤니티를 설계하기 전에, 그 역사와 유래를 먼저 알아보자. (1) 초기의 모습 학습 커뮤니티의 기원은 모호하다. 오랫동안 종교적 목적으로 운영되었기 때문이다. 사회적으로 주목 받게 된 건, 1902 년 스웨덴의 “오스카 올슨” 때문이었다. 당시 스웨덴은 산업화가 급격히 진행되면서 사회적 빈곤의 심화, 알코올 중독의 증가
  • 158.
    158 가 매우 심각했는데이를 치유하기 위해 금욕주의 “절제운동”이 시작된 거다. 오스카 올슨은 당시 성직자이자 정치가였는데, 이 절제운동을 보급하기 위해 성인들을 대상으로 “스터디 써클23”을 만들었다. 교육수준을 높여 이런 상황을 개선하고자 한 것이 다. 이 때 학습동아리를 만들게 된 가장 큰 이유는 “변화의 자발성” 때문이었다. 결국 스스로 변하지 않으면 안 되는데, 그러려면 이런 조직들이 스스로 조직되고 운 영되어야 한다고 생각했기 때문이다. 이후 교회단체나 노동단체 속에서도 다양한 학습동아리가 생기면서 일반화되었다. 1980년대가 되자 이런 문화가 대학교육에도 넘어오기 시작했다. 1984년 미국의 “에버그린 주립대학”은 대학간 연합 커뮤니티를 만들었다. 하지만 운영과 발전을 위한 이론적 토대를 가지지 못했고, 1990년대 되어서야 비로소 교육이론들이 정립되기 시작했다. (2) 교육이론의 정립 초기 모습은 성인교육으로 모임을 기반으로 한 세미나, 토론, 논쟁 등의 도구를 썼다. 하지만 교육이 지속적으로 보급되려면, 교육 효과의 반복. 재현이 가능해야 했다. 그러면서 교육이론들이 좀 더 면밀하고 복잡해지기 시작했다. 23 스터디 서클 : 학습동아리, 시민들끼리 모여서 지역사회를 개선하기 위한 크고작은 필요 활동들을 계 획하고 실천했다.
  • 159.
    159 표 27. 학습커뮤니티와 일반 커뮤니티의 차이점(바바라 레이 스미스, 에버그린 주립대) 1990년대 이전까지의 교육은 대상이 “개인”, 1인이었다. 1990년대 이후가 되어서야 비로소 교육연구의 대상이 “집단”으로 확대된다. 지식의 형성 과정을 새롭게 정의한 것이다. “지식의 형성은 그 집단의 문화적인 관습이나 인식 기준을 바탕으로 한다.” 즉, 지식이란 자기가 경험한 것들을 체계적으로 정리하는 과정에 불과하며, 그 경험들 은 자기가 속한 집단에서 온다는 것이다. 물리, 수학 같은 순수학문에 대한 이야기는 아닌 것 같다. 하지만, 경영학, 철학, 문학 등에 대한 이야기라면 얼추 맞는 것 같다. 이런 시각은 “소프트웨어 스킬”과도 관련이 깊다. http 프로토콜이나, OS 구조 등은 순수학문에 가깝다. 기계적 공학의 범주 내에 있기 때문에 원리를 이해해야 한다. 하지만, “웹 개발”, “앱 개발” 등은 실용스킬이라고 할 수 있다. 직접 코딩을 해보지 않으면 절대 코딩을 익힐 수 없다. 그래서, 학습 커뮤니티를 설계할 땐 “이론공부”와 “실습훈련”. 이 두 가지 활동이 공존 하도록 구성해야 한다. 학습자 스스로 이 두 개가 다르다는 걸 인지해야 하고, 엉뚱한 방법으로 공부하지 않 게끔 미리 정보를 줘야 한다. 학습 커뮤니티는 기본적으로 학생들의 커리큘럼, 공간, 시간을 재구성한다. 그렇게 재구성된 교육 모델들이 오랫동안 교육현장에서 사용되어 왔다. 그런데 여전히, 모든 교육모델들이 의도적으로 설계된 학습코스를 채택한다는 공통점이 있다. 이 학습코스는, 팀구성과 학생들의 상호작용에 더 많은 기회를 제공한다. 그리고 교육내용의 연계성과 일관성을 제공한다.
  • 160.
    160 (3) 교육모델의 수립 그럼학습 커뮤니티는 어떤 식으로 구성을 해야 할까? 몇 명이 어떻게 어떤 방식으로 공부를 해야 할까? 그걸 교육모델이라고 한다. 이 교육모델은 학습커뮤니티를 설계하는 방법들에 대한 것들이다. 우선 대표적인 “학습 커뮤니티 유형”에 대해 살펴보자. 교육모델 상세 내용 (1) Linked courses 기술과 학문이 상호 보완되는 사람들끼리 모여서 공부한다. 예) 역사학과 + 국어학과(글쓰기, 문해력) (2) Learning clusters 서로 전공이 다르지만, 공통된 주제로 모여서 공부한다. 예) 전자공학, 컴퓨터공학과가 모여 “수학 동아리”를 만듬 (3) Freshman interest groups (2)번과 유사하지만, 전공이 같아서 선배들로부터 조언을 얻을 수 있다. (4) Federated learning communities (2)번과 유사하지만, 우리 그룹 내 다른 코스에선 “교수진”으로 활동하는 사람이 있다. (5) Coordinated studies 학생과 교수진이 한 학기 내 함께 하는 거대한 하나의 코스가 있다. 이때 전공간 경계는 모호해진다. 표 28. 학습 커뮤니티의 대표적인 모델 5가지24 이 학습모델들의 학습효과는 우열을 가릴 수 없다. 이런 커뮤니티란 그냥 학생들의 상황에 따라 생겼다 없어졌다 하기 때문이다. 공통적인 특징은 “학습자 중심”으로 운영된다는 거다. 이해가 느린 사람은 늦게 따라 가면 된다. 주된 학습법이 대화와 토론이다. 구성원 각각은 존중 받으며 실천을 통해 성 장한다. 리더도 돌아가면서 한다. 함께 성장하기 위해서다. 그런데 참고로, 리더교육은 별도로 필요하다. 운영 노하우가 필요하기 때문이다. 스웨덴의 경우 학습동아리 하나의 구성원을 7~10명 정도로 권장한다. 가장 학습이 24 Tinto, V. (2003). 함께 더 잘 배우기: 학습 커뮤니티가 학생의 성공에 미치는 영향. 대학에서 학생의 성 공 촉진, 고등 교육 모노그래프 시리즈(pp. 1-8). 시러큐스, 뉴욕: 시러큐스 대학. 2009년 9월 22일
  • 161.
    161 일어나기 좋은 사이즈이기때문이다. 그리고 지역사회에 봉사활동을 많이 하도록 권장하고 있다. 이런 실천활동과 상호작용 들이 교육효과를 높이고, 교육의 질을 올려주기 때문이다. 다. 학습커뮤니티의 특징 자, 그럼 “학습 커뮤니티”. 어떻게 시작할까? 그냥 사람만 모아놓으면 자동으로 굴러가는 걸까? 아니다. 만일 갈등이 생긴다면 어떤 기준으로 정리해야 할까? 모르겠다. 그냥 “사이 좋게 지내세요.”라고 말하는 건 좋은 해결책이 아니다. “학습커뮤니티”라고 하면 다들 우와~라고 하겠지만, 막상 시작하려고 하면 어디서부 터 해야 할지 알 수 없다. 그러다 보니 제대로 운영되지 않고 금방 흐지부지되어 버리고 만다. 그래서 McMillan 등의 교육학자들은 제대로 동작하는 학습커뮤니티를 일찍부터 정의 하고 싶어했다. 잘 설명한 글이 있어 의역해 보았다. 그림 23. 학습 커뮤니티의 다양한 정의 (Richard E.West & Gregory S. Wallliams, “학습, 교육설계기술의 기초”, “커뮤니티를 어떻게 정의할 것인가?”)
  • 162.
    162 첫째, 쉽게 만날수 있으면 “공동체”다. 옛날에는 물리적으로 가까이 있으면 그냥 공동체라고 불렀다. 저 사람이 싫어도 같은 학교 교실에 있으면 “학급 공동체”였다. 공동체를 정의하는 가장 손쉬운 방법이다. 종종, 학업을 같이 시작하는 “코호트 그룹”에도 “공동체”라는 말을 썼다. 온라인 커뮤니티가 형성되면서 물리적 거리라는 개념이 모호해졌다. 하지만, 가상커뮤니티와 구분하기 위해 여전히 물리적 거리를 기준으로 구분해야 한다 는 연구자들이 있다. 둘째, 정서적 관계 형성이 “공동체”를 정의한다. “단순히 만나는 것만으로 공동체라고 할 순 없다. 정서적인 유대감이 생겨야 공동체라 고 할 수 있다.” 올리비에 블랑샤르 교수와 켄슬러 박사는 이런 식으로 정의했다. 즉, “관계맺기”가 이루어지지 않는 경우는 “공동체”라고 볼 수 없다는 거다. 이 때 나타나는 특징을 4가지로 정의했다. 소속감 “소속감이란 서로 연결되어 있다고 느끼는 것이며, 이것이 학습공동체의 본질이다.” Baker와 Pomerantz(2000)는 제대로 동작하지 않은 공동체는 이 소속감이 관찰되지 않는다고 했다. 이 때의 소속감이란 “외롭지 않다는 느낌”까지 포함한다고 한다. 상호의존성 Sarason(1974)는 좀 더 나아가 이렇게 정의했다. “공동체란 내가 의존할 수 있는, 상부상조 네트워크다.”
  • 163.
    163 즉, 사람들은 심리적안정감을 느끼기 위해 서로를 기꺼이 도와주려고 하고, 구성원에 대한 책임감까지도 공유한다. 신뢰 미국에서 커뮤니케이션을 연구하는 Paul Booth 교수(2012)는 이렇게 말했다. “온라인 커뮤니티에서 지식공유가 일어나는 이유는 신뢰 때문이다.” 리히텐슈타인 교수는 이렇게 말했다. “믿음이란, 학습커뮤니티 안에서 존중받거나, 존재가치를 인정받는다는 느낌이다. 이 감정은 학습 커뮤니티가 성공하기 위한 엄청 핵심요소이다.” 다른 연구자들은 이 감정을 “안전하다”라는 느낌이라고도 표현한다. 반대로 실패하는 커뮤니티들에는 이런 특징들이 있다. 갈등이 항상 끊이지 않거나, 멘토나 교수진이 학생들과 분리되어 있어 돕지 있지 않 다. 즉, 신뢰가 형성되지 않은 거다. 공통된 믿음 좀 더 강한 공동체에는 이런 믿음들이 자리잡고 있다고 한다. (McMillan , 1986) “우리 공동체는 각자의 노력에 의해 각 구성원들의 니즈를 충족시켜줄 것이다.” 특히 온라인 커뮤니티의 경우에는 이런 감성적 동질감 형성이 커뮤니티 성공에 더 큰 영향을 끼친다고 한다. 전체적으로 정리하자면, 공동체는 정서적인 유대감이 강한 집단이며 이 유대감이 서로 에 대해 호의적이고 헌신적으로 작동할 때, 학습커뮤니티의 교육효과가 성공한다는 거다. 만일 서로 시기질투 하거나 정치세력화가 되면, 학습 커뮤니티는 동작하지 않게 된다. 셋째, 공통된 비전의 유무로 정의하기도 한다.
  • 164.
    164 정서적 유대감이 없다고해서 공동체가 아닌 건 아니다. 유대관계가 없어도, 목적이나 목표가 같다면 구성원들은 스스로를 공동체라고 생각하기도 한다. 즉 “공동체”를 신뢰성, 의존성 같은 특징으로도 정의할 수 있지만, 공동체라고 “생각” 하는 것만으로도 공동체가 되는 거다. 그들은 미션, 목표 등을 공유함으로써 같은 방향으로 나아가고 있다고 믿는다. 재미난 건 이건 “신뢰를 공유”하는 것과는 다르다. 구성원들은 수학을 좋아하지 않을 수도 있고, 목표를 이룰거라는 믿음이 없을 수도 있다. 다만, 같은 비전과 방향을 향해 걷는 것 만으로 “공동체”라고 생각한다. 그래서 혹자는 “신뢰”, “비전” 이런 게 중요한 게 아니라, “공유”라는 행위 자체가 공 동체를 형성하는 본질 아닐까라고 생각한다. 켈리 슈럼 교수는 “학습공동체란, 단순히 공부라는 목적에 동의하는 개인들의 모임”일 뿐이라고도 했고, 로얄 교수는 효과적인 학습공동체를 “그냥 학교의 미래, 목표 등을 공 유한 학생들이 팀워크를 하기에 좋은 환경”일 뿐이라고도 불렀다. 넷째, 기능으로 분류할 수 있다. 혹자는 그냥 “공동체”처럼 행동하고 있다면, 그걸 “학습공동체”라고 부르기도 한다. 예를 들어 대부분 실무자들로 구성된 “비즈니스 연구 모임”을 가정해보자. 그들은 어 떤 연구목표를 위해 서로 협력한다. 여기엔 비전도 없고, 정서적 유대감도 없다. 그냥 과제달성을 위한 “기능적 도구”로서 “공동체”가 존재하는 거다. 프로젝트가 끝나면 대부분 흩어져 버린다. 이런 “기능적 공동체”는 21세기 들어 “프로 젝트 그룹”으로 더 각광받고 있다. 특히 온라인 커뮤니티에서 많이 보인다. 구성원들은 프로젝트에 대해 비동기적으로 정 보를 주고받기 위해 이렇게 많이 활동한다.
  • 165.
    165 라. 코호트 설계하기 본격적으로커뮤니티를 설계해 보자. 학습 공동체는 학습이라는 관점에서 명확히 방향성을 가진다. 구성원들은 레벨 제로에서 레벨 10으로 이동한다. 파이썬을 다 배우고 나면 졸업을 한다. 그래서 함께 공부를 시작하는 단위그룹을 기준으로 학습공동체를 관리한다. 이 단위그룹을 “코호트” cohort라고 한다. 오프라인보다 온라인에서 더 많이 쓰이는 기법이다. (1) 코호트 모델 전통적인 교육에선 교수가 교육의 주인공이다. 교수가 교습행위를 잘 하는 것만으로 교육의 결과물이 달라진다고 생각한다. 그래서 학습이 일어나는 인지적 과정이나 학생들 의 수용상태에 대해 관심이 없다. 하지만, 학습자 중심의 교육에선 학생이 주인공이다. 학생들이 스스로 잘 해야 교육의 결과가 달라진다. 그래서 “어떻게 스스로 하게 만들 것인가?” 이게 중요해 졌다. 학습이 일어나는 인지 적 과정을 관찰하고, 스스로 할 수 있도록 여러 가지 장치를 한다. 학습공동체는 이런 시각의 연장이며, “코호트 모델”은 그런 과정을 지속적으로 관찰하 고 지원하기 위한 단위그룹이다. 그래서 코호트 모델은 다음과 같이 4가지 특징을 가지도록 설계한다. 첫째, 커뮤니티로 설계한다. 사람들은 공동체 안에서 성장한다. 잘하는 사람을 보고 따라하거나, 다양한 피드백을 통해 성장한다. 기술 하나만 익히는 게 아니라, 거기에 관계된 모든 것을 함께 익힌다. 그래서 커뮤니티는 다양한 경험을 가진 학생들과 전문가들로 구성한다.
  • 166.
    166 집중 환경에선 멘토쉽,협력관계, 코칭 등 다양한 관계형성이 발생된다. 심지어 연애도 하고 고객도 생긴다. 이런 과정 속에서 학생들은 현실 세계와 좀 더 가까워지게 된다. 물론 이런 공동체는 의도적으로 만들어질 수 없다. 다만, 이런 환경을 조성함으로써 이런 방향으로 생성되게끔 유도한다. 둘째, 책임의식을 부여한다. 프로젝트를 시작할 때 모든 구성원들에게 역할을 하나씩 준다. 조교, 상담자 등의 지 원역할도 좋다. 이 역할은 학생들에게 책임감을 부여, 학습과정에 몰입할 수 있게 함으로 써 참여율을 올린다. 이 때의 잘하려는 욕구는 “우호적 유대관계”에서 비롯된다. 즉, 분위 기를 잘 관리해줘야 한다. 셋째, 반드시 상호작용이 있어야 한다. 상호작용이란 “대화”를 말한다. 묻고 답하고, 토론하는 과정을 통해 지식과 경험이 전 이된다. 그래서 대화가 없고, 상호작용이 안 된다면, 왜 없는 지부터 토론을 하게 한다. 넷째, 총체적 변화를 목표로 한다. 코호트 모델은 단순한 지식형성이 아니라 사람의 정체성 변화를 목표로 한다. 예를 들어 “파이썬 배우기”가 아니라 “웹 개발자 되기”로 설계한다. 지식배틀이 아니라, 실천으로 통해 사람의 습관이나 행동, 사고방식까지 바꾸도록 훈 련시킨다. (2) 집단의 크기 동료학습을 해야 한다면 도대체 몇 명이 모여서 해야 할까? 즉, 코호트 집단의 크기는 어떻게 설계해야 할까? 규모 특징 교육인력 구성 소그룹 (20 명 내외) 교육의 밀도가 높음 소수 대상의 특수기술 교육에 적합 퍼실리테이터 필수(1 인당 20 명 이내) 멘토 필수(전문분야별 1 명 이상, 비상근직) 중그룹 (20~50 명 이내) 교육의 밀도가 비교적 높음 다소 범용적인 기술 교육에 적합 퍼실리테이터 선택(1 인당 50 명 수준) 교육운영 필수(1 인당 50 명 수준) 멘토 권장(전문분야별 1 명 이상, 비상근직)
  • 167.
    167 대그룹 (100 명 이상) 교육의밀도는 낮음 범용적인 기술 교육에 적합 퍼실리테이터 선택(1 인당 100 명 수준) 교육운영 필수(1 인당 50 명 수준) 멘토 선택(멘토 1 인당 10 명 수준, 비상근직) 표 29. 집단규모별 특징과 지원인력 구성 코호트 집단의 크기는 그 집단이 보유한 “지식과 경험의 총량”을 의미한다. 총량이 많으면 학생들간 매칭만 잘 시켜도 학습이 활발하게 일어난다. 집단의 크기가 작으면 과제에 필요한 “지식과 경험”이 없는 경우가 생긴다. 이 경우, 외부에서 경험을 가진 사람을 찾아 매칭해줘야 한다. 이 역할을 하는 사람이 “퍼실리테이터”다. 경험이란 전문지식일 수도 있고 “검색키워드”일 수도 있다. 학생들이 스스로 벽을 넘 어설 수 있도록 도와주는 여러 가지 것들이다. 제공자는 현업개발자일수도 있고, 선배들일 수도 있다. 기술적인 대화가 가능한 사람 이어야 한다. 가능하면 여러 명으로 구성된 풀을 만들자. 소그룹일수록 소통의 속도가 빨라서 학습속도가 빨라진다. 하지만, 경험의 크기가 작 아 과제가 어려워지면 금방 벽에 부닥친다. 물어볼 사람이 없으면 과제를 진행하지 못해 좌절하게 되고, 자연스레 학습그룹이 와해된다. 대그룹은 경험의 크기가 커서 물어볼 사람을 찾기 쉽다. 도움을 요청하면 금방 누군 가 달려온다. 학생들에게 몇 가지 요령만 가르쳐줘도 “스캐폴딩”이 발생한다. 하지만, 소 그룹은 그렇지 않다. 그래서 소그룹에는 “퍼실리테이터”가 반드시 필요하다. 학생들이 벽에 부닥칠 때 경험 자를 찾아 매칭시켜주는 역할을 한다. 경험의 조달자이다. 교직원이 맡아도 되고, 학생들이 맡아도 된다. 다만, 과제에 대해 조언해줄 수 있는 “경험자풀”이 구성되어 있어야 한다.
  • 168.
    168 공부할 때 최적의크기는 3-5명 정도가 적당하다. 결석인원이 생겼어도 최소한 3명이 상존할 수 있다. 최소 3명이면 쉬지 않고 학습진도를 나간다. 학습진도를 나가는 건 꽤 중요하다. 참석자는 기한에 맞춰 과제를 끝낼 수 있고, 결석 자는 뒤쳐지기 않기 위해 노력할 수 있다. 동기가 유지되기 때문에 학습그룹이 깨어지지 않고, “실패”하던 “성공”하던 중요한 경 험들이 형성된다. 선순환이 되는 거다. 반면 학습그룹이 2명 이하이면, 종종 학습을 건너뛰게 된다. 그러면 학생들은 늘어져 서 집중도 잘 안되고, 결석자도 긴장감이 없어져서 학습그룹 자체가 흐지부지된다. 동기가 깨어지니 과제도 제때 끝나지 않고, 흐지부지 끝나 필요한 경험이 안 쌓인다. 과제가 크면 5-7인으로 구성되기도 한다. 어쨌든 학습그룹의 크기가 크게 느껴진다면 두 팀으로 쪼갠다. 중요한 건 기일 내에 결과물을 만들어내는 것이다. 만일, 무임승차하려는 동료가 있다면 과감하게 팀을 깨고 새로 만든다. 동기가 깨어지 면 그룹학습은 깨어진다. 한 코호트 그룹 내에 학습그룹이 5개 이상 존재하는 게 좋다. 1개팀이 깨어져도 다른 팀이 흡수할 수 있다. 대그룹은 어떨까? 인원수가 많아진다는 건 매번 새로운 얼굴로 학습그룹을 만들 수 있다는 뜻이다. 다양한 사람들을 만날수록 학생들의 경험폭은 넓어진다. 교육의 질이 올라간다. (3) 퍼실리테이터와 교육운영 학습이 집단화되면서 “교수자”의 역할이 갈라진다.
  • 169.
    169 “멘토”, “퍼실리테이터”, “교육운영”등의 구성원이 필요하게 된다. 역량이 된다면 한 사람이 해도 되는데, 학생들이 많아지면 그러기 어렵다. 하지만 잊지 말자. 이 교육모델의 주인공은 학생들이다. 교직원의 에너지로 교육이 돌아간다면, 이 교육은 실패한다. 교직원의 에너지를 투자하면, 분명히 교육의 질은 올라간다. 교육은 투자한 학습자원 만큼 효과도 높아지기 때문이다. 하지만, 교직원이 없다면 교육이 지속될 수 없다. 집단학습의 가장 큰 특징 중의 하나는, 교직원 없이도 지속가능 하다는 것이다. 그래서 가능하면 공동체의 구성원이 스스로 할 수 있도록 여러 가지 역할을 열어 두 어야 한다. “퍼실리테이터”는 교육의 진행을 담당한다. 조교역할로 이해하면 된다. 학습이 정체되어 있거나, 학습속도가 떨어지면 개입한다. 개입 수준은 교육기관마다 다를 수 있다. 교육 내용에는 관여하지 않는다. 진행자이자 돌봄교사 정도이다. “멘토”는 전문지식을 가진 조언자다. 외부 전문가나 선배들이 해도 좋다. 교육 내용에 관여하거나 학습에도 참여할 수 있 다. 다만 공동체의 구성원일 뿐, 교수자 역할은 하지 않는다. 강의교육을 기피하진 않는다. 다만, “교수자 – 학생 관계”를 기피한다. “특강”은 학생들이 “경험공유 활동”으로 받아들인다. 하지만, 포맷화된 교수자 수업 은 ”지식전달 프로그램”으로 받아들인다.
  • 170.
    170 수동적 학습태도를 요구하는순간 학생들은 지루해 하거나 이탈한다. 이 교육모델이 “교수자 수업”의 대안으로 등장한 학습모델이라는 걸 잊지 말자. 학습 중에 수학, 과학 등이 필요하다면, 학생들끼리 가르치게 하자. “프락시스 교수학 습모형”을 참고하면 된다. “퍼실리테이터”는 학생들 옆에 있는 사람이다. 중그룹 규모가 되면, 교육의 전체흐름을 관리할 인력이 필요하다. 신입생 선발 일정을 세우고 학습현황을 체크하고, 외부전문가를 섭외하고, 다음 달 스 케쥴을 체크한다. 교육기획과 설계의 역할도 있는데, 여기선 빼자. 멘토와 퍼실리테이터는 한 사람이 하면 가장 좋지만, 사람 구하기가 힘들다. 그래서 대부분 분리해서 구한다. “퍼실리테이터”는 교육전문가로서, 교육이 진행되는 동안 필요하다. “멘토”는 기술전문가로서, 항상 있을 이유는 없다. 특히 멘토는 회사일로 바쁘기 때문에 교육일정에 묶여 있지 않다. 이 모델에선 느슨하게 관리하자. 학생들이 멘토를 찾는 이유는 자기가 부족하다고 느낄 때인데, 이 때 익혀야 할 건 스스로 찾아가서 질문하고 필요한 정보를 뽑아오는 스킬이다. (4) 조력 그룹(멘토, 튜터) 공동체 학습의 특징은 “경험”의 소통을 통해 지식을 형성시키는 것이다. 단점으로는 집단 내에 충분한 “경험”들이 존재하지 않는다면, 배움이 일어나지 않는다. 예를 들어, DevOps나 빅데이터는 학생들이 하기 어렵다. 익힐 수 있는 게 어플리케
  • 171.
    171 이션 사용법 정도다. 하지만,기업에서 원하는 건 이 기술들을 이용해 서비스를 안정화 시킨다든가, 데이터 를 이용해 사업예측을 하는 것이다. 즉, 그런 경험이 없다면 기술이 의미하는 바를 알 수도 없고, 어디다 써먹어야 할지도 알 수 없다. 그런 경험은 인터넷을 검색해도 안 나온다. 그래서 학생들이 공부에 필요한 정보와 경험을 확보할 수 없다. 이 때 조력활동을 해줄 전문가 집단이 필요한데, 그게 “멘토”들이다. 교육내용이 대학교 수준이라면 경험이나 지식의 조달은 쉬운 편이다. “컴퓨터공학과” 수준이라면 학생들끼리 코칭 해도 된다. 참고서적이 많기 때문이다. 먼저 진도를 나간 코호트 그룹이 코치역할을 할 수 있다. 즉, 학교교육이라면 완벽하게 학생들만으로도 교육운영이 가능하다. 학교라면 학기 내에 교육을 마쳐야 하므로, 코칭활동을 제도화 시킨다. 코호트 그룹 내에 “튜터” 역할을 만들어 주면, 조력활동 때문에 학습속도가 빨라진다. 멘토 등 조력그룹을 운용할 때 주의할 점은, “권위”로서 동작하면 안 된다. 즉, “10년차 개발자니까 다 옳아.” 학생들이 이런 식으로 받아들이면 안 된다. 학생들이 그렇게 할까 싶은데, 그렇게 한다. 그래서 조력그룹을 형성할 때도 가능한 다양하게 구성하고, 학생들에게도 “경험”의 청 취채널로서 접근하라고 일러 둔다.
  • 172.
    172 마. 학습커뮤니티의 단점 커뮤니티로운영할 땐 주의해야 할 점이 있다. 사람들이 모여 있는 만큼, 갈등도 다양하게 생긴다는 거다. 사람이 많이 모일수록 갈 등도 더 커진다. 소그룹일땐 크지 않는데, 중그룹이나 대그룹일 땐 매우 두드러진다. 첫째로 가장 큰 건 “정치적 세력화”이다. 사람들이 모이는 곳엔 정치적 흡인력이 있는 친구들이 항상 존재한다. 특히 교육기간이 길어지면 반드시 생긴다. 문제는 이게 정치적 갈등으로 이어질 때다. 이익집단의 성격을 띄게 되면 공부가 아니라 집단의 이익보호가 우선이 된다. 그러면 집단 갈등으로 비화되고, 타협점이 없어진다. 가능하면 집단에 외적보상을 주지 않는다. 예를 들면 “과제연구회”, “게임개발동아리” 등에 장학금을 주지 않는다. 돈이 결부되면 반드시 세력화되고 갈등이 시작된다. 둘째, “고인물화”이다. 학업기간이 길어지면 친한 사람을 중심으로 친목화가 진행된다. 친목화는 커뮤니티의 특징이자 장점이다. 정서적 유대감이 서로에 대한 헌신과 기여를 만들어내기 때문이다. 하지만, 텃새나 권위의식 등으로 신입생이 유입되지 못하면 안 된다. 80학번 모임 같이 함께 늙어갈 친목모임이라면 그래도 되지만, 정기적으로 졸업생을 배출시켜야 하는 학교라면 그럴 수 없다. 3개월, 6개월 기간을 정하고 흐름을 만들어서 계속 새로운 사람이 유입되도록 한다.
  • 173.
    173 세번째로, 가장 중요하게생각해야 할 것이 “학습 분위기” 형성이다. 42 교육 초기, 파리캠퍼스는 학생들을 그대로 두면 알아서 공부할 거라는 조언을 했 다. 우리는 그 조언을 믿고 1년 정도 정말 바라보기만 했다. 그랬더니, 특이한 현상이 일어났다. 비전공자들이 질문을 올리면, 전공자들이 핀잔을 주기 시작한 거다. “이런 기초적인 내용은 구글 검색이라도 해보고 합시다.” 내용은 점잖아 보이지만 꽤 공격적인 태도였다. 이건 당시의 온라인 문화였다. 일부 학생들은 질문을 “공해”로 인식했고, 검색이라도 해본 후 질문을 올리도록 “예의” 를 요구했다. 언듯 합리적인 듯 보였지만, 한달정도 지나자 “질문채널”에는 거의 한 개의 질문도 올 라오지 않았다. 자기검열이 소통을 막아버린 거다. 학생들은 고립에 빠져 학업을 포기하기 시했다. 이 현상은 3개월 이상 지속되었는데, 아무리 기다려도 상황은 개선되지 않았다. 교육기관의 존재목적은 시시비비를 가리는 게 아니다. 학생들을 공부시키는 거다. 집단학습 모델에선 “소문”이 도는 속도가 빠르고 분위기 전파도 빠르다. 분위기가 흐트러져서 상호작용이 일어나지 않으면 학습은 일어나지 않는다. 그래서, 교육 운영자가 꾸준히 분위기 관리해줘야 한다. 소통을 막는 행위가 있다면, 주의를 주고, 경고를 주고, 퇴학까지 시킨다.
  • 174.
    174 바. 개발자 커뮤니티 IT기술은 기본적으로 근본 없이 발전했다. 혈통을 가지고 정통성 있게 발전해온 게 아니라, 그때그때 필요한 기술을 조달하고 활용하면서 발전해왔다. 예를 들어 최초의 컴퓨터는 그저 로켓 궤도를 계산하기 위한 복잡한 계산기였을 뿐이 다. 그러다 생뚱맞게 인터넷이란 게 태어났는데, 군사용으로 사용하기 위한 통신 규격이 었을 뿐이다. 그것도 어느 날 갑자기 웹 브라우저와 html이 등장하면서 대중화되기 시작했고, 동적 화면을 구현하려는 시도가 생기면서 JavaScript가 만들어졌다. 그야말로 좌충우돌하면서 성장해온 것이다. Java도 처음에는 지금과 같은 서버 플랫폼이 아니었다. 원래는 TV, 전자레인지 등 가전제품에 탑재될 목적으로 개발된 가벼운 언어였다. 하지 만 거기에선 환영 받지 못했고, 오히려 웹 브라우저에 쓰이면서 대중화되기 시작했다. 그리고, html의 Hypertext라는 개념은, 테드 넬슨이라는 사회학자에 의해 탄생되었는 데, 수집품의 색인을 구축하기 위해 고안한 개념일 뿐이었다. 즉, IT기술은 물리학이나 수학처럼 하나를 깨달으면 나머지를 알 수 있는 그런 분야가 아니다. 탄생배경이 다양하고 작동규칙도 달라서 그때그때 배워서 쓸 수밖에 없다. 개발자는 혼자서 모든 걸 알 수 없으니 고립되는 순간 점점 도태되어 간다. 그래서 “커뮤니티”는 개발자에게서 뗄레야 뗄 수 없는 존재이다. 하지만, 개발자 커뮤니티는 동문회처럼 엄격하고 끈끈한 사교적 모임이 아니다. 그냥 서로 알고 지내면 좋을 것 같은 기술자들끼리 살포시 정보를 주고받는 꽤 데면 데면한 사교적 모임이다. 물론, 정보교환이나 세미나 등의 활동은 활발하게 일어난다.
  • 175.
    175 이런 모습은 빠른기술의 변화 때문에 자연스럽게 자리잡은 “동반성장 문화”이다. 즉, 개발자 커뮤니티는 성장을 촉진시키는 사회 인프라처럼 작동한다. 그리고 “상호채 용의 창구역할까지 자연스럽게 해내고 있다. “학습 커뮤니티”는 그런 개발자 커뮤니티를 미리 연습해볼 수 있는 학교 플랫폼이기 도 하다. 현업 CTO로서 “학습 커뮤니티”는, 개발자를 가장 잘 훈련시킬 수 있는 교육환경이라 고 생각한다. 적극적으로 지지하지 않을 수 없다. 4. 교육도구 교육도구는 개발환경과 교육도구로 나뉜다. 교육의 질과 역량수준에 직접적으로 관계한다. 가볍게 보지 말고, 진지하게 접근하자. 가. 개발환경 개발환경은 현대 소프트웨어 개발에서 절대 보조적 역할이 아니다. 생산성을 높이거나 협업을 위해 자연스럽게 만들어진 도구들이라, 개발과정의 중심에 있다. 요즘 개발의 전체흐름을 이해할 수 있는데, 가능하면 모든 학생들이 교육과정에서 자 연스레 익혀서 나갈 수 있게 해야 한다. 회사에 가서 배울 수도 있겠지만, 이걸 이해하고 가는 것과 아닌 것과의 차이는 매우 크다. 지식과 경험은 Why라고 질문할 시간을 충분히 가져야 형성되기 때문이다. 예를 들어 GitHub을 이용해보지 못한 학생들은 협업하는데 어려움이 크다. 협업이란 직업적 가치관이나 업무우선순위, 토론 태도 등이 함께 연결되어 있기 때문이다. 가장 기본적인 것부터 이야기해보자.
  • 176.
    176 제일 먼저 노트북과서버가 필요하다. 가능하면 메모리 넉넉하고, 속도가 빠른 노트북이 필요하다. 설치해야 할 소프트웨어 도 많고, 컴파일 시간도 빨라야 하기 때문이다. 빠르게 Try&Error 를 반복할수록 소프트 웨어의 완성도는 높아진다. 노트북에 Visual Studio를 설치하고, nginx, MySQL을 설치하면 웹 개발을 시작할 수 있다. 만일, 웹 아이콘을 디자인해야 한다면, Adobe Illustrator와 Adobe Photoshop가 있어야 한다. 없다면 몇 가지 템플릿 페이지를 참고할 수도 있는데, 가능하면 있는 게 좋 다. 팀 작업을 해야 하는 경우는 어떨까? 함께 업무기록을 할 수 있도록 notion 계정을 준비해야 한다. 함께 화면을 그려볼 수 있도록 Figma 계정도 만들자. 업무를 잘게 쪼개어 Taks로 만든 후 Trello에 등록해 놓자. Trello는 모든 팀원들과 함께 작업내용을 공유할 수 있는 사이트다. 이런 걸 “협업도구”라고 한다. 여러 명이 함께 개발했다면, 공동으로 관리하는 소스코드 저장소가 있어야 한다. GitHub은 공개된 저장소이니, GitLab이나 Bitbucket을 사용한다. 소스코드를 모아서 함께 돌아가는 걸 확인했다면, 이제 서버에 함께 올려야 한다. 버전 1.0으로 이름을 붙이고 서버 배포를 위한 디버깅 환경까지 마련하자. 등등. 이런 과정을 거쳐야 비로소 “동작하는 웹페이지”를 볼 수 있다. 이런 작업 환경을 통틀어서 “개발환경”이라고 말한다.
  • 177.
    177 이 과정을 구성해놓고 서야 이제 본격적인 개발을 할 수 있다. 비로소 프로그래밍 언어도 써볼 수 있고, 알고리즘도 필요하게 된다. 협업환경이나 도구들은 회사마다 다르다. 필요에 따라 더 쓰는 경우도 있고, 꽤 오래 전부터 써왔다면 옛날 버전을 쓰는 경우도 있다. 하지만, 단순히 프로그램을 실행시킬 수 있는 “실행환경”은 아주 오래된 이야기다. 실 행환경 만으로 소프트웨어 개발을 하는 시대는 갔다. 추가적으로 클라우드 교육이라면, 블레이드 서버와 라우터, 스위치가 필요하다. AI 교육이라면 GPU 서버가 꼭 필요하다. Docker와 Kubernetes를 공부한다면, 꽤 큰 서버를 제공해줄 수 있도록 하자. 소프트웨어 개발도 명확히 교보재가 필요한 분야이며, 이런 것들의 제공여부에 따라 학생들의 수준이 아주 많이 달라진다. 나. 교육도구 교육도구란 교육을 위해 필요한 환경들이다. 어떤 것들이 있을까? 전통적인 강의수업에는 “교육도구”랄 게 없다. 교수가 설명하고 학생들이 필기하는 걸 로 끝나기 때문이다. 컴퓨터 실습시간이라고 해봐야 따라 하기 정도이다. 그러나 소프트웨어 개발은 그렇지 않다. 교육 단계에서 가장 먼저 챙겨야 할 게 “코드리뷰” 문화이다. 코드를 짠다는 건 음악 을 연주하는 것과 같아서, 함께 들어주고 피드백 해주는 게 매우 중요하다. 이 에러가 어떤 문제인지 알아내야 하는데 아직 초보자라면 그게 무슨 문제인지 설명 하기조차 어렵다. 전화통화로 설명하고 대답하는 방식으로는 문제를 해결할 수 없다. “이거 이렇게 짜지 말고 이렇게 고치면 훨씬 더 좋아요.”
  • 178.
    178 “컴퓨터가 이렇게 동작하지않기 때문에, 이 코드는 이렇게 써야 해요.” “저쪽 서버에서 이렇게 메시지를 보내기 때문에, 이쪽에선 이렇게 받아야 해요.” 코드를 주욱 살펴보는 것만으로도 문제가 종합적으로 이해된다. Path를 제대로 잡았는지, File권한은 어땠는지 함께 볼 수도 있다. 코드리뷰란, 단순히 코드를 살펴보고 평가하는 것 만을 의미하지 않는다. 코드를 놓고 다양한 기술 이야기를 함께 하는 지식과 경험전달의 과정이다. 즉, 학교 수준에서의 “코드리뷰”는 “현장학습”과 동일한 의미이다. 코드리뷰를 요청하거나 요청 받을 수 있는 소통채널이 있으면 좋다. 단톡방에 올리는 것보다는 훨씬 더 이력관리하기 쉽고, 다시 찾아보기도 좋다. 학생들이 참고하는 블로그나 학습 사이트를 함께 모아 놓는다. 기타 등등, 상호코칭과 집단학습에 필요한 학습자원을 모으고, 그걸 참조하게 만들자. 이런 교육도구들은 사실 학생들이 만드는 게 가장 좋다. 왜냐하면 공동체 활동의 당사자들이 필요성을 가장 많이 느끼고 내용을 가장 잘 알기 때문이다. 외부 전문가들과 협업을 통해 만들어도 좋다. 다만, 공동체 활동에 참여하지 않은 사 람이 적합한 교육도구를 만들기는 어렵다. “사용자 시나리오”를 알 수 없으니, 무얼 개발해야 할지 모르기 때문이다. 다. 오픈소스 학생들이 자발적으로 만든 소스코드들은 가능하면 “오픈소스”화 시키자.
  • 179.
    179 교육기관의 GitHub에 링크를걸어 놓고, 누구나 참고할 수 있게 하자. 학생들이 이전 기수가 만들어 놓은 걸 뜯어고치게도 하고, 다음 기수가 자유롭게 가 져다 쓸 수 있게도 하자. 오픈소스의 가치와 의미는 아무리 강조해도 지나치지 않지만, 교육 분야에선 더더욱 그 가치가 두드러진다. 첫째, 학생들은 남의 코드를 모방할 때 발전한다. 베끼는 행위를 말하는 게 아니다. 자기가 풀고 싶은 문제가 있어 골똘히 해법을 생각하고 그걸 코딩해 놓았는데, 고수 가 더 세련된 방법으로 만들어 놓은 코드를 본다면, 개발자들은 거의 “대오각성”을 한다. 즉, 성장은 행동 – 회고(반성) – 교정을 반복할 때 일어나는데, 이 때 모방행위는 회 고의 인식폭을 넓혀주고 교정행위의 수준을 대폭 높여주는 중요한 키가 된다. 남의 코드를 참고하고 연구하는 건 절대 나쁜 짓이 아니다. 오히려 권장해야 하고, 그 러기 위해 여러 사람의 코드를 쉽게 찾아볼 수 있어야 한다. 특히 같은 문제에 대한 다양한 해법들을 만나는 것만으로, 개발자들의 안목은 굉장히 넓어진다. 단, 베끼는 것 만으로는 실력이 나아지지 않는다. 결국 참고만 할 뿐 나 스스로 고민 하고 구현해봐야 한다. 둘째, 글로벌 개발자들과 일해볼 수 있는 기회가 된다. Apache나 Linux 재단의 오픈소스에 관심을 가진다면, 자기가 관심 있는 파트를 찾아 Code를 contribution 해볼 수 있다. 대부분의 Committer 들은 이런 contribution에 대해 적극적으로 대응해주는데, 이게 훗날 함께 일해볼 수 있는 인연이 되기도 한다.
  • 180.
    180 한국의 교실에 앉아실리콘밸리 개발자와 코드를 놓고 토론해볼 기회가 얼마나 될까? 개발자들은 문제를 꿰뚫어 보고 해결책을 제시할 수 있는 눈이 굉장히 중요하다. 고수들과 대화를 자주하는 것만으로도 그 눈이 길러진다. 글로벌 오픈소스는 학생들의 성장동기를 강하게 자극시켜준다. 셋째, 나를 공개한다는 것만으로 성장동기가 뚜렷해 진다. “모방”은 과제를 베껴서 제출하는 것과 구분하기 어렵다. 하지만, 누군가 내 걸 보고 참고하고 질문한다면? 최소한 남에게 설명할 수 있거나 응용할 수 있을 정도는 실력은 쌓게 된다. 내가 블러핑 하거나 남을 속였을 때 당연히 비웃음을 사기 때문이다. 나를 드러내는 건 적어도 나 자신에게 진지할 수 있도록 만들어준다. 남을 잠깐 속일 수는 있어도, 영원히 속일 수는 없기 때문이다. 넷째, 현업 개발자들과의 만남. 내 코드를 만들고 그 코드에 관심 있는 사람들을 모으고, 그 분들과 함께 무언가를 쌓아간다는 건 이미 프로 세계에 있다는 걸 의미한다. 이런 경험을 학교에서 해보는 건 굉장히 중요한 경험이다. 학교가 일종의 안전판 역 할을 해주기 때문이다. 학교에서 학생들이 현업들과 자유롭게 만날 수 있는 길은, 공통된 관심사뿐이다. 내 코드를 외부에 공개하고 현업개발자들과 대화할 수 있다면, 그것만큼 의미 있고 뿌듯한 일이 없다.
  • 181.
    181 물론 학생들에게 현업수준의오픈소스를 기대하긴 어렵다. 제대로 된 오픈소스란 지속가능성을 보장해야 하기 때문이다. 쓰는 사람이 꾸준해야 하고 다양한 기술변화에도 대응이 가능해야 한다. 그래서, “개발자 커뮤티니”, “다양한 문서” 등을 붙이고 적정한 “거버넌스” 체계를 잡아 야 비로소 동작하는 “오픈소스”를 구현할 수 있다. 이건 프로의 세계에서도 힘드니까 학교수준에선 기대하지 말자.
  • 182.
    182 제7장. 교육의 운영 1.학교의 모습 학교의 모습을 간단하게 그려보라면 이렇게 말할 수 있다. “이곳은 개발자 지망생들이 모여 자유롭게 어울리면서 공부하는 개발자 놀이터다.” “모든 활동이 학생들에 의해 자치적으로 이루어지며, 졸업 후에도 구성원으로 활동할 수 있는 평생학습 공동체이다.” 그리고, 사회와 단절된 곳이 아니라 양방향으로 연결되어 있는 개발자 학교다. “스타트업들이 학생들과 만나 다양한 실험들을 해볼 수 있는 소프트웨어 연구소이며, 사회 커뮤니티가 학생들과 만나 우리 사회의 문제를 풀어가는 실천공동체이기도 하다.” 이 학교가 작동하는 방식은 기존의 학교와는 완전히 다르다. “수동적 교육철학” Passive pedagogy은 교육이 완성될 때까진 학생들을 수동적인 교 육대상으로 본다. 교육의 완성을 교사가 수업일정을 모두 진행했는가로 판단한다. 그래서 잘 통제된 방식으로 주어진 프로세스와 일정을 소화하는 게 매우 중요하다. 하지만, “능동적 교육철학” Active pedagogy은 학생들을 스스로 알아서 움직이는 능 동적 학습자로 본다. 교육의 완성을 학생이 모든 걸 습득했는가(Get)로 판단한다. 그래서 학생들이 잘 습득할 수 있도록 환경을 구성해주는 게 매우 중요하다. 능동적 교육철학을 쓰는 목적은, “능동형 인간”을 만드는데 있다. “능동형”이란 누가 시키지 않아도 도전적으로 문제를 풀어나간다는 뜻이다. 더 큰 문 제를 풀기 위해 팀을 만들고 팀워크를 할 수 있다는 뜻이다. 교육의 완성을 “학교의 것을 모두 습득했느냐”로 판단하지 않는다. 사회 속으로 나아
  • 183.
    183 가 제 몫을하기 시작했느냐로 판단한다. 그래서, 레벨업 되었을 때 학생들이 사회와 섞이게 해주는 건 매우 중요하다. 대졸자들을 바로 채용하기 힘든 이유는, 대학이 사회와 단절되어 있기 때문이다. 기존 대학과 마찬가지로 사회가 학생들을 다시 가르쳐야 한다면, 앞에서 말한 여러 가지 교육이론들은 완전히 쓰레기일 뿐이다. 그래서 학생들이 스타트업이나 사회 커뮤니티와 교류하도록 해주는 건, 집단학습모델 에선 “정식학습환경”이어야 한다. 자신의 배움이 사회 속에서도 통한다는 걸 알게 되면, 학생들은 자연스럽게 학교를 떠나게 된다. 그런데, 이런 학교는 자연스럽게 탄생되지 않는다. 공부방 수준이야 학생들끼리 자연스럽게 만들 수 있지만, 100명 이상의 학교는 그렇 게 되지 않는다. 100명의 학생들이 어느 날 갑자기 비슷한 생각을 해서 한 곳에 모여 커 뮤니티를 만들지는 않기 때문이다. 선장과 운영자의 노력이 없다면 만들어지지도 않고 유지되지 않는다. 단, 커뮤니티의 특성상 궤도에 오르고 나면 저절로 굴러간다. 커뮤니티는 구성원들의 갈등 때문에 계속해서 무너지려는 속성이 있다. 경험에 기반한 학습방식을 원천으로 하고 있는데, 경험은 사람마다 모두 다르기 때문이다. 갈등요소를 제거하고 선순환 구조가 유지될 수 있도록 원칙을 기반으로 잘 운영해야 한다.
  • 184.
    184 2. 입학생 선발 가.입학신청 이 교육모델의 핵심을 한 문장으로 정리해보자. “집단지성과 커뮤니티의 힘을 빌어, 스스로의 행동을 통해 성장하는 것” 중요한 키워드 4가지를 뽑아보자.  스스로 성장한다.  스스로 행동한다.  집단 지성을 내 것으로 만들어야 한다.  커뮤니티 속에서 나의 동료들을 만들어야 한다. 아동교육 모델은 “성장과정”을 학교가 책임진다. 하지만, 성인학습은 그렇지 않다. 자기의 성장은 자기가 책임진다. 자기 필요에 의해 모인 사람들이기 때문이다. 그래서 교육방식이나 교육철학에 동의하지 않는 사람은 뽑지 않는다. 학교의 정체성이 흔들리기 때문이다. 학교의 정체성은 현실적 행정 때문에 제한 받는다. 예를 들어 “수동적 교육방식”을 쓰려면 교수를 뽑아야 한다. 수업시간과 교재, 학사일 정을 수립하고 그에 맞는 교직원도 채용해야 한다. 수동적인 학생들과 능동적인 학생들을 섞어서 교육 활동을 유도하기도 어렵다. 평가체 계나 성장방식이 완전히 다르기 때문이다. 즉, 학교는 두 개 이상의 정체성을 가지고 운영하기 어렵다. 재원과 직원, 교수채용 같은 현실 문제에 부닥치기 때문이다. 그래서 입학생은 입학기준을 명확히 해서 동질집단으로 확보하는 게 중요하다.
  • 185.
    185 나. 선발기준 지원한 학생들을모두 뽑을 수 있다면 좋겠지만, 재정적 여건이 그렇지 못할 수 있다. 어떻게든 커트라인을 가지고 누군가를 탈락시켜야 한다. 선발 기준은 어떻게 해야 할 까? 먼저 이 원칙을 확인하자. “개발자는 학습능력만 익히고 나면, 사실 누구나 다 개발자가 될 수 있다. 다만 성장 속도와 수준이 다를 뿐. 학교라면 그걸 인정하고 기다려줄 수 있어야 한다.” 수능처럼 지원자가 입학시점에 가진 지식의 우열을 가리는 건 의미가 없다. 교육기관 의 목표는, “의지는 있지만 아무것도 모르는 사람이, 원하는 걸 배워서 졸업할 수 있게 하는 것”이기 때문이다. 실제 개발현장에 가도 비슷하다. 매번 새로운 기술이 나오고 매번 써봐야 그 기술이 어떻게 동작하는지 알 수 있기 때문이다. 그래서 학습능력을 익힐 수 있고 집단학습법에 우호적인지만 판별한다. - 가르쳐주는 사람이 없어도 내가 알아서 정보를 찾아보고 움직일 수 있는가? - 주변 사람들에게 도움을 요청하거나, 도움을 주면서 성장할 수 있는가? - 일단 코딩을 시작하면서 이것저것 찾아보는 개발자의 성장방식에 내가 맞는가? - 그렇게 시간을 보냈을 때, 나의 실력은 과연 성장해 있는가? 실력의 성장유무는 “시험”을 통해 가려낸다. 물론 90점과 91점을 가려내는 시험은 아 니다. 운전면허 시험처럼 커트라인을 넘겼는지만 확인한다. 학습법이 맞다고 느꼈더라도 커트라인을 넘기지 못했다면, 선발순위에선 밀린다.
  • 186.
    186 그런데 이렇게 선발하면대부분 통과하게 된다. 맞다. 이 학교는 그런 학교다. 그래서 선발과정 이전 단계에서 인원을 제한한다. 선착순도 좋고, 에세이를 제출하는 것도 좋다. 만일 우수한 학생들을 뽑기 위해 “성적”을 반영하고 싶다면 그래도 된다. 이건 학교의 철학에 따른다. 다만, 코호트 집단의 성격이 달라지면, 교육내용이나 학습방식에도 변화를 줄 필요가 있는데, 이건 새로운 교육설계를 하면 된다. 다. 선발 프로그램 능동적 학습법은 수동적 학습방식보다는 꽤 피곤하다. 스스로 방법을 찾지 못하면 아 무것도 배울 수 없기 때문이다. 특히 혼자서 공부하는 고립형 학습자는 전혀 이 곳과 맞 지 않다. 42는 4주짜리 선발과정을 운영하는데 이걸 꼭 따라 할 필요는 없다. 이건 프랑스라는 나라특성, 고등학교 졸업생들의 성향, 그리고 학교철학과도 관련이 깊기 때문이다. 피씬 과정 내에는 C 코딩 익히기, 알고리즘 이해하기, 올바른 팀 협력, 이 세가지를 테스트한다. 4주의 시간을 고려한 건, 태도의 변화를 이끌어내기 위한 거다. 이건, 운영중인 학습공동체를 엄격하게 보호하기 위한 것이기도 하다. 전혀 다른 성질 의 학생들이 입학하는 순간 교육방식이나 원칙들이 무너질 수 있기 때문이다. 즉, 판단의 근거와 지향하는 가치가 프랑스의 교육철학에 기반하고 있다. 우리나라의 경우 1주일~2주일 정도면 충분하다. 인종이 다양하지 않고, 사회적 가치 관이 비슷하기 때문이다. 프로그램 설계는 교육기관마다 다르게 하면 되지만, 안전하게 2주 과정을 추천한다.
  • 187.
    187 내용은 “협력학습을 위한요령”과 “코딩 기초 프로그램”으로 구성한다. 다만, 시작할 때 “학습요령”과 “원칙”을 강하게 인지시킨다. 그건 적응을 원하지 않는 학생들을 빠르게 솎아내기 위해서다. 포기할 사람은 빨리 포기하게 한다. 3. 공동체 운영 가. 운영의 주체 학교 운영의 주체는 학생이다. 특히 학습공동체 방식이라면 더욱 더 그렇다. 그래서 기존의 교육기관과는 조금 다르게 운영된다. 구분(전통적 교육기준) 전통적 방식 학습공동체 방식 교육활동 교육내용설계 교수자 교육설계자(교수진) 교육일정수립 교수자, 교육행정 학생 스스로(과제기한 있음) 수업진행 교수자 동료학습, 상호코칭 과제평가 교수자 동료평가 시험(실력확인) 교수자 출제 : 교육설계자(교수진) 운영 : 학생들이 졸업평가 논문, 캡스톤, 자격증 등 학생들이 알아서(취업 등) 교육지원활동 수업평가(교사) 교육행정 학습데이터 분석 → 과제 수정 취업연계활동 (공지,인턴쉽 등) 교육행정 학생들 전산시스템운영 교육행정(전산실) DevOps 팀 전산기능개발 교육행정(외주) DevOps 팀, 교육설계자(교수진) 표 30. 학습공동체 학교의 운영방식 처음에는 교직원들이 개입하지만, 직접적인 “교육활동”은 모두 학생들이 하도록 유도 한다. 시험 또한 마찬가지다. 시험감독관은 학생들이 하게 한다. 사회적 공인력을 가지고 있지 않기 때문에 교직원이 개입하지 않는다. 다만, 학생들끼리 봐주기가 만연한다면, 교직원이 개입해서 이 문제를 이슈업하고 학 생들이 대안을 도출할 수 있도록 도와준다. 자정작용이 작동하지 않는다면, 학습공동체는 엄청난 관리노력이 계속해서 들어간다.
  • 188.
    188 학생들이 아니라 관리자에의해 지탱되는 학습공동체라면 존재가치가 없다. 나. 졸업기준 졸업기준은 학교가 제시하지 않는다. 이 학교의 정체성은 평생학습이다. 취업이 졸업기준일 수도 있고, node.js를 이용해 웹 서비스를 만들어 보는 게 졸업기준일 수도 있다. 졸업했다가 필요하면 학교에 다시 돌아와도 된다. 다만, 자기 실력이 사회에서 통한다는 자신감이 생기는 게 굉장히 중요하다. 이건 자격증으로 달성될 수 없다. 자격증을 땄는데 인정해주는 회사가 없거나, 취업을 했는데 막상 할 수 있는 일이 없 으면, 학교에 대한 불신이 강하게 등장한다. “졸업기준”을 만들고 그걸 통과시키는 걸로 학교의 역할을 마치지 않는다. 재정적인 이유라면 어쩔 수 없겠지만, 가장 좋은 건 “졸업기준”이 아니라, “졸업환경” 을 만드는 것이다. 다. 학습자원 학습자원이란, 뭘 공부해야 할지를 알기 위해 필요한 정보다. (1) 동기식 소통도구 동기식 소통도구는 정보의 속도를 충족시키기 위해 사용한다. 도움을 요청할 때 온라인 상에 대기하는 동료들이 있어야 한다. 가장 많이 쓰는 게 채팅방이다. 우리나라에선 카카오톡을 많이 쓰지만, 개발자들은 “슬랙”을 많이 쓴다. 장점은 서버가 API를 이용해 직접 정보를 남길 수 있다.
  • 189.
    189 학생들의 소그룹활동을 슬랙내에 모아둘 수 있다는 장점이 있다. DevOps팀이 함께 소통할 수 있기 때문에 학교와 학생들이 자연스럽게 어우러질 수 있다. 채팅방의 단점은 검색이 어려워서 최근 정보가 금방 묻힌다. 휘발성이 높다. (2) 비동기식 소통도구 정보의 양을 축적 시키기 위해 사용한다. 게시판이나 인터넷 포럼들이다. 당장 답글이 아니라도, 언젠가 답글이 달린다. 검색을 했을 때 필요한 답을 얻을 확률 이 높아진다. 정보의 양을 늘려 양질의 정보를 수용하는 방식이다. 나중에 합류한 사람이 금방 적 응할 수 있게 해준다. 지나간 정보들을 주욱 흝어 볼 수 있기 때문이다. 신입생들의 적응속도와 학습속도가 높아지는 건 좋다. 다만, 베껴쓰기 같은 무임승차 도구로 쓰이지 않게끔 관리해준다. (3) 블로그 학생들 블로그를 모아서 보여준다. 기술 블로그가 좋다. 정보의 질이 높고, 정보 탐색시간을 줄여주는 작용을 한다. 전체적으로 학생들의 학습속도가 빨라진다. 다만, 잘 정리된 블로그가 있으면 학생들은 그걸 정답처럼 받아들인다. 따라하기를 하 는 것만으로 실력을 쌓았다고 착각한다. 흉내내기는 모방을 위한 첫 시작점이지만, 실력을 완성시키는 행위는 아니다. 학생들 에게 반복적으로 이 사실을 알려주고, 참고용으로만 사용할 것을 권고한다. 스스로 경험을 정리해보는 건 매우 유용하다. 블로그 쓰기를 통해 지식이 체계화되기 때문이다.
  • 190.
    190 (4) 협업툴 Wiki, Trello등 협업도구를 말한다. 게시판과 다른 점은 프로젝트별로 관리가 된다는 점. 그리고, 협업 프로세스를 지원한 다는 점. 전체 프로세스가 “Knowledge Database”가 된다는 점이 다르다. JIRA, Confluence 같은 현업툴들도 있는데, 이건 상황에 맞게끔 사용한다. JIRA는 Task가 아주 복잡한 프로젝트에서 Issue별로 일을 트래킹하기 위한 툴이다. 애자일 업무와 함께 사용할 때 유용한데, 이런 업무가 없다면 솔직히 번거롭기만 하고, 배우는 게 없다. 학생들은 대부분 초기에 간단한 형태의 웹 서비스를 만드는데, 여기에 JIRA 계정을 줘봤자 대부분 어떻게 사용해야 할지 몰라서 헤매다가 포기하고 만다. 즉, 툴이 먼저가 아니고, 업무가 먼저다. 협업툴은 반드시 학생들 수준에 맞게 사용법이 함께 제공되어야 한다. 그렇지 않으면 아무리 좋은 툴도 그냥 전시용품일 뿐이다. (5) 소셜네트워킹 학생들 활동이 SNS를 통해 비슷한 커뮤니티와 만나거나, 학생들 실력을 지속적으로 외부에 홍보하자. SNS는 학생들이 학교 밖의 세상과 소통할 수 있는 가장 좋은 채널이다. 기업들이나 사회 커뮤니티가 학생들에게 관심을 가지는 건 매우 중요한 활동이다. 고립된 학교는 죽은 학교다. 아무리 좋은 교육이라고 칭찬을 해도, 사회에 나갔을 때 어린아이와 같다면, 이 교육 은 죽은 거다. 학생들이 충분히 사회를 연습하고 나갈 수 있도록, 사회와 만날 수 있는 창문들을 다 양하게 열어두자.
  • 191.
    191 (6) 기술 인프라 클라우드,쿠버네티스, 10테라의 데이터 등은 개발경험을 넓히고, 경험의 깊이를 늘리 기기 위해 아주 중요한 교보재들이다. 구글 클라우드든 애져서비스든, 학생들이 다양한 플랫폼을 경험해볼 수 있도록, 학교 가 교육인프라를 제공하자. (7) 기타 등등 학습자원은 개발자가 일하는데 필요한 다양한 것을 말한다. 학교에서 현업개발자와 비슷한 경험을 해보고 나가는 건 매우 권장할 만하다. 그런데, 이런 인프라는 현업 개발자가 아니면 잘 모른다. 이런 걸 설계하는 사람들은 반드시 현업 개발자들이나 CTO들이 하게 하자. 현실성이 떨어지면 학생들이나 기업들이 외면하는데, 그러면 자연히 교육신뢰도가 떨 어진다. 라. 조력활동 공동체 운영에서 “조력활동”은 매우 중요하다. 학교생활에 어떻게 적응해야 할지, 학습그룹 내에서 갈등상황이 발생했을 때 어떻게 해결해야 할지 등을 물어볼 수 없다면 학생들은 우왕좌왕하게 된다. 문제를 제때 해결할 수 없고 도움을 받지 못한다고 생각하면, 학생들은 자연스럽게 교육장을 이탈한다. 학생들이 스스로 학습을 한다는 것과, 아무런 도움을 얻을 수 없다는 건 구별되어야 한다. 학생들이 “학교”라는 교육장에 기대하는 것들은 가능하면 모두 존재해야 한다. 끝도 없이 제공되어야 한다는 뜻은 아니다.
  • 192.
    192 기준은 “학습공동체를 통한교육”이 원활하게 이루어지는 최소한을 말한다. 학생들이 혼자 공부하지 않고, 학교에 오는 이유는 막연하기 때문이다. “개발자가 되는 방법”이 유튜브나 블로그에 아무리 넘쳐도, 그걸 어떻게 공부해야 할 지 막연하기 때문에 학교에 오는 것이다. 그 “막연함”을 걷어내 주지 못하면 학생들은 딴 곳으로 이동한다. (1) 튜터 튜터는 과제는 어떻게 하고, 스케쥴 관리는 어떻게 하고, 루틴은 어떻게 만들어내는지 를 가르쳐주는 사람이다. 1번 문제를 해결할 때 공부해야 할 기술이나, 참고해야 할 블로 그 등을 이야기해주기도 한다. 소통의 시작은 학생이 해도 되고, 튜터가 해도 된다. 이 교육모델에서도 가르쳐주는 행위 자체는 잘못된 게 아니다. 음. 이건 문어적으로만 문장을 이해해서 발생된 오해이다. 다시 정리해보면, 이렇다. - 학교에서 수업일정에 따라 교수가 수업을 진행하는 건 하지 않는다. - 1번 문제에 대해 선배와 후배가 모여서, 내용을 이해하고 토의하는 건 괜찮다. 두 개의 차이점이 뭘 까? 첫 번째 것은 제도화되어 있고, 두 번째 것은 그렇지 않다는 거다. 그게 무슨 차이를 만들까? 교수자 학습법은, 모든 책임을 교수자에게 일임하기 때문에 학생은 시킨 것만 잘 하 면 된다. 하지만, 두 번째 것은 그게 아니다. 학생이 일방적으로 지식을 전달받았더라도 스스로 질문을 통해 얻어낸 정보이고, 그게 반복되지 않기 때문에 계속해서 능동적으로 움직여야 한다. 즉, 가르치냐 아니냐는 행위는 교육철학에 위배되냐 아니냐로 판단하면 된다.
  • 193.
    193 “옳다고 판단한 학습법이의존성을 만들어낸다.” 교육관찰을 통해 이런 모습이 관찰된다면 그 때 학습방법을 걷어내도 된다. 튜터는 가능하면, 학교의 선배들이 하게 한다. 눈높이 학습이 가능하기 때문이다. (2) 멘토 튜터가 학교 내 생활을 물어본다면, 멘토는 학교 밖 세상을 물어보는 존재들이다. 비전공자가 컴퓨터 전공을 배운다면 굳이 멘토까지 만날 이유는 없다. 오히려 멘토들마다 대답이 다르고 복잡해서 이해하기 어렵다. 멘토들이 학교 생활을 조언해주기 어려운 건, 일단 구성원이 아니어서 집단학습방식을 이해하기 어렵고, 맥락과 동떨어진 현업 개발자들도 많기 때문이다. 그럼에도 불구하고 조력활동에 멘토가 필요한 이유는, 학생들에게 사회적 스킨쉽을 미 리 학습시켜주기 위해서다. 학생들이 사회에 대해 가져야 할 건전한 인식은 이거다. - 사회에는 정답이 없구나. 그래서 나만의 가치관이 중요하구나. - 그럼에도 불구하고 뭔가 공통점이 있고, 나도 그렇게 살아가야 하는구나. - 나는 이 분야에서 적어도 저 사람처럼 되고 싶다. 등등. 학생들이 준거적 인물이나 직업관, 가치관을 확보할 수 있도록, 다양한 사람들을 보여주는 역할을 한다. 그리고, 멘토들의 기술코칭은 학생들의 기술 인지역량을 빠르게 확장 시켜준다. 대표적으로 대학교 1학년 수준에서 이루어지는 학생들의 논쟁은 “JavaScript보다 Go 가 좋다.”라는 내용들이다. 이런 친구들이 배달의 민족이나 쏘카 등의 소스나 아키텍쳐 구조를 보는 순간, 그런 건 도구에 불과하구나라는 인식을 명확히 하게 된다. 즉, 백문이 불여일견이기 때문이다.
  • 194.
    194 사회에 대한 경험적학습은 이렇게 이루어져야 한다. (3) 퍼실리테이터 퍼실리테이터는 “MBC 100분 토론”에서 하는 진행자 역할을 말한다. “리더십캠프”처럼 교수자가 없는 교육프로그램에서, 교육진행을 맡은 사람들이다. 시스템화나 분업화가 잘 되어 있다면 교육진행만 맡으면 되지만, 그렇지 않다면 교육 평가설문지 같은 것도 받아서 만족도 조사를 한다. 강의를 하진 않지만, 교육프로그램의 오너로서 역할을 한다. 10명, 20명 단위로 진행되는 학교식 수업에는 “퍼실리테이터”가 리딩할 수 있다. 세미나, 밋업, 컨퍼런스 같은 걸 진행할 때 “퍼실리테이터”는 필수이다. 조별 발표대회, 해커톤 같은 걸 할 때도 꼭 있어야 한다. 학습공동체 학교라면 밋업이나, 세미나 등은 꼭 필요하다. 전문가와 섞이기 위한 매우 중요한 기회이기 때문이다. 그런데, 이건 학생들이 하기 좀 애매한 경우가 많다. 강사섭외, 학생홍보, 피드백 관리 등이 학습활동이라기 보다는 기회 공급에 가깝기 때문이다. 일반적인 커뮤니티에선 운영진들이 나서서 하고 책임을 진다. 학교에선 커뮤니티 운영진들을 별도로 선발하자. 가능하면 그들이 스스로 학생들과 이 활동을 하도록 유도한다.
  • 195.
    195 4. 교육 진단 가.교육지표설계 (1) 지표의 필요성 교육 지표는 학교가 제대로 운영되고 있는지를 점검하는 기준을 말한다. 학생들이 제대로 공부를 하고 있는지를 파악하기 위한 지표가 있고, 학교가 제대로 운영되고 있는지를 파악하기 위한 지표가 있다. 학생은 지표를 보고 내가 얼마나 왔고 얼마나 더 가야 하는지 파악해야 한다. 학교는 지표를 보고 무엇이 부족한지를 알고 대응할 수 있어야 한다. 튜터나, 퍼실리테이터들은 학업지도 목적으로 이 지표들을 사용한다. 그래서 학생의 개별적 상태와 변화과정이 꾸준히 기록되고 관리되어야 한다. 전통적 교육에선 “성적표” 같은 거지만, 집단학습에선 교수자가 없기 때문에, 좀 더 정교하게 접근한다. 당사자 지표종류 내용 학생 과정 지표 학습을 정상적으로 진행하고 있는지를 보여준다. 과제 진행률, 과제 돌파 속도, 같은 집단의 현황 등 학생들은 “과정 지표”를 보고 공부를 더 열심히 한다. 결과 지표 어떤 상태에 이르렀는지를 평가한다. 획득된 스킬, 역량 수준 등을 1~10 레벨로 표현한다. 학생들은 “결과 지표”를 보고 더 노력하게 된다. 조력자들도 “결과 지표”를 보고 조언할 수 있다. 기업들도 “결과 지표”를 채용시 활용할 수 있으면 매우 좋다. 교육기관 통계 지표 전체적으로 집단학습이 제대로 진행되고 있는지를 파악할 수 있다. 전체 수치와 개인 수치를 기준으로 비교판단 한다. 학습그룹을 “코호트집단”으로 나누어 설계한다. 집단별로 학습속도, 학습시간, 학습량, 평가결과 등을 비교할 수 있다. 관리 지표 교육이 제대로 진행되고 있지 않을 때 “빨간 불”을 울릴 기준 지표를 선정해야 한다. “학생수”, “학업속도”, “학업진도” 등은 반드시 관리되어야 한다.
  • 196.
    196 지표가 나빠지면, 어떻게해야 할지 대안을 수립해야 한다. 성과 지표 “이수율(졸업율 = 이탈율)”, “취업률” 은 모든 기관이 관리하는 지표다. 정식지표는 아니더라도 꼭 관리하자. 성과지표는 교육기관의 목표를 담아 자격증처럼 만든다. 시험을 치러 통과자를 선별한다. 중요한 건 “척도”다. “정보관리기사” 같은 것 말고, “MySQL 초보자” 같은 업계용어를 선택하여 사용한다. 성과지표는 외부인에게 우리 교육의 정체성을 드러내기 위해 필요하며, 이걸 명확하게 할수록 외부로부터의 도움을 얻기 좋다. 표 31. 교육 지표의 분류 (2) 역량 척도 역량이란 “힘의 양”을 말한다. 쉽게 말하면 실력이다. 사회의 실력은 남들이 인정해주거나, 자신의 과업으로 인정받는다. 하지만, 학교에선 그렇지 않다. 입학부터 졸업까지 레벨을 세분화하고, 역량강화 과정을 표현할 수 있어야 한다. 가장 평이한 방법은, 과제를 클리어할 때 경험치를 주는 거다. 이 경험치는 과제 만들 때 함께 정한다. 예를 들어, Google Streetview를 만들어보는 과제라면, 기본적으로 Typescript, html, css에 대한 이해가 있어야 한다. 그러면 Typescript 1점, html 1점, css 1점 이렇게 정하 는 거다. 한 단계를 높여 Google Streetveiw 내에 글자나 영상을 Overlay하려면 3D에 대한 기초이론과 WebGL, node.js 에 대해 공부를 해야 한다. 그러면 3D 기초이론 1점, WebGL 1점, node.js 1점 이렇게 준다. 난이도가 좀 더 높아진다면, 2점, 3점을 줘도 상관이 없다. 이 때 경험치 항목은 Tyepescript, html, css, WebGL 등 현업에서 통칭하는 기술항 목을 그대로 사용한다.
  • 197.
    197 난이도는 다양한 방식으로매길 수 있지만, 5점 척도가 적당하다. 과제가 끝나면 각 항목에다 가중치를 적용, 합산하여 통합된 경험치를 산출한다. “역량척도”는 “결과지표”다. 학생들의 현재 역량상태를 나타낸다. 그런데 만점이 되면 좋은 건가? 사실 의미는 없다. html이 10점 만점이 되었다고 해서 사회가 그걸 인정해주진 않기 때문이다. html 10 점이라는 건 css 9점 대비 조금 더 공부를 많이 했구나 그런 정도로 이해하는 거다. 역량지표는 나의 관심도와 균형미를 표현하기 위해 사용한다. 즉 학생들에게 동기부여 역할을 할 수 있어야 한다. 그림 24. 고용노동부 NCS 역량지표(국가직무능력표준 홈페이지) 2015년 고용노동부에서 고시한 NCS25 라는 게 있다. 이걸 교육프로그램 만들 때 쓰 라고 한다. 그런데 이건 역량지표가 아니다. 처음 의도는 몰라도, 현재 만들어진 건 산업통계 및 보고용 관리지표다. 25 NCS : National Competency Standards, 국가직무능력표준, 국가 공공기관에서 채용에 활용하기 위해 제정한 “표준역량척도”, 2015년 공표되었다.
  • 198.
    198 예를 들어 “동적모델설계”수준이 6이라는 게, 그 사람이 현업에서 일을 잘한다는 걸 보장할 수 없다. 그러다 보니 기업은 채용선발 기준과 평가 프로세스를 따로 만든다. 학생들은 이것과 상관없이 취업이 잘 되는 기술들을 찾아 배운다. 즉, 이 지표는 학생들이나 기업들을 전혀 돕고 있지 못하는 지표다. 지표를 현실감 있게 만드는 건, “동기관리”와 직결된다. 그래서 가능하면 “역량항목”을 기업들이 쓰는 용어를 사용한다. “데이터베이스 구현기술”이라고 표현하지 않고, “MySQL 상, 중, 하”로 표현한다. 그림 25. 기술 프레임워크(기술 숙달도, EITBOK) “역량연구”는 1970년대 미국에서부터 본격화되었다. 기업들은 조직성과를 높이기 위해 직원들을 교육, 평가하고 싶어했고, 컨설팅 업체들 이 이를 해결하기 위해 “Competency Framework”란 걸 만들었다. “교육분야”에서도 이 모델을 도입하면서 역량이라는 개념이 자리잡기 시작한다. 그런데 이것 역시 이 교육에선 사용하지 않는다. 전인적 인격양성을 위한 공교육이 목표라면 추상화된 표준항목이 좋겠지만, 이 학교는 산업사회와 연결된 놀이터이기 때문에 가능한 업계용어를 사용한다.
  • 199.
    199 역량항목들을 직관적으로 바꾸는건, 멘토나 튜터들과 이야기하기 좋다. 기업들과 이야기하기도 좋다. “우리 학교 학생들은 대부분 node를 합니다.” “평균적으로 과제를 5개씩 하는데, 수준은 간단한 웹 게시판 정도는 만들어요.” 말하기도 쉽고, 표현하기도 쉽고, 이해하기도 쉽다. “그럼 이러 이러한 걸 해본 친구들이 있을까요?” “네, 그런 과제들에 관심을 보이거나 해본 친구들이 100명 정도 됩니다.” 이런 대화만으로도 기업들이 충분히 학교에 관심을 가지게 된다. (3) 관리 지표 “관리 지표”를 보는 사람은, 교육설계자, 교육운영자, 퍼실리테이터 등이다. “관리 지표”의 첫 번째 목적은 “감시기능”이다. 우리 교육모델은 교수자가 개입하지 않기 때문에 제대로 운영되는지 알 수 없다. 학교가 시끄러워서 학생들이 다 떠난 다음에야 문제를 느끼면 학교가 제대로 운영되 지 않는다. “관리 지표”의 두 번째 목적은 교육의 질을 높이기 위한 “연구기능”이다. 교육이 부족하면 지표가 떨어지도록 설계한다. 그러면, 그 지표가 떨어질 때 보완방안을 생각할 수 있다. 관리지표로 사용할 만한 것들을 몇 개를 정리해본다. ① 관리단위 일단 관리단위를 정해야 한다. 같은 입학기수를 하나의 “코호트 집단”으로 하자.
  • 200.
    200 코호트 집단은 학습속도와진도, 학습수준이 통계적으로 비슷하게 간다. 만일 B 집단이 평균보다 느리게 가고 있다면 주의해서 볼 필요가 있다. ② 학습속도 과제를 클리어해 나가는 속도다. 7일짜리 과제를 3일 정도에 끝낼 수는 있다. 하지만, 하루 만에 끝냈다면 면담을 해보자. 보고 베껴서 과제를 돌파했다면, 다른 친구들은 의욕이 꺾인다. 뭔가 잘못한 게 있다 면, 지적을 해주거나 패널티를 준다. ③ 학습진도 10개 과제로 구성된 코스에서, 대부분의 학생들이 5번째에 멈춰 있다면 원인을 파악 할 필요가 있다. 과제가 너무 어려워서 그런 거다. 진도가 안 나가지면 학생들은 포기한 다. 이런 상황을 갇혀 있다고 표현한다. 학생들이 갇혀 있으면 구출해줘야 한다. 스스로 헤쳐 나오면 가장 좋겠지만, 마냥 기다려서도 안 된다. 우리 교육모델도 진도 분포도는 거의 정규분포를 따른다. 중간값이 너무 쳐지면, 학습집단이 전체적으로 잘 작동하고 있지 않다는 뜻이다. 하위 10%에 이미 포기자가 나왔을 수도 있다. 가능하면 포기자가 나오기 전에 상황을 포착하고 대응을 하자. ④ 학습수준 “결과지표”로서의 “학습수준”은 관리하지 않는다. 학교인증지표는 사실 거의 현실성이 없기 때문이다. 그래서 기업들은 “결과지표”보다 “과정지표”를 더 궁금해한다. 몇 점을 받았는지 보다 어떤 과목들을 배웠는지 궁금해한다. 가르치면 대화가 잘 통할지 궁금한 거고, 스스로 알아서 일을 잘 할지도 궁금한 거다.
  • 201.
    201 많은 개인정보를 바라는게 아니다. 신입사원은 실력을 보증해줄 경력이 없기 때문에 과정을 통해 짐작코자 하는 거다. 나. 지표 관리 교육지표를 수립했다면, 이제 어떻게 그 데이터를 확보할 것인가를 고민하자. 이건 꽤 일반적인 교육도구들을 쓰면 된다. (1) 동료평가 과제에 대해 동료들끼리 평가하고 나면, 평가 점수가 남는다. 굉장히 주관적인 데이터이지만, 데이터를 축적한 후 정규화 시키면 꽤 현실수치에 들 어맞는다. 이 교육모델에선 객관적인 평가에 얽매이지 않는다. 주관적인 평가가 개인의 동기를 자극하고 발전을 종용한다. 평가 점수 외, 피드백도 열심히 모아서 학생들에게 보여주자. (2) 시험 우리가 아는 형태의 시험도 친다. “시험”은 “동료평가”와는 다르다. “동료평가”가 “학습활동”이라면, “시험”은 “측정활동”이다. 기준은 “재현능력”이다. 혼자 힘으로 과제 내용을 재현해 낼 수 있어야 한다. 과제와 비슷한 내용을 시험 문제로 내되 시험은 혼자서 치러야 한다. 인터넷 검색을 하거나, 타인의 코드를 참고할 수 있다. 당연히 베껴서 내는 건 안 된 다. 각 문제는 동작하는 코드를 제출해야 한다.
  • 202.
    202 우열을 가리는 게목적이 아니므로 PASS/FAIL 만 부여한다. 수학처럼 풀이과정을 보고 점수를 주지 않는다. 완결된 동작하는 프로그램이 아니라면 모두 FAIL이다. (3) 활동점수 고등학교에선 “생활기록부” 같은 걸 관리한다. 학생들이 기업 해커톤이나 사회 봉사활동 같은 걸 나갔다면, 또는 산학협력 프로그램 에 참여를 했다면 거기에 상응하는 “역량점수”를 주자. 사회적 스킨쉽 활동을 성적표에 반영하는 방식인데, 학생들이 그렇게 행동해주기를 바 라는 취지 때문에 한다. 현재의 대학교는 사회라는 바다와 기수지역26 역할을 못하고 있다. 그러다 보니 취업 초기에 적응에 실패한다. 인재 매칭의 오류 중 하나이다. 학교에 있는 동안, 가능하면 사회적 스킨쉽을 많이 쌓게 하자. (4) 자격증 “정보처리기사 자격증을 따자.” 그냥 공부하기엔 심심하니까 자격증은 꽤 괜찮은 외적 동기가 된다. 하지만, 개발자들은 “자격증”은 거의 인정하지 않는다. 시험문제가 요즘 트렌드를 반영하지 못하는 경우도 많고, 우리 회사에서 필요한 기술 이 자격증에 안 나오는 경우도 많기 때문이다. 즉, 기술변화가 빨라서 현재의 시험제도가 금방 노후화되어 버린다. 그리고, 자격증 교육이 제대로 되지 않는 이유도 있다. 즉, “SQL자격증”을 땄다고 해 26 기수지역 : 바닷물과 강물이 만나는 혼합지역, 주로 강하구에 형성된다.
  • 203.
    203 도, 실제 SQL를쓸 줄 모르는 사람이 정말 태반이다. 대부분 교실 수업을 통해 지식전달 을 받고, 암기 후 시험을 보기 때문이다. 5. 대응활동 학교가 우당탕탕 하고 뭔가 잘 안되고 있다면? 학생들이 스스로 알아서 문제를 스스로 조치하려고 할 것이다. 우수한 학생들은 통찰력을 가지고 자신의 문제점을 진단, 도움을 요청하려 한다. … 아쉽게도 이런 사람은 현실에 존재하지 않는다. 즉 스스로 알아서 문제를 조치하는 사람은 매우 드물다. 대부분 문제는 인식하지만 어떻게 해결해야 할지 몰라서 주저앉아 버린다. 가장 가장 해야 할 일은 “털어놓기”이다. 친구들에게 고민을 털어놓고 대화를 통해 자신만의 솔루션을 찾아간다. 그런데 그런 건 누가 시켜서 할 수 없고 스스로 해야 한다. 사회적 성향이 높은 친구들은 알아서 하는데, 아닌 친구들은 그렇게 하지 못한다. 이런 게 잘 되냐 안 되냐의 기준은, 학습공동체 내에 신뢰할 수 있는 친구가 있느냐 없느냐로 판가름 된다. 즉, 도와줄 사람이 주변에 없다면 학생들은 개선 노력을 포기해버 리고 만다. 이 때 교직원이 잘못 개입하면 권리와 책임 문제로 바뀐다. 그러면 교육이 망가진다. 해 볼만한 해결책은 다양한 조력자들을 주변에 배치하는 거다.
  • 204.
    204 조력자가 다양하고 많을수록이런 개선활동은 쉽게 일어난다. 다양한 극복사례를 블로그 등에 남겨 학생들 사이에 많이 회자되고 알려지게 한다. 학생들은 스스로 안전하다는 확신이 들 때 변화하기 시작한다. 생각보다 시간이 많이 걸리고 오랫동안 지켜봐 줘야 한다. 커뮤니티 내 이슈들을 교직원 개입으로 풀면, 끝도 없이 사람이 투입되어야 한다. 그래서 커뮤니티는 분위기나 문화로서 동작하지 않으면 망한다. 분위기가 자리 잡히면, 학생들은 자연스럽게 서로를 돕는다. 중요한 건 이런 분위기가 자리 잡힐 때까지 관리를 잘 해줘야 한다. 6. 기업연계활동 기존 산학연계 프로그램들이 많다. 거기에 준하여 운영을 해도 된다. 이노베이션 아카데미에서는 “기업형 PBL”이라는 이름으로 “기업취업수준의 과제”를 학습 콘텐츠로 만들어 운영을 했다. 그런데 이것만 이야기해도 복잡한 책 한권이 되니까 여기선 넘어가자.
  • 205.
    205 제8장. 정리하면서 1. 이교육모델의 장점 이 교육모델의 특징은 두 가지다. 첫째는, 교육내용과 학습방식을 디지털화시켜, 회원가입 만으로 교육을 확대 보급할 수 있다. 둘째는, 혼자 공부하면 학습속도나 이탈률이 높아지니까, 커뮤니티 학습모델을 붙여 교사나 멘토 없이도 동작할 수 있게 했다. 이 특징은 소프트웨어 개발자를 양성하는데 꽤 많은 장점들을 가진다. 먼저 학습과제만 잘 만들면 되니까, 새로운 기술교육을 보급하기 쉽다. 교사나 멘토가 없어도 되니까 교원 양성 없이 빠르게 기술교육을 보급할 수 있다.
  • 206.
    206 그러나, 한계점도 있다. 커뮤니티내 동료들 태도나 수준에 따라 배움의 질이 달라진다. 그리고 전문 멘토가 없는 만큼, 전문화된 기술지식을 익히긴 어렵다. 이런 한계점은 이렇게 커버한다. 기본 커뮤니티를 온라인으로 구성하고, 지역별 오프라인 모임을 정기적으로 유도한다. 그리고, 방학 기간 동안 타 지역에 가서 원정학습을 하는 등, 이벤트성 행사를 통해 교류를 유지한다. 한 달 정도 사귄 친밀감은 4-5개월 떨어져 있어도, 온라인에서의 친밀감이 유지된다. 학기별 교류 프로그램만 잘 유지한다면, 전국 단위로 커뮤니티가 동작하기 시작한다. 그리고 “멘토제도”는 온라인 멘토링을 도입하거나, 기업멘토 제도 등을 통해 1:n 관계 의 커버리지를 늘린다. 사실, 멘토링은 학생들이 필요할 때 1-2시간 이내로 진행되기 때문에 온라인에서 만 남의 장만 잘 만들어줘도 제대로 효과가 발휘된다. 코드리뷰나 기술멘토링 같은 경우는 튜터제도를 활용할 수도 있고, 학교의 역사가 길 어지면, 선배들의 참여로 커버할 수 있기 때문에 “멘토 제도”는 대응하기 쉬운 편이다. 비전공자가 코딩을 배우는 수준은 학생들이 학생들을 가르치는 수준에서도 커버가 가 능하기 때문에 보급이 쉬운 거지, 전문성이 깊어지면 정보부족 때문에라도 전문가의 참 여가 필수이다.
  • 207.
    207 2. 개발은 훈련모델 소프트웨어개발을, 역사, 수학처럼 지식 학문처럼 생각하는 경우가 종종 있다. 하지만, 개발은 지식학문이 아니다. 명확히 하드웨어를 대체하기 위해 탄생한 기술공학이며, 교육에 필요한 건 지식암기가 아니라 기술훈련이다. 기술훈련은 당연히 교육환경이 중요하다. 빠른 컴퓨터를 가질수록 컴파일이 더 빨라져 더 많은 디버깅을 해볼 수 있고, 다양한 기술을 구경할수록 견문이 넓어진다. 많은 사람과 대화할수록 사고의 폭이 넓어지고, 더 많이 상상할수록 새로운 걸 많이 만들어 볼 수 있다. 세상의 문제를 풀어보고자 노력하던 게 창업이 되고, 취업이 된다. 지식학습이 먼저냐, 훈련학습이 먼저냐를 따지는 건 다 부질없는 짓이다. 일단 아무거나 먼저 시작해서, 둘 다 열심히 해야 실력이 올라간다. 함께 일하는 건 더 중요하다. 함께 일할수록 더 복잡하고 더 큰 문제를 풀 수 있게 된다. 이건 절대 강의학습으로는 도달할 수 없는 영역이다. 개발자 학교를 만든다면 당연히 이래야 한다.
  • 208.
    208 3. 기업과 학교 고용노동부과정처럼 취업률 70%, 80% 같은 목표를 가지지 않는다. 명시적인 목표로 부여 받는 경우, 강제적으로 아무 곳에나 취업 시키기 때문이다. 다만, 이렇게 교육하면 80% 이상의 친구들은 대부분 취업을 하며, 20%의 친구들은 자기 적성을 찾아 새로운 길로 떠나게 된다. 하지만, 이 학교 모델은 취업과 뗄레야 뗄 수 없는 관계다. 평생교육과정이며 산업사회에서 지속적으로 성장하는 개발자가 목표이기 때문이다. 즉, 산업사회에서 증명 받지 못하면 이 교육모델은 실패다. 그래서, 학생들이 적어도 3개월 이상 기업을 체험해보고 졸업하는 게 매우 중요하다. 세상은 우당탕탕이며 그 속에서 내가 어떻게 살아야 할지를 결심해야 하기 때문이다. 이 기회는 하루 아침에 만들어지지 않는다. 학교의 협력보다는 기업들의 협력들이 절실하기 때문이다. “기업형 PBL” - 기업 내부 프로젝트를 학교 수준으로 내려 “학습 콘텐츠”로 만드는 건 꽤나 유용한 선택이었다. 학생들은 3-5개월 정도 과제를 풀어보면서 필요한 공부를 할 수 있는데, 이게 꽤나 큰 학습동기가 된다. 그리고, 기업은 우리 회사에 맞게 좀 더 준비를 한 친구를 만날 수 있기 때문에, 생각 보다 채용풀이 넓어진다. 서로 윈-윈하는 관계가 만들어지는 거다. 실제로 이렇게 학습한 친구들을 기업에 보내 보니, 3개월 정도 걸리던 적응과정이 2
  • 209.
    209 주로 줄어버렸다. 이런 기업협력모델들은 계속해서 개발될 필요가 있다. 4. 커스터마이징 이 학교 모델은 1년짜리 과정이다. 1년이라는 시간은, “컴퓨터 공학과” 수준을 완결 짓는데 걸리는 최소한의 시간이다. 찐개발자가 되려면 최소한 이 시간은 필요하다고 생각된다. 필요한 걸 이리저리 공부할 시간이 충분해야 하기 때문이다. 반면, “파이썬 기초과정”을 하거나, “R 입문과정”을 한다면 1개월로도 충분하다. 즉, 교육기간은 과제내용과 과제 사이즈, 난이도 등을 고려하여 결정하면 된다. 기간 주요 내용 공통사항 1 개월 코스 동료학습이 익숙해져 있는 경우 단순히 하드 스킬만을 학습하는 경우, “파이썬 기초과정” 수준의 내용 8 시간 x 5 일 x 4 주 = 160 시간 코스 365 일 상시 운영되는 학습커뮤니티가 존재함. (평생학습, 성인교육, 소그룹학습) 3 개월 코스 동료학습이 처음인 경우 하드 스킬 + 협력스킬까지 같이 학습하는 내용 8 시간 x 5 일 x 5 주 x 3 개월 = 600 시간 코스 6 개월 코스 동료학습이 처음인 경우 중기과정(스킬코스 3 개 이상) + 협력스킬까지 학습 8 시간 x 5 일 x 5 주 x 6 개월 = 1200 시간 코스 1 년 코스 동료학습이 처음인 경우 컴퓨터공학과 코스 + 협력스킬까지 학습 2 년 코스 동료학습이 처음인 경우 컴퓨터공학과 코스 + 협력스킬 + 기업연계코스 표 32.교육기간별 주요 교육내용(예시) 위 도표는 대략적으로 가능한 시나리오를 정리해보았다. 실제로 운영하면 다양한 변수 들이 존재하므로, 그건 교육기관이 맞춰서 운영한다.
  • 210.
    210 이제까지 이야기한 교육의동작원리를 잘 이해했다면, 교육모델을 커스터마이징 하는 건 어렵지 않을 거다. 예를 들어, 일반 대학교라면 30명 정도의 소그룹을 대상으로 새로운 훈련프로그램을 만들 수도 있다. 캡스톤 프로젝트와 다른 건, 학생들이 커뮤니티로 공부할 수 있게 상시 프로그램화 한다는 거다. 하지만, 이 모델은 커뮤니티가 없다면 동작하지 않는다. 동아리 사이즈가 작을수록 공 부가 더 힘들어진다. 커뮤니티 풀은 1,000명 이상으로 유지하자. 온라인으로 운영한다면 가능하다. 물론 처음부터 쉽지는 않다. 하지만 하나씩 하다 보면 생각보다 금방 자리잡게 된다.
  • 211.
    211 제9장. 기본 용어 1.교육기관 교육기관이란, 학교, 학원을 말한다. 엄격하게는 법에서 정의하는 걸로 구분해야 하지만, 여기에선 그냥 교육을 제공하는 곳이면 모두 교육기관이라고 생각하자. 가. 교육목표 교육목표는 학교의 존재목적이다. Why 와 What 두 가지를 정해야 한다. 생활미술을 가르칠지, 대학입시를 가르칠지 등을 정해야 한다. 교육목표는 학생들의 동질성을 부여한다. 개발자 학교라면 개발자 지망생들끼리 모이 는 거다. 커뮤니티 학습에선 동질성이 없으면, 집단의 유대감이 떨어진다. 의무교육과정이라면 두루뭉실해도 되지만, 개발자 학교라면 범위를 좁혀주는 게 좋다. 개발자 학교에 웹디자이너가 와 있다면, 교육목표를 제대로 정하지 못한 거다. 나. 교육철학27 교육철학은 교육방식과 교육내용을 선택하는 기준이 된다. 집단 내 갈등을 해결하는 판단 기준이 된다. 교육철학이 없으면 좋아 보이는 모든 걸 선택하게 된다. 모든 걸 선택한다는 건, 아무것도 선택하지 않는다는 것이다. 27 교육철학 : 김동구,1998, “교육의 철학적 기초”, 학지사
  • 212.
    212 선택과 집중을 통해교육의 방향을 결정해야 한다. 다. 교육시스템 교육시스템은 “교육제도”, 교육이 이루어지는 전체 체계를 말한다. “우리나라의 교육시스템은 OOO하다.” 이렇게 표현한다. 작게는 IT 시스템을 지칭하기도 한다. IT 시스템을 지칭하는 경우, 교육관리인 LMS28, 학사관리, 학교관리 등을 포함하고 있 다. IT 시스템은 교육기관의 업무에 따라 조금씩 다르게 생겼다. 둘 다 헷갈리게 쓰기 때문에, 문장의 맥락을 보고 판단한다. 라. 교육행정 교육행정은 교육자체를 관리하는 “교육관리”와 학교를 움직이는 “교육행정”으로 나뉜 다. 교육관리는 교수자들이 학생들을 관리하는 활동이다. 수업일정을 관리하고, 성적표를 관리하는 등의 일을 말한다. 집단학습모델에선 교수자가 없기 때문에 이와 같은 행위는 일어나지 않지만, 그에 해당하는 일들을 해야 한다. 반면 교육행정은, 학교 비품을 사고, 시설을 관리하고, 등록금을 받는 등의 일을 말한 다. 급식회사를 선정하거나, 통학버스 같은 걸 운영하는 것도 포함된다. 28 Learning management system
  • 213.
    213 2. 구성요소 가. 교육,학습, 훈련 일반인들은 혼재해서 사용한다. 교육설계를 할 땐 명확히 분리해서 이해하자. 교육(Education) : 가르치고 배우는 활동을 통칭해서 말한다. 교육시스템, 교육제도, 교육과정 등으로 말한다. 학습(Learning) : 배움활동. 수용자 관점의 용어다. 학생이 배우는 활동을 말한다. 학 습활동, 학습효과 등으로 사용한다. 훈련(Training) : 운동이나 기술을 배울 때 쓴다. 학습이 지식을 습득하는 거라면, 훈 련은 몸으로 습득하는거다. 나. 교육의 3요소 교육의 기본은 지식이 아는 사람에게서 모르는 사람으로 흐른다는 관점으로 시작한다. 그래서 교육자(가르치는 사람), 학생(배우는 사람), 교육내용(가르치는 내용), 이 세가지를 “교육”을 구성하는 3요소라고 한다. 다. 학생, 학습자 일반적으로 혼용해서 쓰긴 하지만, 학문적으로는 구분해서 사용한다. 학생(Student)은 교사(Teacher)의 반대개념으로 사용한다. 좀 더 큰 개념이다. 학습자(Learner)는 교사의 유무에 관계없이 사용된다. 운동, 요리, 운전 같은 분야에서 주로 등장한다. 경험 만으로도 실무가 가능하고, 독학으로 익히는 경우도 많기 때문이다. 현대교육은 지식정보가 일반화되면서 “학습자” 중심의 교육법이 조명 되고 있다.
  • 214.
    214 라. 교육과정 일반적으로는 교육코스,커리큘럼을 말한다. 교육 목적에 맞춰 과목별, 활동계획 등을 코스 형태로 배치한 것이다. 학습과정이라는 말은 잘 쓰지 않는다. 교육과정이라는 것 자체가, 공급자의 의도가 포 함되어 있기 때문이다. 교육이 진행되는 과정, 즉 “프로세스”로 해석할 수도 있다. 그래서 일부러 “커리큘럼”이라고 영어를 쓰는 경향도 있다. 마. 교재 가르치는 재료. 배워야 하는 내용을 분해하여 책으로 정리한 것이다. 지식을 체계화하여 1장, 2장으로 구분되어 있다. 배우기 시작할 때 “정보처리기사” 수준의 책은 하나 가지고 있는 게 좋다. 이유는 지식의 경계를 식별할 수 있기 때문이다. 네트워크 이론을 타고 들어가다 보면 OS를 만나는데, 그러다 보면 하드웨어까지 알게 되고, 하드웨어를 파다 보면 다양한 이론들을 만나게 되는데, 이 과정이 거대하고 길다. AI 엔진 같은 걸 만든다면 반드시 필요한 과정이지만, 초보자 교육에선 너무 번질 수 있다. 적절한 수준에서 그치고 다음 학습으로 옮겨갈 수 있도록 도와준다. 교재는 전문용어에 익숙해질 수 있도록 해준다. 그 용어에 대한 최신 정보는 인터넷 에 있다. 하지만, 어떤 스키마 속에서 그 단어가 존재하는지는 교재가 있어야 알 수 있다. 바. 교사, 튜터, 멘토, 교수 일반적으로는 두루뭉실하게 쓰지만, 학문적으로는 구분해서 쓴다. 전체적으로 “가르침” 행위에 대한 다양한 유형을 구분하고자 쓴다.
  • 215.
    215 이 유형이 구분되는이유는 “가르치는 내용”이 다르기 때문이다. 교수(professor) : 대학에서 “수업”을 진행하는 사람으로, 자기 학문에 대해 전문역량 과 연구역량을 보유하고 있다 교사(Teacher) : 초.중.고등학교에서 “수업”을 진행하는 사람이다. 전통적으로 교육계획, 교육진행, 교육평가, 학습지도까지 모든 걸 통제하고 관리한다. 지도교사(Tutor) : 가정교사, 과외선생님을 튜터라고 부른다. “지도한다.”는 관점이 강하 다. 교육설계보다 가르치는 활동, 학습지도에 중점을 둔다. 조교(Assistant Teacher) : 수업시간에 교수를 보조하는 사람이다. 교수보조자일뿐 교 육의 주도권은 없다. 촉진자(Facilitator) : 교육지도자 없이 진행되는 교육프로그램을 진행하는 담당하는 살 마. “리더쉽 캠프” 같은 데서 교육진행을 담당하는 사람이라고 보면 된다. 교육설계는 교 수진이 하지만, 교육진행과 평가, 학습지도 등은 촉진자가 한다. 강사(Instructor) : 교사가 이론수업이라면, 강사는 훈련수업을 한다. 어떻게 하는지 행 동시범을 보여준다. 코치(Coach) : 운동 프로그램 등에서 “훈련지도”에 한정된 역할을 한다. 멘토(Mentor) : 경험이 많은 사람이 적은 사람에게 조언을 해주는 경우. 전문성을 강 화시키기 위해 도입된다. 3. 교육방식 교육방식은 “교육현상”이 일어나는 모든 방식을 통칭해서 말한다. 스스로 학습, 강의 교육, 실습교육, 훈련학습 등등으로 표현할 수 있다. 학습방식은 “배움, 습득현상”이 일어난 방식을 통칭해서 말한다. 교육이 전체 관점이 라면, 학습은 수용자, 즉 학생 중심이다.
  • 216.
    216 가. 교육이론 교육이 어떻게일어나는지를 정리한 이론이다. 1대1로 가르칠 때는 중요하지 않지만, 학교나 학원을 만들 때는 중요하다. 지속적이면 서 항상성이 있게 교육이 유지되어야 하기 때문이다. 철학, 심리학, 사회이론 등과 접목되어서 연구된다. 전통적으로는 아이들을 어떻게 가르칠 것인가에 초점이 맞추어져 있었는데, 18세기 이후 교수법과 성인학습법이 포함되었다. 20세기 들어 공교육이 자리잡으면서 교육법, 평 가체계 등도 함께 연구되기 시작했다. 나. 학습 피라미드 그림 26. 평균기억률 실험(베델, 메인) 1960대 초, 미국 “국립훈련연구소”에서 발표된 실험자료다. 학생들에게 뭔가를 가르친 후, 위와 같은 행위를 하게 하고 2주 후 얼마나 기억하는 지를 테스트했다. 단순히 시청각으로 받아들이는 경우를 “수동적 학습방식” Passive learning이라고 하 고, 행동을 통해 받아들이는 경우를 “능동형 학습방식” Active learning이라고 한다. 즉, 학생들은 서로를 가르쳐줄 때 자기 지식도 더 체계화된다는 걸 발견했다.
  • 217.
    217 “해봄으로써 배운다. Learningby doing”라고 표현하며, 경험중심의 교육이론에 토대 가 되었다. 이 때 타인을 가르치는 행위에는 잘못된 정보가 포함될 수 있다. 하지만, 1차, 2차 반 복에 의해 자연스레 교정이 된다. 즉, 낮아지는 정확성과 신뢰성은 다른 교육도구로 커버한다. 다. 교육설계 학습자가 어떤 경험, 어떤 지식을 습득하게 할 목적으로, 교육목표, 교육방식, 평가방 식 등을 선택하고 배치하는 일을 말한다. 교육기획, 교육설계, 교수설계 등이 혼용되어 사용되지만, 엄밀하게는 다르다. 교육기획은 상위 전략과 세부 실행계획 등을 수립하는 활동이다. 교육설계는 교육을 구체적인 교육방식을 디자인하는 활동이다. 교수설계는 교사가 가르치는 방식을 디자인하는 활동이다. 교육설계보다는 좀 더 작은 개념이다. 현장에서는 대충 비슷하게 사용되니까 찰떡같이 알아들으면 된다. 라. 교수학습법 “교수법”은 가르치는 방법을 말한다. 강의, 문답, 시범, 토의, 협력학습 등 교수가 학생 들을 가르치기 위해 쓰는 모든 교육방식을 말한다. “학습법”은 배우고 익히는 방법이다. 수용자를 중심으로 한다. 습관화, 각인, 대화학습 등이 있다. 독학에 쓰이는 방법도 다수 포함된다. 두 개념은 반대관계에 있지 않다. 그래서 합쳐서 말하는 경우가 많다.
  • 218.
    218 마. 스캐폴딩(조력활동) 비고츠키는 사람의인지발달과정이 “혼자서 공부할 수 있는 영역”을 넘어서면 “도움을 받아야만 알 수 있는 영역”에 다다른다고 분석했다. 이 영역을 “근접발달영역 zone of proximal development”이라고 하는데, 호기심은 있으나 경험이 없는 단계를 말한다. 대부분 “뭔가 벽에 막혀 있다”라고 표현하는데, 이 벽을 깨고 나올 수 있게 도와주는 활동을 스캐폴딩(조력활동)이라고 한다. 대부분 교수자나 동료들이 한다. 끝. 그림 27. 스캐폴딩 활동
  • 219.
    219 표목차 표 1. 현재교육구조의 문제점........................................................................................................................... 12 표 2. 교육과 훈련의 차이점 (R.S.Peter)........................................................................................................ 16 표 3. 2018년 시작된 소프트웨어 교육과정................................................................................................... 19 표 4. 교육기관별 교육방식의 차이................................................................................................................... 21 표 5. “42교육”에 내포된 의미............................................................................................................................ 23 표 6. 경험학습 vs 전통적학습의 차이점, (David Kolb, 1984)............................................................... 32 표 7. 동료학습의 유형(클라크 길버트 외, 2007, 브링햄영 대학).......................................................... 36 표 8. 국내, 해외 개발자 커뮤니티 목록......................................................................................................... 37 표 9. 개발자 커뮤니티의 장점(Koding & Kahawa Developers Community, 2022)................... 38 표 10. 구조주의, 구성주의 교육철학의 차이 ................................................................................................ 59 표 11.일반적인 대학교의 전산시스템 .............................................................................................................. 86 표 12 새로운 교육모델의 개요 .....................................................................................................................100 표 13 피아제, 비고츠키의 인지발달이론......................................................................................................115 표 14. 웹,앱 개발자가 기술을 습득하는 방식............................................................................................119 표 15. 프로젝트 기반 학습, 문제 기반 학습에 대한 차이점 ................................................................122 표 16. 프로젝트형 학습 콘텐츠 제작 요령 .................................................................................................123 표 17. 2021년 네이버 프론트엔드 개발자 채용공고 ...............................................................................124 표 18. 단위 프로젝트가 가져야할 특징........................................................................................................129 표 19. 학습 콘텐츠의 단계별 구조................................................................................................................130 표 20. 평가지시서 설계시 포함해야 될 내용들.........................................................................................131 표 21. 평가 중에 일어나는 현상과 대응방안...........................................................................................133
  • 220.
    220 표 22. 새로운교육모델의 전체 구조............................................................................................................139 표 23. 청소년 교육과 성인교육의 차이점....................................................................................................140 표 24. 파이썬 웹 개발과정 경험기획............................................................................................................147 표 25. 그룹학습의 특징 (엘런대학교) ...........................................................................................................149 표 26 .개발자 커뮤니티와 학습동아리의 차이점........................................................................................156 표 27. 학습 커뮤니티와 일반 커뮤니티의 차이점(바바라 레이 스미스, 에버그린 주립대).........159 표 28. 학습 커뮤니티의 대표적인 모델 5가지...........................................................................................160 표 29. 집단규모별 특징과 지원인력 구성....................................................................................................167 표 30. 학습공동체 학교의 운영방식..............................................................................................................187 표 31. 교육 지표의 분류...................................................................................................................................196 표 32.교육기간별 주요 교육내용(예시)..........................................................................................................209
  • 221.
    221 그림목차 그림 1. 4차산업혁명 시대(출처:삼성SDI).........................................................................................................9 그림 2. 우리나라의 교육제도(2022.05, KARIC)........................................................................................... 18 그림 3. 대학교에서 접할 수 있는 코딩교육들 ............................................................................................. 20 그림 4. 학습곡선(Learning curve)................................................................................................................... 25 그림 5. 우당탕탕 학습곡선(Bumpy learning curve)................................................................................. 26 그림 6. 개발자 성장모형...................................................................................................................................... 27 그림 7. 콜브박사의 경험적 학습모델............................................................................................................... 31 그림 8 Mastery learning vs Spiral Learning(aop.com)........................................................................ 33 그림 9. Spiral learning model (의학수업 모형, 소프트웨어 교육모형).............................................. 34 그림 10. 한국의 학제 대비 프랑스 학제(2009, 교육과정.교육평가 국제동향연구) ......................... 49 그림 11. 42 교육모델의 특징 ............................................................................................................................ 51 그림 12. 42의 교육환경....................................................................................................................................... 56 그림 13. 42의 커뮤니티 학습방식.................................................................................................................... 58 그림 14. 42 커리큘럼 (출처: 42 Heilbronn)................................................................................................ 61 그림 15. 42 주요 역량 스킬(출처 : 42 Heilbronn)................................................................................... 68 그림 16 42 교육과정 (출처 : 42 쿠알라룸프).............................................................................................. 71 그림 17. 42과제에 게임요소 추가 제안(로리메자르, 42교육팀, 2015)................................................. 78 그림 18. 프로젝트형 학습시스템 개요(출처 : 엘리스르보, 파리 장뮬랭대학, 2016)....................... 87 그림 19. “프로젝트”와 “프로젝트 기반 학습법”의 차이점 (magnifylearning.org).......................121 그림 20. 매슬로의 욕구5단계 이론................................................................................................................141 그림 21. 내적동기 자극방법.............................................................................................................................142 그림 22. 조나센의 구성주의 학습환경 설계 모형.....................................................................................143 그림 23. 학습 커뮤니티의 다양한 정의 (Richard E.West & Gregory S. Wallliams, “학습, 교육
  • 222.
    222 설계기술의 기초”, “커뮤니티를어떻게 정의할 것인가?”)..............................................................161 그림 24. 고용노동부 NCS 역량지표(국가직무능력표준 홈페이지) ......................................................197 그림 25. 기술 프레임워크(기술 숙달도, EITBOK) .....................................................................................198 그림 26. 평균기억률 실험(베델, 메인) ..........................................................................................................216 그림 27. 스캐폴딩 활동 .....................................................................................................................................218
  • 223.
    223 참고 문헌 [1] 윤일경,“비교교육행정,” 2011. [온라인]. Available: https://blog.naver.com/bluett2/150104183329. [2] 42, “What is 42?,” 2013. [온라인]. Available: https://42.fr/en/what-is-42/42-program-explained/. [3] liverpool.ac.uk, “Learning community,” Liverpool university, [온라인]. Available: https://www.liverpool.ac.uk/centre-for-innovation-in-education/resources/all-resources/learning- communities.html. [4] “비고츠키 사회적 구성주의 학습이론,” [온라인]. Available: https://bdgnext.tistory.com/537. [5] L. Mezard, “Ecole 42 Gamification(Case study),” 5 5 2021. [온라인]. Available: https://rbean.io/fr/blog/gamification-ecole-42-etude-de-cas. [6] 홍효정, “학생중심의 프로젝트 기반학습,” [온라인]. Available: https://mirae.dankook.ac.kr/widget/web/mirae/- 14?p_p_id=Bbs_WAR_bbsportlet&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_cachea bility=cacheLevelPage&_Bbs_WAR_bbsportlet_extFileId=109677. [7] 정효정, “교육공학의 이론적 기초(교육방법 및 교육공학)”. [8] 정효정, “다양한 교수학습 방법의 탐색(교육방법 및 교육공학)”. [9] 김. 김성식, “집단지성을 활용한 문제중심학습 기반,” 2011. [10] S. 재단, “디지털 글로벌 스킬, 역량 프레임워크,” SFIA, [온라인]. Available: https://www.sfia- online.org/en. [11] 추병완(춘천대), “구성주의의 교육적 함의,” 제 3, 번호: 1, 2000. [12] 홍. 김성봉, “공학설계수업에서의 PBL 모형 개발 및 효과분석,” %1 한국산학기술학회논문지, 2010. [13] I. Hames, “Peer review golden rules and good practice,” %1 science editing, 2016. [14] S. Joseph, “Programmer Competency Matrix,” [온라인]. Available: https://sijinjoseph.com/programmer-competency-matrix/.
  • 224.
    224 글쓴이 이름 : 김수보(링크드인 프로필), kimsubo@gmail.com 간략 소개 - 25년차 개발자, 해결사. 아직도 현역임. - “좋은 후배가 많아져야 선배들도 좋아진다” 주요 이력 - 이노베이션 아카데미 상근직 멘토 - 이브레인 아카데미 연구소장 - 알앤비 소프트웨어 빅데이터연구소 소장 - 케이티하이텔㈜ 개발실 팀장 - ㈜지어소프트 데이터플랫폼팀 팀장 - 삼성 SDS 공공개발팀 입사 주요 학력 : 고려대학교 통계학 학사(96졸) 블로그 - IT의 중심에서 : https://subokim.wordpress.com/ - 스타트업 : https://greypencil.tistory.com/