※ 아래 글은 정보통신기술진흥센터(IITP)가 발간하는 주간기술동향 1816호(2017. 9. 29. 발행)에 기고한 원고입니다.


▶ IITP에서 PDF 포맷으로 퍼블리싱한 파일을 첨부합니다. 가독성이 좋으니 참고하시기 바랍니다.

SW 개발 생산성이 기업 경쟁력 - 지속적 통합 도구 젠킨스 인기.pdf



ž 소프트웨어 개발 시 CI(지속적인 통합)를 제공하는 OSS(오픈소스 소프트웨어) 젠킨스(Jenkins)의 인기가 치솟고 있음


Ø 소프트웨어 공학에서 지속적 통합(continuous integration, CI)은 지속적으로 품질 관리를 적용하는 프로세스를 실행하는 것으로 소프트웨어의 질적 향상과 소프트웨어를 배포하는데 걸리는 시간을 줄이는데 초점을 맞추고 있음


Ø 일반적으로 개발자들이 기존 코드의 수정 작업을 시작할 때 현재 코드 베이스의 복사본을 받아서 작업을 하게 되는데, 만일 다른 개발자들이 자신들이 변경한 코드를 소스 코드 저장소에 제출하면, 코드 베이스로부터 받아온 복사본은 저장소의 코드와 점차 달라지게 됨


Ø 이런 상황이 반복되면 어느 시점에는 저장소가 개발자들의 베이스 라인과는 너무 많이 달라지게 되는 소위 통합의 지옥이라 불리는 상황에 빠지게 됨


Ø 통합의 지옥에 빠지게 되면 작업하는 시간보다 작업 내용을 통합하는데 걸리는 시간이 더 걸리게 되어, 최악의 경우 개발자들이 자신들의 변경 내용들을 취소하고 작업들을 완전히 처음부터 다시 하는 것이 나을 수도 있는 상황이 되어 버림


Ø 2011클라우드비즈(CloudBees)가 발표한 젠킨스(Jenkins)는 소프트웨어 개발 시 통합의 지옥 문제를 해결하기 위한 지속적 통합(CI) 서비스를 제공하는 도구의 하나로, 소스 코드의 컴파일과 빌드, 테스트 및 품질 검사, 서버에 배포 등을 자동화 해 줌


<자료> Jenkins


[그림 1] 지속적 통합 도구 젠킨스의 마스코트


Ø 젠킨스는 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 저장소에 빈번히 업로드 함으로써 지속적 통합이 가능하도록 해 주는데, MIT 라이선스를 따르는 오픈소스 소프트웨어임


Ø 젠킨스는 개발자들에게 지루한 작업을 대신 해주는 집사라는 이미지로 자리매김하고 있기 때문에, 마스코트 캐릭터는 영화에 나오는 집사처럼 나비 넥타이를 하고 있음


Ø 2011년 발표 이래 젠킨스는 꾸준히 개선되며 개발자들의 호응을 얻었고, 클라우드비즈가 지난 8월말에 개최한 젠킨스 월드 2017 컨퍼런스에는 800 명의 개발자가 참여하는 등 젠킨스의 인기가 심상치 않음을 보여 주었음


ž 클라우드비즈는 젠킨스의 인기에 대해 현재 메인 스트림 서비스 기업들이 소프트웨어 개발로 진검승부 하는 가운데 그 생산성 향상이 곧 사업의 관건이 됐기 때문으로 분석


Ø 글로벌 대형 서비스 기업들이 젠킨스를 대규모로 도입, 소프트웨어 개발의 자동화에 전사적으로 임하게 된 것은 서비스 경쟁력이 지속적 통합에 달려 있다고 보았기 때문이라는 것


Ø 젠킨스를 통해 소프트웨어 개발 자동화를 전사적으로 추진할 수 있게 된 것은 작년에 선보인 젠킨스 2.0에서 파이프 라인이라는 구조를 탑재했기 때문인데, 이는 젠킨스에 실행시키는 작업과 순서를 코드(프로그래밍)에 의해 기술하는 것임


Ø 젠킨스 1.0까지는 사용자가 젠킨스에 실행시키는 작업을 GUI로 설정했으나, 그 내용은 젠킨스의 독자 형식 설정 파일로 저장되므로 사용자가 나중에 설정 내용이 올바로 되었는지 검증하거나 설정 내용의 변경 이력을 추적하기가 어려웠음


Ø 이에 비해 젠킨스 2.0에서는 설정 내용을 코드로 관리 할 수 있게 되었으며, 깃허브(GitHub)와 같은 소스 코드 관리 도구를 이용하여 변경 이력을 관리하고 코드의 정확성을 다른 사용자가 체크하는 코드 리뷰를 실시할 수 있게 되었음


Ø 클라우드비즈에 따르면 파이프 라인을 도입하여 보다 복잡한 작업의 자동화를 젠킨스에서 실현할 수 있게 되었을 뿐만 아니라, 젠킨스에서 자동화된 작업의 재사용이 가능하게 되었음


Ø 과거 젠킨스를 이용한 소프트웨어 개발의 자동화는 개발자가 개인적으로 나선 것이며, 자동화 메커니즘을 다른 프로젝트에 적용하기가 어려웠음


Ø 그러나 젠킨스 2.0에서는 개발자가 만든 자동화 메커니즘이 코드화 되어 그 코드를 라이브러리로 전사 공유할 수 있게 되었으며, 따라서 젠킨스의 전사적 도입이 용이하게 된 것임


ž 젠킨스를 전사 차원에서 도입하고 있는 대표 사례는 결제 서비스 기업인 페이팔(PayPal)4천 명의 개발자가 이용하는 젠킨스 도입을 추진하고 있음


Ø 페이팔은 현재 개발자 익스피리언스 팀을 마련해 젠킨스 도입으로 4천명 이상의 사내 소프트웨어 개발자들의 개발 경험을 전사적으로 통일하고 개선해 나가고 있음


Ø 페이팔이 독자적으로 개발해 운영 중인 결제 시스템은 규모가 방대하고 게다가 수정도 빈번한데, 35,000 대의 가상 머신에서 돌아가는 이 시스템은 2,600개 이상의 서비스로 구성되어 소스 코드의 행수가 7천만 라인을 넘으며, 이중 매년 1천만 라인의 소스 코드가 수정되고 있음


Ø 이러한 거대 시스템 업데이트 작업을 젠킨스로 자동화하고 있는데, 페이팔이 이용 중인 젠킨스의 인스턴스는 5천 개를 넘고, 하루에 32,000 번의 빌드 작업과 1,000 번의 배포 작업을 실시하며, 테스트 회수 만도 하루 100만 회에 달함


Ø 페이팔 개발자 익스피리언스 팀의 책임자는 젠킨스가 소프트웨어 개발자에게 자유뿐만 아니라 소프트웨어 개발 프로세스의 시각화를 안겨 주었다고 말하는데, 소스 코드의 빌드, 테스트, 배포를 젠킨스가 수행하며 그 로그가 기록되기 때문


ž 클라우드비즈는 젠킨스 2.0의 파이프 라인 실행 상황을 시각화 해주는 블루 오션(Blue Ocean)이라는 도구도 OSS로 함께 공개하고 있음


Ø 젠킨스 사용자는 블루 오션 도구를 이용해 빌드 작업이 다양한 환경 별로 준비되어 있는 테스트 서버에 배포가 되었는지 여부를 GUI에서 확인할 수 있음


<자료> Jenkins


[그림 2] 젠킨스 프로세스 관리 툴 블루 오션


Ø 블루 오션은 사용자가 GUI에서 설정한 내용을 파이프 라인의 코드로 저장하는 기능도 갖추고 있는데, 젠킨스에 익숙하지 않은 초보 사용자도 파이프 라인의 코드를 작성할 수 있게 하였음


Ø 젠킨스를 전사적으로 확장하면 다양한 스킬 레벨의 사용자가 이용하게 되는데, 누구나 젠킨스를 활용할 수 있게 해주는 것이 바로 이 블루 오션의 역할임


Ø OSS로 공개된 젠킨스의 수익모델은 리눅스와 마찬가지로 교육 및 지원 서비스에 있는데, 이번 젠킨스 월드 2017 컨퍼런스에서 클라우드비즈는 젠킨스의 로그를 분석해 사용자 기업의 개발 프로세스의 문제점을 찾아 개선 사항을 제안하는 CloudBees DevOptics를 새로 발표하였음


ž 젠킨스의 도입은 주로 미국과 유럽 기업을 중심으로 활발히 진행 중이며, 소프트웨어 개발을 외부에 아웃소싱 하는 경향이 강한 아시아계 기업들은 상대적으로 저조하다고 함


Ø 클라우드비즈에 따르면 젠킨스의 도입은 페이팔 같은 미국 기업뿐 아니라 독일의 보쉬(Bosch) BMW 등 유럽 기업에서 대규모 도입이 추진되고 있음


Ø 반면 미국이나 유럽에 비해 소프트웨어 개발을 아웃소싱 하는 경향이 강한 아시아계 기업들은 소프트웨어 개발 프로세스를 자사에서 직접 관리하지 못하는 상황이기 때문에 젠킨스를 전사적으로 도입해 개발 프로세스를 개선하기 어려운 면이 있음


Ø 게다가 소프트웨어 개발을 위탁하는 시스템 통합(SI) 업체들 역시 사내 소프트웨어 개발 환경과 개발 프로세스가 고객 기업마다 제각각이기 때문에 SI 업체 내부의 독자적인 개발 프로세스를 표준화하기도 어려움


Ø 소프트웨어 개발의 생산성 향상이 곧 서비스 기업의 경쟁력으로 직결되는 상황에서, 소프트웨어를 자체 개발하는 미국과 유럽의 기업들이 젠킨스 도입을 위해 전사 차원의 노력을 기울이는 것에 비해 아시아계 기업들의 경쟁력이 더욱 뒤쳐질 가능성이 제기되는 것은 이런 이유 때문임


Ø 한국의 기업들도 자체 소프트웨어 개발 생산성이 기업의 경쟁력이라는 인식 하에, 현행 소프트웨어 개발 시스템을 점검하고 경쟁력 강화를 위한 시스템 개편 필요성을 점검할 필요가 있음

※ 다음 글은 정보통신기술진흥센터(IITP)가 발간하는 주간기술동향 1765호(2016. 9. 28 발행)에 기고한 원고입니다. 


▶ IITP에서 PDF 포맷으로 퍼블리싱한 파일을 첨부합니다. 가독성이 좋으니 참고하시기 바랍니다.

스크래치 3.0 창의와 협업.pdf



[ 요 약 ]


앱 이코노미와 로봇 시대의 도래메이커 운동의 확산으로 인해 누구나 프로그래밍을 배워야 한다는 모토가 제시되는 가운데어린이들을 위한 코딩 교육용 프로그래밍 언어 스크래치(Scratch)를 배포하고 있는 MIT 미디어 랩은 최근 3.0 버전에 대한 개발 현황과 향후 계획을 공개하였음구글과 공동 개발하는 스크래치 3.0은 누구나 원하는 것을 스스로 만들어 표현할 수 있는 수단을 제공하고다른 사람과 협업을 통해 학습하게 한다는 개발 목표를 보다 분명히 구현하려 하고 있음



[ 본 문 ]


◈ 지난 8월 개최된 교육용 프로그래밍 언어 스크래치(Scratch) 관련 행사인 스크래치 컨퍼런스 2016에서는 차기 버전인 스크래치 3.0에 관한 내용이 공개되었음


스크래치는 MIT 미디어 랩에서 어린 아이들을 비롯해 누구나 쉽게 프로그램을 만들 수 있도록 돕기 위해 개발한 교육용 프로그래밍 언어이며, 컴퓨터 교육 관련 연구를 해 온 미첼 레스닉(Mitchel Resnick) 교수가 개발팀을 이끌고 있음



<자료> MIT Scratch.


[그림 1] 스크래치 3.0의 주요 개발 컨셉



• 레스닉 교수는 개발팀 내부용 시제품은 올해 안에 내놓을 예정이며, 2017년 말까지 공개 테스트용 알파 버전을 내놓고 싶다는 계획을 밝힘


2016 8월말 현재 스크래치의 등록 사용자 수는 1,300만 명 이상이며, 커뮤니티에 등록된 프로젝트 수는 1,660만 개 이상이므로, 이들 자산을 승계할 수 있도록 스크래치 3.0을 개발하고 있다고 함


현재 스크래치는 1.4 버전과 2.0 버전이 함께 사용되고 있는데, 1.4에서 2.0으로 원활하게 전환할 수 있었던 것처럼, 2.03.0으로 이행에도 무리가 없을 것으로 보임


◈ 개발팀은 구글과 공동으로 블록 프로그래밍 환경인 스크래치 블록스(Scratch Blocks)를 개발하고 있으며, 향후 공개하여 개발팀 이외 누구라도 사용할 수 있도록 할 방침


개발팀은 구글과 공동으로 스크래치 블록스를 개발한 후 이를 토대로 스크래치 3.0을 개발 중인데, 구글과 공동 작업한 이유는 구글의 블록 프로그래밍 환경인 구글 블로클리(Google Blockly)를 기반으로 하고 있기 때문


구글 블로클리를 기반으로 하지만 어디까지나 스크립트 편집 화면의 기초 기술만 채택하는 것이며, 그 이외의 부분은 스크래치 3.0의 독자적인 기술이 사용되고 있음



<자료> The Open Sourcery


[그림 2] 스크래치 2.0(위)과 구글 블로클리(아래)의 블록 프로그래밍 환경


• 향후 스크래치 블록스 공개 방침에 대해 개발팀 내부에서 스크래치 이외의 블록 프로그래밍 도구가 스크래치와 똑같은 편집 화면을 갖게 되는 것을 우려하는 의견도 있었으나, 다른 곳에서 더 좋은 도구를 만드는 것도 좋다는 생각에 공개를 결정했다고 함


또한 스크래치라는 프로그래밍 환경은 단지 인터페이스와 조작성에 특징이 있는 것은 아니라 커뮤니티 환경을 포함하고 있다는 점이 다른 도구와 다른 차별성이므로, 겉모습과 조작성이 유사하더라도 문제가 되지 않을 것으로 판단했다고 함


마치 C 언어와 비슷한 문법이 다른 프로그래밍 언어로 사용되고 있는 것처럼, 공개하고 나면 뜻밖의 사용 방법이 생길 위험이 있지만, 그럼에도 불구하고 공개에 의해 누구나 사용 가능한 도구들이 보다 확산될 경우의 전지구적 이익을 기대하는 것임


개발팀은 현재 레고 측에 레고 로봇 교재에서 스크래치 블록스를 채택하도록 촉구하고 있는데, 아직 레고에서 결정한 것은 아니지만 실현되기를 적극 희망하고 있음


아이들이 스크래치를 통해 익숙해진 인터페이스와 조작성을 사용하여 레고 로보틱스 교재를 조작할 수 있다면, 레고 외에 다른 많은 활용 처에서 스크래치의 블록 프로그래밍 환경 채택을 적극 고려하게 될 것이기 때문


◈ 인터페이스와 조작성의 확산 외에, 컨퍼런스에서 공개된 스크래치의 또 다른 목표는 모바일 장치 지원 및 유연한 소프트웨어 구조를 실현하는 것임


사용자 입장에서 유연한 소프트웨어 구조의 실현, 즉 모듈화는 그다지 중요하지 않을 수 있으나, 익숙한 모바일 기기에서 스크래치를 사용할 수 있게 된다는 것은 매우 중요


• 스크래치 3.0은 스마트폰의 작은 터치 패널 디스플레이에서도 사용할 수 있도록 현재 사용되는 수직 문법(블록을 세로로 연결하는 문법외에 스크래치 주니어(Scratch Jr)와 위두(WeDo)에서 사용 중인 수평 문법(블록을 옆으로 잇는 문법지원도 추가할 예정


 그러나 두 문법에서 똑같은 작업을 하기는 어려울 것이라고 하며아직 블록 등을 디자인 하고 있는 단계이므로 결과는 유동적이지만아무래도 수직 쪽이 수평보다 더 많이 사용될 것으로 예상한다고 함




<자료> The SK Adventure


[그림 3] 스크래치 주니어의 수평 문법



아직 확실한 것은 아니지만 프로젝트 형식(파일 형식) 2 종류가 될 가능성도 있는데, 단 어떤 경우든 현재의 스크래치 자산을 활용할 수 있는 포맷이 될 것이라는 설명


◈ 한편 이번 컨퍼런스에서 미첼 레스닉 교수는 스크래치를 개발한 목적을 상기시키며, 특히 아이들의 창조성과 협업 능력 증진에 기여하기를 바란다는 점을 강조


컴퓨터 교육 전문가로서 레스닉의 목표는 아이들이 창조적으로 생각하는 사람이 되도록 하는 것인데, 이를 위해 아이들이 컴퓨터를 사용하여 스스로 원하는 것을 만드는 체험을 하는 것이 중요하다는 생각을 가지고 있음


스크래치에서 중요시 하는 것은 아이들이 관심을 갖도록 유도하는 것인데, 아이들은 몸을 움직여 노는 것에 관심을 가지고 있기 때문에 스크래치 역시 몸을 움직여 만드는 것에 초점을 두고 있음


이는 레고가 마인드 스톰 시리즈를 판매하며 NXT-G라는 어린이용 그래픽 프로그래밍 도구를 제공하는 것과 같은 교육적 맥락임


◈ 레스닉은 단순히 사용한다는 관점이 아니라 만든다는 관점에서 컴퓨터에 접근하기를 바라며, 이를 통해 아이들이 장차 사회에 공헌하며 협업의 소양을 키우기를 기대하고 있음



[동영상] 스크래치의 아버지, 미첼 레스닉


만든다는 관점을 중요시하는 이유는, 아이들이 장차 사회에 무언가 가치 기여를 하기 위해서는 스스로의 목소리를 가지지 않으면 안되며, 자신의 생각을 유무형의 무언가로 만들어 표현할 수 있어야 하기 때문


글에 비유하자면 읽기뿐만 아니라 쓸 수도 있어야 자신의 생각을 드러낼 수 있듯이, 프로그램도 잘 사용만 하는 데 그치지 않고 직접 작성할 수 있으면 자신의 아이디어를 구체화하여 전달할 수 있게 된다는 것


또한 최고의 학습 경험은 다른 사람과 관계를 맺고 새로운 아이디어를 공유하는 사회적 학습(social learning)인데, 이를 위해 스크래치 2.0 버전을 공유에 적합하도록 웹 브라우저에서 작동하게 만들었다고 함


자신이 직접 만들고 난 다음에는 다른 사람이 사용해 보게 한 후 피드백을 받아 계속해서 개선해 나가는 경험이 중요하므로, 2.0 버전에는 클라우드 변수라는 기능을 넣어 다른 프로젝트와 데이터를 공유할 수 있도록 하였음


◈ 협업 능력 증진의 관점에서 레스닉 교수는 스크래치의 다국적 언어 지원을 중요하게 생각하고 있으며, 아이들 스스로 국경을 넘어 문제를 해결해 나가도록 돕는데 중점을 두고 있음


스크래치는 처음부터 전세계 언어 대응을 염두에 두고 다국어 지원이 쉽도록 설계되었으며, 현재 스크래치는 각국 자원봉사자들의 번역 지원 덕분에 50개 언어를 지원하고 있음




<자료> MIT Scratch


[그림 4] 스크래치 웹사이트 한국어 지원


• 협업 지향성과 다국어 지원 기능은 글로벌 협업 환경을 낳고 있는데실제로 아시아의 아이들이 프로젝트를 만들고 이를 유럽의 아이들이 개선하는 일도 나타나고 있음


 협업 과정에서 커뮤니티 내에 문제가 생겨도 아이들이 직접 해결하는 것을 목표로 하고 있는데가령 비영어권 아이들이 만든 프로그램이 스크래치 공식 사이트의 주요 프로젝트로 선정되는 경우 언어 소통의 문제가 발생할 수 있음


• 실제로 비영어권 아이가 쓴 설명 글에 대해, 영어가 끔찍하다는 댓글들도 붙지만, 아시아 아이들이 영어를 모르는 것은 당연하니, 우리가 고쳐주면 된다는 의견들이 나오고, 결국 여러 사람이 함께 올바른 영어로 수정해 가며 프로젝트를 진행하는 사례들도 있음


스크래치 공식 사이트는 가급적 어른이 개입하지 않고 왜곡된 정보가 올라올 경우에만 사실 전달에 초점을 두고 개입하는데, 최종적으로는 아이들 스스로 올바른 정보를 받아 들이도록 기다린다는 철학을 견지하고 있음


◈ 레스닉 교수는 연령에 상관없이 성인들도 자신의 생각을 표현하고 공유하고 싶다면 스크래치를 배우는 의미가 있다며, 어른들이 먼저 스크래치를 경험하는 것도 좋다는 입장임


성인들의 관심사는 주로 프로그래밍 학습을 통해 새로운 일자리를 얻거나 스킬을 늘리는 것이겠지만, 그 자체로도 좋은 일이긴 하나 그런 이유에만 한정될 필요는 없다는 것


인터랙티브 카드를 만들어 누군가와 교환하고 싶다는 동기라도 좋은 것이며, 스크래치의 장점인 생각의 표현과 공유라는 가치를 활용하고 싶다면 누구나 배우는 의의가 있음


굳이 스크래치를 두고 어린이용, 성인용을 따질 필요는 없으며, 다양한 연령의 사람들이 서로 배울 수 있다는 생각, 즉 아이들이 어른들로부터 배우는 것처럼 어른도 아이에게 배울 수 있다는 열린 사고를 갖는 것이 보다 중요한 것임


밖에서 뛰어 놀지 않고 아이들이 기술 환경에 노출되는 것에 대해 눈살을 찌푸리는 어른들이 많이 있으나, 야외에서 하는 행위가 모두 좋은 일인 것이 아니듯, 컴퓨터를 끼고 살아도 좋은 점이 있다는 것이 레스닉의 생각


가상 환경에서도 동료와 부딪혀 가며 협동을 통해 프로젝트를 진행할 수 있는 것이며, 중요한 것은 기술을 어떻게 사용할 것인가에 대한 기준을 스스로 정립하는 것이기 때문


◈ 레스닉 교수는 향후 연령에 상관없이 더 많은 사람이 스크래치를 이용할 수 있는 환경이 도래하려면, 무엇보다 스크래치 교육이 보다 용이하고 즐겁게 이루어져야 한다고 보고 있음


나이에 상관없이 누구나 인터랙티브 애니메이션을 만들고 싶을 때 우선 스크래치부터 시작한다거나, 가정 내의 센서를 사용해 로봇을 움직이고 싶을 때 스크래치를 먼저 떠올리게 되는 것이 스크래치 개발팀의 목표임


이를 위해서는 스크래치 교육이 중요할 터이며, 따라서 개발팀은 교사들이 수업 시간에 스크래치를 쉽게 사용할 수 있도록 학습 자료를 제공할 계획이며, 학교 수업 방안 외에 온라인으로 수업을 구성할 수 있는 구조 등도 적극 모색하고 있음


또한 스크래치 이용자 층을 더 넓히기 위해 5세부터 사용할 수 있는 스크래치 주니어(Scratch Jr.) 프로젝트를 진행하고 있는데 2017년에 공개할 예정임


스크래치 주니어는 문자는 줄이고 아이콘을 늘리며 기능은 어린 아이들도 사용하기 쉬운 것으로 한정했는데, 특히 어린 아이들이 좋아하는 이야기를 만든다는 것에 초점을 맞추고 있음


◈ 스크래치 등을 활용한 프로그래밍 교육에 대해 일각에서는 그 효과성에 의문을 제기하는데, 이에 대해 레스닉 교수는 표현 수단의 학습이란 관점을 잊지 말아야 할 것을 강조


스크래치의 기본 철학은 아이들에게 가르치려고 들지 말아야 한다는 것인데, 이는 레스닉교수의 스승인 시모어 페퍼트(Seymour Papert) 교수가 제시한 구축주의(Constructionism), 즉 아이들이 물건을 만들면서 배운다는 아이디어에 근거함


프로그래밍을 표현 수단으로서가 아니라 컴퓨터 과학을 배우는 학문의 일환으로 파악하는 사람들은 구축주의적 프로그래밍을 배우는 것만으로는 지식과 기술이 몸에 붙지 않는다는 비판을 하기도 함


또 프로그래밍 교육의 목적을 논리적 사고력 증진이라고 할 때, 과연 프로그래밍으로 논리적 사고력이 얻어 지는지, 논리적 사고력을 익히려고 한다면 차라리 수학이나 철학을 배우면 되지 않냐는 반론을 제시하는 사람들도 있음


이에 대해 레스닉 교수는 학문적으로 배우는 것도 중요하지만 자신의 관심 사항을 표현하는 수단으로 배우는 것도 중요하며, 어느 한쪽 만 강조할 이유는 없다고 의견


또한 프로그래밍을 제대로 배운다면, 창조적 발상 능력뿐 아니라, 논리적 사고력도 익힐 수 있다고 설명하는데, 배움에 대한 의미를 부여하는 동기 부여 관점에서 프로그래밍이 도움이 되기 때문


프로그래밍 교육에 의해 환기된 학습에 대한 의욕의 향상과 학습 태도의 변화는 다른 교과에도 영향을 미치는데, 프로그래밍을 통해 학습방법을 배운 아이들이 매사에 적극적으로 임하거나 실패를 두려워하지 않는 것은 흔히 볼 수 있는 현상이라는 것


◈ 레스닉 교수가 스크래치 교육의 중요성을 강조하고 있기는 하지만, 일부 국가에서 법제화하고 있는 프로그래밍의 초등 의무교육 편입에 대해서는 유보적 입장임


프로그래밍 의무교육화 찬성 여부는 프로그램이 어떤 형태로 수업에 적용되는지에 달려 있는데, 수업에 잘 통합되는 것이라면 찬성이고, 나쁘게 통합된다면 반대라는 입장


잘 통합된다는 것의 의미에 대해 레스닉 교수는 쓰기(작문)의 학습에 비유하는데, 쓰기가 국어뿐만 아니라 다른 수업에서도 중요한 것처럼 프로그래밍도 마찬가지라는 것


비록 프로그래밍이라는 별도의 수업이 있다 해도, 다른 수업에서 프로그래밍을 살릴 수 있으면 더 좋은 학습이 된다는 것이 레스닉 교수의 생각


레스닉 교수의 생각에 대해서는, 만일 프로그래밍을 다른 수업에 잘 통합 하려고 하면 교사들의 부담이 커질 수밖에 없으며, 부담을 줄이려다 보니 결국 교사가 학생들에게 동일한 내용을 일괄적으로 가르치는 수업 형태로 되어 버릴 수밖에 없다는 반론이 있음


이런 반론에 대해 레스닉 교수는, 이 문제는 교육학의 오랜 과제이기는 하나 혁신적 발상을 통해 반드시 풀어야 할 문제이며, 자신이라면 상급생이 하급생을 가르치는 방식을 도입하거나 학교 밖에서 강사를 찾게 하겠다는 의견을 개진


또한 장기적으로는 교사가 제대로 프로그래밍을 가르칠 수 있게 하는 시스템의 구축이 중요하므로, 교사들에 대한 재교육 및 강화교육이 기본이 되어야 한다고 부연


같은 맥락에서 컴퓨터가 아이들을 가르치면 좋겠다는 의견에도 레스닉 교수는 반대하는데, 제한적 성공 즉 코딩 기술을 배우는 것이 목적이라면, 컴퓨터를 이용한 학습도 유용할 것이나, 스크래치의 목표인 새로운 표현 수단과 배움을 얻기에는 쓸모 없다는 것임


◈ 프로그래밍 교육은 반드시 필요하지만, 그렇다고 해서 교육 자체가 목적이 되어 학습의 부담이 생겨서는 안되며, 무엇보다 재미를 잃게 해서는 안 된다는 것이 레스닉 교수의 조언


일부 국가에서는 프로그래밍 교육의 의무화가 거론되고 있으며, 민간기업들도 프로그래밍 교육에 적극 참여하고 있으나, 간혹 스크래치 교육의 목표를 글로벌 ICT 인재 육성 등 편협한 범위에 한정하는 모습도 나타나고 있음


이렇게 접근하는 사람들은 필연적으로 교육을 통해 무엇을 이해했는지를 정량적으로 측정하는 방법은 있는지, 프로그래밍 교육의 평가방법이 무엇인지에 대한 문제로 옮겨가게 됨


스크래치 교육에서도 교사가 앞에 나와 아이들에게 일방적으로 지식을 가르치는 교수주의(Instructionism) 방식이 가능하지만, 만약 그렇게 된다면 정말 재미가 없을 것이며, 이는 영어 의무화 교육 등에서 이미 겪고 있는 실패한 방식임



<자료> JTBC

[동영상] 왜곡된 코딩 조기교육


• 레스닉 교수는 MIT의 교수직 평가에서도 정량적인 평가는 존재하지 않으며, 종신 고용 자격을 부여하거나 승진을 결정할 때는 해당 교수의 글과 업적, 피어 리뷰(교수끼리 상호 평가) 만으로 판단하지, 정량적 평가는 하지 않는다고 지적


정말 중요한 것은 정량화 할 수 없는데, 정말 중요한 것은 목적이 무엇인지 제대로 파악하는 것이며, 레스닉 교수가 생각하는 교육의 핵심은 아이들이 크리에이티브 씽커(creative thinker, 창조적 발상 능력을 학습한 사람)로 자라게 하는 것임


아이들이 종종 어떤 작품을 만들면 높은 점수를 얻을까요라고 질문하는데, 이럴 때 스크래치 커뮤니티의 가이드들은 여러분들이 재미있다고 생각하는 것을 만드세요 또는 친구가 재미있다고 생각하는 것을 만드세요라는 답변을 준다고 함


스크래치 수업 평가에 대해 일부는 시험 점수를 생각하고 있지만, 스크래치 개발팀은 참여자 간의 상호평가로 갈음하고 있으며, 장기적으로 창의적인 생각, 체계적 추론 능력, 협력 능력, 이 세 가지를 평가할 수 있는 방법을 어렵지만 만들어 갈 계획이라고 함


레스닉 교수는 스크래치의 목표는 어디까지나 아이들의 표현 수단을 늘리고, 만들면 재미있겠다고 생각한 것을 실현하는 수단을 제공하는 것임을 잊지 말아야 한다고 강조

※ 다음 글은 정보통신기술진흥센터(IITP)가 발간하는 주간기술동향 1763호(2016. 9. 14 발행)에 기고한 원고입니다. 


▶ IITP에서 PDF 포맷으로 퍼블리싱한 파일을 첨부합니다. 가독성이 좋으니 참고하시기 바랍니다.

미국 IT 기술분야 평균 연봉 역대 최고.pdf



◈ 리쿠르팅 전문기업인 다이스(Dice)가 공개한 데이터에 따르면, 2015년 미국 기술 직종의 평균 연봉은 9 6,370달러로 데이터를 수집해 온 10년 내 가장 높은 수준을 기록


2015 IT 직종의 전년 대비 연봉 인상률은 7.7.%였으며, 이 역시 최근 수년간 2%대 성장률을 기록한 것과 비교해 볼 때 이례적으로 높은 수치


응답자의 62%가 전년 대비 급여가 인상되었다고 답했으며, 38%는 혜택이 늘었고, 10%는 내부 승진이 있었다고 응답


다이스는 연봉 수준 인상의 두 번째 주요 요인으로 이직을 꼽았는데, 23%가 이직을 하였고, 이 과정에서 대체로 연봉이 인상된 것으로 나타남


[1] 2011~2015 미국 IT 직종 평균 연봉 및 연봉인상률 추이 (단위: 달러)

연도

2011

2012

2013

2014

2015

평균 연봉

81,327

85,619

87,811

89,450

96,370

연봉인상률

2.4%

5.3%

2.6%

1.9%

7.7%

<자료> Dice Tech Salary Survey, 2016. 08, IITP 정리


실리콘밸리 외에도 뉴욕, LA, 보스턴, 시애틀, 볼티모어, 미니애폴리스, 포틀랜드 등 7개 대도시 권역의 기술직 평균 연봉이 사상 처음으로 모두 6자리(10만 달러) 이상을 기록하였음


[2] 2015년 미국 7개 대도시권역 IT 직종 평균 연봉 및 연봉인상률 (단위: 달러)

대도시 권역

2015 연봉

인상률

대도시권역

2015 연봉

인상률

실리콘밸리

118,243

5%

시애틀

103,309

4%

뉴욕

106,263

11%

볼티모어

102,873

5%

로스앤젤레스

105,091

10%

미니애폴리스

100,379

9%

보스턴

103,675

7%

포틀랜드

100,309

10%

<자료> Dice Tech Salary Survey, 2016. 08, IITP 정리


또한 IT 직종의 인기를 반영하듯, 정규직 고용 외에도 계약직 일자, 보너스 금액도 2014년에 비해 모드 증가한 것으로 나타남


IT 직종 중에서도 가장 인기가 높은 분야는 최근 수년간의 흐름과 마찬가지로 빅데이터클라우드였으며, 관련해서 하나(HANA), 오픈스택(OpenStack) 등이 새로 이름을 올림


빅데이터는 거의 모든 기업이 수집, 추적, 관리하고 있으나 빅데이터에 수반되는 여러 다양한 시스템을 관리하는 것은 쉬운 일이 아니기 때문에 빅데이터 스킬의 시장 가치는 전년 대비 16% 상승했으며, 빅데이터 직종의 평균 연봉은 2016 8월 기준 12 1,328달러였음


기업들이 클라우드를 활발히 도입하면서, 클라우드 인프라를 관리할 수 있는 인재들을 더 많이 필요로 하고 있으며, 수년 간 뜨거운 분야였음에도 이 기술 직종의 연봉은 작년에도 35% 상승하였고, 클라우드 직종 종사자의 평균 연봉은 11 2,972달러였음


페타바이트급 데이터 처리에 사용되는 도구 중 하나로 스트리밍 서비스를 제공하는 기업에서 인기가 높은 스파크(Spark) 전문가의 시장 가치는 1년 만에 85% 성장했으며, 스파크 기술 직종 종사자의 평균 연봉은 11 3,214달러임


카산드라(Cassandra)는 여러 서버에 보관하고 있는 방대한 데이터 관리에 도움을 주는 오픈소스 데이터베이스 관리 시스템으로, 빅데이터가 더욱 중요해지면서 카산드라 스킬의 시장 가치는 전년 대비 23%가 상승했으며 평균 연봉은 14 7,811달러임


 이 밖에도 마이크로소프트의 클라우드 컴퓨팅 플랫폼인 애저(Azure), 개발자들의 생산성 추적 도구인 지라(JIRA), 기업 CRM 도구인 세일즈포스 전문가그리고 보안 엔지니어네트워크 관리자전기 엔지니어들의 몸값도 급상승 중인 것으로 나타남


[표 3] IT 직종 중 연봉 상위 10대 기술 분야 (단위: 달러)

순위

기술직종

분야

연봉

순위

기술직종

분야

연봉

1

하나

DB

154,749

6

클라우드스택

클라우드

138,095

2

카산드라

DB

147,811

7

셰프(Chef)

프로그래밍

136,850

3

클라우데라

클라우드

142,835

8

피그

빅데이터

132,850

4

파스(PaaS)

클라우드

140,894

9

맵리듀스

빅데이터

131,563

5

오픈스택

클라우드

138,579

10

퍼펫(Puppet)

프로그래밍

131,121

<자료> Dice Tech Salary Survey, 2016. 08, IITP 정리






※ 다음 글은 정보통신기술진흥센터(IITP)가 발간하는 주간기술동향 1762호(2016. 9. 7 발행)에 기고한 원고입니다. 


▶ IITP에서 PDF 포맷으로 퍼블리싱한 파일을 첨부합니다. 가독성이 좋으니 참고하시기 바랍니다.

누구나 프로그래밍을 배워야 하는 이유.pdf



◈ 미국의 인력채용 시장조사기관인 버닝 글래스 테크놀로지가 발표한 보고서에 따르면, 현재 기술산업 부문에서 특히 인기있는 스킬 중 하나는 코딩 능력임


보고서에 따르면 미국 노동 시장에서 프로그래밍 관련 업무의 증가 속도는 시장 전체 평균에 비해 12% 빠르며, 2015년 한 해 동안 코딩 기술을 필요로 하는 일자리는 미국에서 약 700만 건이었음


버닝 글래스의 보고서는 직업, 기술, 자격, 급여에 관한 동향을 파악하기 위한 것으로, 2015년 미국에서 공고된 구인 정보를 중복없이 수집한 2,600만 건의 데이터베이스를 토대로 분석한 결과임


수입의 관점에서 보면, 시간당 15 달러 이상의 일 중 코딩 기술이 필요한 일은 그렇지 않은 일에 비해 연봉이 평균 2 2천 달러 높은 것으로 나타남



<자료> burning glass technologies


[그림 1] 코딩 능력과 연봉 사이의 높은 연관 관계


◈ 보고서에서 발견한 새로운 흥미로운 내용은, 코딩이라는 스킬이 프로그래밍 작업에만 한정된 이야기가 아니라는 점


데이터 분석, 아트와 디자인, 엔지니어링, 정보 기술, 과학 등 다양한 분야에서 코딩이 필수 기술로 떠오르고 있는데, 이를 보면 지금은 코딩을 배워야 할 때이며, 아이가 있는 사람이라면 아이들도 그 흐름에 편승시켜야 할 때가 아닌가 하는 생각을 갖게 함


누구나 사신이 일하고 있는 분야에서 자신의 시장 가치를 유지하고 싶다고 생각할 텐데, 코딩 기술은 IT 업계 종사 여부와도 관계없이 앞으로 이력서에 표시되면 지속적으로 부가가치로 창출해 낼 수 있을 것임


전에는 프로젝트 매니저나 마케팅 매니저가 자신이 가진 스킬 중 하나로 코딩을 제시하는 것이 이상하게 생각되었을 지 모르지만, 지금이라면 오히려 인력 시장에서 유리하게 작용할 가능성이 높아지고 있음


가령 IT와 무관한 인사과 직원이 간단한 웹 플러그인을 개발한 결과, 매일 약 2시간 가량 잡아먹던 허드레 일을 없앴고, 이 혜택을 회사의 전 직원을 받은 사례가 있음


또한 매크로를 만들 수 있는 회계 담당자가 있다면 부서 전체의 생산성이 오를 수 있는데, 이런 것들은 컴퓨터과학의 학위가 없어도 만들 수 있는 간단한 프로그램이지만, 동료들 사이에서 자신을 확실히 뛰어난 존재로 돋보이게 만들 수 있음


 간단한 웹 응용프로그램을 만들 수 있는 직원도 있다면 그 부서에서 약간의 문제를 해결할 수 있고, 그렇게 되면 IT 부서에 굳이 문제 해결 요청을 하고 솔루션의 완성까지 몇 달을 기다리는 일을 하지 않아도 됨


여기서 예상해 볼 수 있는 중요한 점은 필요한 것을 신속하게 만들 수 있는 사람이 미래를 잡을 확률이 높아진다는 것


◈ 코딩은 대학 과정을 통해서만 배울 수 있는 것이 아님에도 많은 이들에게 장벽처럼 느껴지는데, 따라서 어렸을 때부터 교과를 통해 일찍 코딩을 접하게 하는 것이 중요


컴퓨터공학 과정을 졸업하는 학생들이 최신 코딩 기술을 습득하고 있을 것이라 생각되지만 반드시 그런 것은 아니며, 그들도 개별적으로 배워야 하는 일이 허다함


코딩을 초중고등 교과에 넣으려는 시도도 전개되고 있기도 하지만, 커리큘럼을 현대적으로 개정하려면 상당한 시간과 노력이 소요되기 때문에, 코딩을 교과 과정에 도입하는 것과 관련해 아직도 시대에 뒤떨어진 학교들이 많을 수밖에 없음


코딩을 정식 교과에 포함하려는 노력은 계속되어야 하는데, 코딩을 배우면 단지 프로그래밍에 대한 이해력만이 아니라 비판적 사고력이라는 배움을 얻을 수 있기 때문


이런 이유로 MIT 공과대학은STEM(과학·기술·공학·수학)의 스킬을 수업에 도입하도록 교사들에게 조언을 함으로써, 아이들이 조기에 코딩에 임할 수 있도록 지원하고 있음


MIT가 지향하는 것은 수학에서 과학, 사회과학에 이르기까지 모든 과정에 코딩이 도입된 세계이며, 여기서 코딩은 문제를 시각화하는 방법과 그 문제를 새롭고 창조적인 방식으로 해결하는 방법을 아이들에게 가르치는 수단의 하나임


코딩적 사고의 진정한 안목은 문제를 개별 단계로 세분화하는 것인데, 이 스킬은 거의 모든 분야에서 필요하며 학습의 근본적인 기반이 되므로, 코딩 교육을 받으면 다른 교과의 학습 효과를 높일 수 있으며, 컴퓨팅을 창조적으로 사용할 수 있게 됨


현재는 어린 아이들에게 코딩에 대한 관심을 심어 주지가 전례없이 쉬워졌으며, 코딩의 기초를 가르치지 위한 게임이나 앱, 웹사이트는 얼마든지 있으므로, 아이들에게 가능한 한 빠른 시간에 프로그래밍 기술을 가르치는 것이 필요함


◈ 또한 아직까지 코딩을 배우지 못한 채 직장 경력을 쌓고 있는 사람들도, 미래의 경쟁력 유지를 위해 틈틈이 시간을 내 코딩 스킬 연마를 시작할 필요가 있음


지금은 소프트웨어가 모든 업종, 모든 부문에 침투해 있으며 소프트웨어는 그만큼 큰 잠재력을 가지고 있으나, 이 잠재력이 발휘되려면 사람들이 이 기술에 익숙해져야 함


유년기나 학창 시절에 코딩 기술을 익히고 않은 직장인들도 걱정할 필요가 없는 것이, 기술의 발전 덕분에 프로그래밍을 배울 수 있는 자원은 이미 인터넷에 널려 있음


e-러닝 사업자들은 훌륭한 코딩 강좌를 운영하고 있고 업계 전문가들이 수시로 갱신하고 있으며, 또한 코딩 학습과 관련한 각종 문제에 직면할 경우 개발자 커뮤니티에 질문할 수 있는 온라인 포럼들이 많이 형성되어 있음


코딩의 세계에서는 적극적인 자세를 유지하고, 새로운 기술의 등장에 맞춰 학습을 계속하는 것이 경쟁력을 유지하는 최선의 방법임


IT 산업은 늘 변화하고 있기 때문에 무언가를 배우는 것은 결코 시간낭비가 아니며, 따라서 전문가들은 코딩을 모르는 사람들도 서둘러 일단 시작해 볼 것을 조언하고 있음



※ burning technologies의 원문 보고서 다운로드 링크