우리는 왜 소프트웨어를 배울까
[무료 웨비나] 개발자를 위한 클라우드플레어를 소개합니다
◎ 일시 : 2025년 2월 6일 (목) 14:00 ~ 15:00
[무료 웨비나] 중동의 ICT 및 테크 기업 생태계 – 사우디 아라비아, UAE를 중심으로
◎ 일시 : 2025년 1월 23일 (목) 14:00 ~ 15:10
유명한 앱 중에 전문 앱 개발자가 만들지 않은 것들이 꽤 있습니다. 그러니까 어떤 일에 대해 불편을 느끼고 이를 해소하기 위해 직접 아이디어를 짜고 결과물을 만드는 것이지요. 이게 예전에는 꽤 어려운 일이었는데 이제는 꽤 자주 볼 수 있습니다.
대표적인 것이 ‘스크리브너(Scrivener)’입니다. 이 앱을 만든 키이스 블런트(Keith Blount)는 작가였습니다. 컴퓨터로 장편 소설을 쓰는 데 불편한 점이 많아서 직접 만든 앱이 바로 긴 글 쓰기 ‘끝판왕’으로 불리는 스크리브너입니다. 개발 환경이 더 쉬워지고, 클라우드 등 인프라에 대한 지원이 늘어나면서 이제는 간단한 기능의 앱을 만드는 장벽이 꽤나 낮아졌습니다. 더구나 소프트웨어 개발에 대한 관심은 세계적으로 높아지고 있습니다. 소프트웨어 개발자 없이 새로운 사업을 구상하는 것은 더더욱이 말이 안 되는 일이지요.
하지만 우리는 소프트웨어를 어떻게 만들 수 있을지에 대한 첫 발을 떼기가 쉽지 않습니다. 어디에서 가르쳐주면 좋을텐데 말이지요. 서울대학교에서 윤성관 교수가 하고 있는 ‘인터페이스 프로그래밍’이 바로 이런 고민을 깨주는 좋은 예입니다.
지난 5월16일 아침 서울대학교를 찾았습니다. 미리 학생들에게 양해를 구하고 강의실 한쪽 구석에서 수업을 지켜볼 수 있었습니다. 그리고 강의가 끝난 뒤 “대단하다”는 말이 절로 나왔습니다. 생각하던 것 그 이상의 일들이 이 강의실에서 일어나고 있었습니다.
윤성관 교수는 애플 마니아들 사이에서 이름보다 ‘링고스타’라는 아이디로 더 잘 통하는 개발자입니다. 애초 소프트웨어 개발에도 관심이 많았지만 무엇보다 개발자와 디자이너, 기획자 간의 소통에 관심이 많았습니다. 디자이너나 기획자도 코딩을 알아야 결과물의 완성도를 높일 수 있다는 데에서 관련 강의를 만들기 시작했습니다. 여러 학교에서 강의를 하고 있는데, 현재 서울대학교는 윤성관 교수가 추구하는 방향성이 가장 잘 드러나는 공간입니다.
“사회적으로 앱 개발에 대한 요구가 상당히 많습니다. 하지만 어떻게 앱을 만들 것인가에 대한 고민은 풀리지 않습니다. 기존 정규 교육 과정이 그 수요를 채우기도 쉽지 않습니다. 무엇보다 개발자와 협업을 하더라도 아이디어를 개발자에게 전달하는 소통 방법조차 이야기하기가 쉽지 않습니다. 그 소통부터 개발까지 이어지는 경험을 전달하는 게 이 수업이 1년동안 삼는 목표입니다.”
인터페이스 프로그래밍 수업은 정보문화학과에 설립됐습니다. 이 학과는 산학협업을 위해 만들어졌는데, 전공 수업은 있지만 전공 학생은 없습니다. 누구나 자유롭게 수업에 참여할 수 있는 연합 전공 학과로, 우리가 ICT라고 부르는 정보 통신 기술과 관련된 현장의 경험을 담는 실용 학과라고 보면 됩니다.
그래서 수업을 듣는 학생들의 본래 전공도 제각각입니다. 모두 8명의 학생이 수업을 듣는데 국어국문과부터 미학,전기정보공학, 의류학까지 전부 다른 공부를 하면서 이 강의에 참여하고 있었습니다. 부끄럽지만 어설픈 코딩 지식으로 학점을 쉽게 따기 위해 언어 수업을 들었던 경험이 스쳤는데, 실제 수업은 완전히 달랐습니다. 실전 그 자체랄까요.
강의는 실제로 앱을 만드는 과정을 실습 형태로 이어가고 있습니다. 이번 학기의 목표는 앱에 대한 아이디어를 내고, 실제로 앱 형태의 디자인을 마치는 데에 있었습니다. 이번 수업에서도 8명의 학생들은 각자 앱에 대한 아이디어를 발표하고 구체화한 디자인을 제시했습니다. 그리고 실제로 iOS용 앱의 프로토타입을 만드는 과정을 이어갔습니다. 학생들은 X코드의 인터페이스 빌더를 통해 실제 작동하는 버튼과 화면들을 만들었고, 탭과 내비게이션을 이용해 실제처럼 작동하는 프로토타입을 그려냈습니다.
아이디어들도 흥미로웠습니다. 개개인간 공연 티켓을 안전하고 공정하게 거래할 수 있는 중계 서비스부터, 여러 상황에 적절한 시간을 만들고 공유하는 타이머 앱, 그리고 카메라로 스캔해서 글꼴을 찾아주는 앱 등 실제로 서비스를 해도 될 정도의 결과물들이 발표됐습니다.
디자인 초안은 종이에 손으로 그리기도 하고, X코드를 이용하기도 했는데, 어떤 방법으로든 애플이 제시하는 디자인 요소들과 가이드를 잘 따르고 있었습니다. 또한 클라우드와 머신러닝 등의 도구를 활용하기도 했습니다. 윤성관 교수는 “코딩을 알고 앱을 디자인하는 센스를 전달한다”고 했는데, 실제로 스케치의 수준은 실제 앱 개발 과정과 다르지 않았습니다. 하지만 그렇다고 코딩을 전문으로 하는 개발자를 만드는 과정은 절대 아니었습니다.
“디자이너나 개발자들에게 프로로타입은 아이디어를 실제로 얼마나 구현 가능한지를 알아보는 중요한 과정입니다. 각 버튼이나 탭이 실제로 어떤 용도로 쓰이는지, 기기에서 각 내비게이션이 효과적으로 작동하는지를 확인할 수 있기 때문입니다. 디자인해보는 것으로 개발자나 기획자가 생각을 공유할 수도 있고, 잘못된 부분을 수정할 수도 있습니다. 이 때문에 최근 앱 개발 흐름도 실제 개발이 진행되기 전에 완전한 껍데기를 만들어 본 뒤에 코딩이 진행되는 경우가 많습니다. 어긋나지 않은 문법으로 설계하는 것이 앱 개발의 시작인 셈이지요.”
이번 학기에는 ‘앱 처럼 보이는 디자인 결과물’을 만드는 게 목표고, 다음 학기에 이 아이디어를 실제 구동하는 앱으로 만드는 코딩이 이어진다고 합니다. 1년 과정을 마치면 정말 내 앱이 만들어지는 겁니다. 실제 윤성관 교수와 함께 했던 학생들은 앱을 앱스토어에 올려서 배포하기도 하고, 아예 팀을 꾸려 스타트업을 시작하기도 했다고 합니다. 아예 전문 프로토타이퍼로 방향을 정한 예도 있다고 합니다.
학생들은 이 강의를 어떻게 받아들이고 있을까요. 13학번 김은지 학생은 전기정보공학과 전공입니다. 소프트웨어를 개발하고 앱 만드는 건 본래 학과에서도 들을 수 있는 것 아니냐고 물었더니 “방향이 다르다”는 답이 돌아왔습니다. 전기정보공학과는 C++ 등 고급 언어를 중심으로 본질을 배우고 있는데, 이 인터페이스 프로그래밍은 가시적 결과물을 얻을 수 있어서 좋다고 합니다.
“눈에 보이는 결과물이 있어서 성취감이 있습니다. 한 학기 수업을 하면서 간단한 앱이나 게임도 만들 수 있을 것 같은 자신감이 생기기도 했어요.”
인문대 미학과에 다니는 14학번 권윤영 학생도 전공과 전혀 관계가 없는 이 수업에 들어온 이유로 ‘실제 원하는 것을 만들고 싶어서’라고 말했습니다.
“개인적인 호기심으로 동아리에서 앱 기획을 했던 적이 있는데, 개발 과정에 대한 이해가 없는 상태에서 개발자와 마찰이 자주 생겼는데, 직업 개발 과정을 겪으면서 할 수 있는 것과 없는 것을 구분할 수 있게 된 것 같습니다.”
다시 처음으로 돌아가볼까요. 우리는 왜 앱 개발을 할까요? 필요한 게 있으니까 앱을 만들 겁니다. 그리고 앱을 만드는 과정 역시 전문 개발자들만의 것은 아닙니다. 물론 프로 개발자들이 만드는 결과물은 전혀 다르고, 그들만 만들 수 있는 요소들도 많이 있습니다. 더 어려운 API들이 매년 개발자 컨퍼런스를 통해서 수 천개씩 쏟아지지요. 하지만 다른 한편으로 개발 도구나 앱 운영 환경은 점점 아마추어 앱 개발자들을 위한 지원들을 아끼지 않고 있습니다.
개발의 장벽이 아이디어를 막지 않아야 한다는 공감대 때문입니다. 애플이 어려운 오브젝티브C 외에 스위프트를 X코드에 집어넣고, 클라우드킷을 일정 수준까지 무료로 개방하는 것처럼 구글이나 마이크로소프트 등 플랫폼 기업들은 점점 더 쉽게 앱을 만들 수 있도록 문을 활짝 열고 있습니다. 앱은 아이디어를 그려내는 스케치북이 되고 있습니다. 윤성관 교수 역시 누구나 앱을 만들 수 있다는 자신감을 갖는 게 중요하다고 합니다. ‘코딩’ 이야기가 많이 나오지만 사실 세상이 우리에게 필요로 하는 것은 ‘소프트웨어를 위한 사고’에 더 가깝다는 이야기를 눈 앞에서 다시 한번 확인할 수 있었습니다.
좋은 시도 입니다.
학생들이 부럽군요.
회사내에서도 저렇게 필요에 의한 내용으로 자가 발전이 되면 좋을 텐데..