brunch

You can make anything
by writing

C.S.Lewis

by 배로만쌤 May 10. 2017

코딩에 참여하는 사람들

코딩교육을 준비하는 코딩개념을 공유합니다

코딩은 프로그램을 만들기 위한 코드를 작성한다는 의미입니다.
이를 좀 더 전문적으로 프로그래밍이라고 하는데 프로그래밍을 하는 사람을 프로그래머라고 합니다.
코딩을 하는 사람을 코더라고 하여 코더를 프로그래머보다 하위의 개념으로 보통은 인식하는데 이는 코딩은 단순히 프로그램 코드만을 작성하는 것이고 프로그램은 프로그램을 만드는 전반적인 일을 수행하다는 의미에서 차이가 있습니다.

프로그래머보다 상위 개념으로 개발자라는 호칭이 있는데 이는 프로그램을 단순히 프로그래밍하는 차원을 넘어 무엇을 만들지 고민하며 개발을 한다는 의미여서 프로그래밍 아이디어를 고안까지 한다는 의미에서 개발자라는 용어를 사용합니다.

개발자의 상위개념은 설계자와 아키텍터가 있습니다. 건축물을 설계하는 사람들과 용어를 같이 합니다. 이는 프로그램의 규모가 커져 여러 개의 프로그램들을 개발하는 프로젝트를 수행할 때는 건축의 개념을 도용하였습니다. 규모가 방대하여 복잡해지므로 구조화를 해서 여러 명의 개발자가 참여하여 하기 때문입니다. 이때 소프트웨어와 하드웨어의 구성을 설계하고 구조화하게 되므로 설계자와 아키텍터라는 고급개발자가 필요하게 됩니다.

아울러 프로젝트 리더와 프로젝트 매니저가 있는데 프로젝트 리더는 개발자들이 개발을 진행할 수 있게 개발자들을 이끄는 팀장의 역활을 지칭하게 됩니다. 아울러 프로젝트 매니저는 원래는 프로젝트를 진행하기 위한 개발자 관리, 비용관리, 프로젝트 진행 일정관리 등등을 계획하고 조율하는 역활을 하는 사람을 말합니다. 보통 소규모의 개발팀에서는 위의 아키텍트, 프로젝트 리더, 프로젝트매니저를 통칭하여 프로젝트 매니저라고 하는 경우가 많습니다.

국내에서는 프로젝트 매니저가 프로젝트 리더의 역활을 하는 경우가 많습니다. 원래 프로젝트 매니저는 행정적인 일을 하는 사람을 규정하는데 현업에서는 기술적인 배경지식이 있어야 하는 경우가 있어서 아키텍터 역량이 있는 사람이 PM역활을 하는 경우가 많습니다.

국내에서는 SI라고 하여 시스템통합 프로젝트가 많은데 이때 고객(정부나 대기업)으로부터 프로젝트를 수주하는 원청이 있고 이들로 부터 실제적인 개발을 진행하는 하청이 있습니다. 이때 보통 원청에서는 설계자와 아키텍터가 작업을 하는 경우가 많습니다. 하정업체는 코더와 프로그래머들이 작업을 하게 됩니다.

이외에 개발이 진행될 때는 화면을 설계하는 디자이너가 있습니다. 이때 디자이너는 프로그램 설계자와 달리 그래픽 작업을 하는 사람입니다.
또한 기획자가 있습니다. 기획자는 전체 프로젝트의 사업적인 진행을 위해 요구사항을 분석하고 이를 실제 어떻게 구현할지 기능적인 사항을 정리하여 디자이너가 화면을 그릴 수 있게 기획서를 만듭니다. 기획자는 개발자들이 어떤 프로그램을 해야 할지를 설계자와 아키텍터와 기술적인 협력을 하여 수행하는 사람입니다. 그런데 설계자와 아키텍터가 기획자의 역활을 하게 되는데 이는 기술적인 사항이 많을 때 일반 기획자가 기획을 할 수 없을 때 그러합니다.

여기에 게임개발의 경우는 사운드를 개발하는 사운드 전문가도 있을 수 있고 개발해야 되는 업무에 대해 분석하는 업무 분석가등 다양한 참여자가 있습니다.

코딩교육에서 학생들이 해야 하는 역활은 개발자의 역활을 연습해야 합니다. 여기서 개발자는 위에서 말한 모든 역할을 통칭하는 개발자입니다.
제가 알기로는 그래서 처음에 코딩교육이라고 했다가 소프트웨어교육이라는 용어로 바꾼 이유가 단순히 코딩을 하는 것만 아니라 아이디어를 고안하고 이를 구현하여야 한다는 의미에서 용어를 바꾼 것이라 추론합니다.

그래서 교육현장에서는 학생들이 처음에는 코딩을 하는 연습을 해야 하지만 궁극적으로는 무엇을 만들지를 스스로 고안하고 개발할 수 있게 개발자로써의 훈련을 해야 할 것입니다. 그런데 이러한 개발자가 IT에 종사하는 개발자가 아니라 다양한 분야에서 컴퓨터를 활용하여 그분야에 필요한 아이템을 개발할 수 있게 훈련하여야 할 것 같습니다.

이를 위해 학생들은 시행착오를 거듭하며 엔지니어적인 접근법으로 학생들 스스로 자신의 관심분야에 아이디어 작품을 만드는 연습을 하게 되면 성인이 되었을 때 자신의 분야에서 이러한 경험을 통해 다양한 응용을 할 수 있게 될 것입니다.

코딩교육에서 이러한 연습을 하기 위해 학생들이 생각하는 훈련을 하게 하기 위해 교육자는 학생들에게 생각하는 여유를 주고 맘대로 이것저것할 수 있게 해야 합니다.
특히, 기존의 교육에서 진도를 중요시하는 강의 방식을 배재하고 교육자는 코치로써 학생들 수준별로 문제를 찾고 해결할 수 있게 해야 합니다. 이는 기본 기능을 배우면서 아무렇게나 해보게 하는 시간을 많이 주어야 합니다.

아직, 학교에서 소프트웨어 교육이 본격화되지 않았기에 초기에 학교에서 수업을 진행할 때 기존의 암기식, 강의식, 그리고 시험을 위한 소프트웨어교육이 진행된다면 소프트웨어교육의 취지가 바르게 수행되지 않을 수 있습니다 이러한 염려가 극복되어지길 바라며 글을 마무리합니다.

다양한 참여자들이 다각도로 힘쓰고 있기에 배로만쌤도 더불어 소프트웨어교육의 방향을 정리했습니다.
위의 정리 사항은 현업에서 차이가 있을 수 있기에 다른 의견이 있을 수 있습니다.
따라서 이견이 있으신 분은 댓글로 적어주시면 검토하여 글을 부분 수정할 수도 있습니다.

행복한 소프트웨어교육을 위해 보다 많은 분들의 관심과 참여를 바라며 글을 마무리 하겠습니다.

감사합니다.

배로만쌤 드림.
2017.5.1.

작가의 이전글 스마트폰 앱 개발팁 정리
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari