회사에서 기획자들을 대상으로 비개발자코딩교육을 실험했다. 8월 3일부터 시작해 공식적으로 9월 20일에 과정이 끝났다. 올 초에 모집을 시작했으니 4월부터 시작했어야했던 교육과정이 코로나와 겹치면서 수차례 연기되고, 고작 두어번 오프라인 수업을 했을 뿐인데 결국 강화된 사회적 거리두기 정책으로 온라인으로 과정을 마쳐야만 했다.
수업을 신청할 때는 그렇게 큰 목적이 있었던 것 같지는 않다. 요즘 비개발자대상의 코딩교육에서 내세우는 두어달배우면 개발자가 된다는 식의 커리큘럼 광고들을 볼 때마다 선입견이 있었기 때문에 어디 한번 들어나보자 싶었던 것이 제일 컸던 것 같고(회사님이 교육비를 지원이라 부담없이 들어볼 수 있기도 했다), 발전적인 방향의 목적으로는 사이트를 만들어본다고 해도 늘 정적페이지의 레이아웃만 겨우 손댈 수 있는 수준이었기 때문에 API 연동하는 걸 배워보고 싶은 마음이 있었다. 이런 부분들을 배우면 파이어베이스나 히로쿠 등을 이용해 사이드프로젝트를 혼자서 만들어보고 싶기도 했었으니까.
커리큘럼이 터무니없지만, (html/css > js > jquery > python > db > api > aws 를 5주 만에!) 난이도는 예상외로 잘 잡혀 있었다. 코드는 복붙할 수 있게 되어 있었고, 친절하게 구현방법을 주석으로 달아놓고 수강생들이 직접 두어줄만 짜보는 방식이었다. 프로젝트 하나에 하나의 구현만 한다. 두번째 프로젝트에서는 앞 프로젝트의 코드를 응용한다. 그렇게 계속 반복되지만, 뭐, 요구하는 기능이 복잡해 코드를 못짜도 괜찮다. 어차피 돌아가는 코드를 다시 준다.
물론 그대로 붙여놔도 돌아가지 않을 때가 다반사다. 왜 안되지와 돌아가네의 비율이 3:7 정도? 오히려 코드보다는 개발환경에서 헤매는 일이 더 많았다. 맥에서는 파이썬버전이 2가 기본이라서 3으로 올리는 법을 찾는다거나. 튜터가 사용하는 IDE는 프로버전인데, 우리가 쓰는 IDE는 커뮤니티 버전이라서 다르다거나. AWS 콘솔이 영어로 되어 있는데, 지금은 대시보드가 잔뜩 바뀌어서 있어야 할 곳에 메뉴가 없다거나 하는 흔한 버전차에 따른 문제들로 인해 헤매는 일들이다.
'돌아가는 코드'를 기준으로 설명돼있기 때문에 '안돌아갈 때'는 어떻게 해야하는지 알 수 없었던 건 많이 아쉽다. 디버깅하는 방법이나 breakpoint 등을 찍어가며 값들을 쫓아가는 건 결국 주위 개발자님들의 도움을 받아서 조금씩 헤쳐나갔다. 아무리 코드를 수정해도 갱신이 안됐는데, 브라우저 캐시가 범인이었고, 개발자도구에서 캐시를 끄라고(network > disable cache) 조언을 받기도 했다. 아무래도 온라인강의에서는 이런 어려움을 옆에서 해결주는 사람이 없기 때문에 혼자서 눈씻고 오타나 글자를 찾아야 하는 숨은그림 찾기로 시간을 많이 쓸 수밖에 없었다.
오프라인 강의에서는 4시간 야근 수준이었기 때문에 강의가 끝나면 녹초가 됐고, 혼자서 더 공부를 할 마음이 들지 않았었는데, 아무래도 온라인강의는 내가 바쁘지 않은 날을 골라서 선택적으로 수강할 수 있다는 것이 제일 큰 장점이었다. 또 혼자서 집중 할 수 있는 시간이 무제한으로 있었다는 것도 좋았다. 체력만 있다면, 이렇게도 저렇게도 시도해볼 수 있었기 때문에 많은 코드를 썼다지웠다 했다. 그러다보니 '왜 안되지? 좀만 더 해볼까?' 하며 며칠 밤을 새기도 했는데, 그러면서 어려운 고비를 스스로 넘었을 때의 뿌듯함도 느낄 수 있었다.
코딩공부, 혼자 할 수 있을까?
개발을 공부하는 건 어렵다. 개발자들이 이해하지 못하는 비개발자의 사고의 흐름은 의외로 매우 작은 곳에 끼여서 탈출하지 못하는 것이다. 대표적인게 '왜?' 와 '이게 뭔데?' 라는 질문이다. 왜 정수를 정수로 나누면 정수로 나와? 소수로 표현이 안돼? 같은 것부터 post는 파라미터로 보내는데 get은 쿼리스트링으로 보내? 같은 것들도 있을거고. 왜 똑같이 썼는데 안돌아가지 이런 질문의 늪에 빠져 허우적대다 나는 여기까지인가봐 안녕... 하고 포기하게 된다. 나는 그렇게 개발자의 길을 걸어보지도 못하고, 기획자의 길로 들어섰기 때문에 개발을 다시 배워보는 데에 나름의 용기가 필요했다고 본다.
그래서 이번 수업을 시작하며 가장 먼저 다짐한 것은 나는 몰라도 괜찮다는 정신승리다. 특히 나처럼 이 업계에서 10년 쯤 굴러먹은 사람들은 주워들은게 보통 많은게 아니기 때문에 한줄의 기능을 적기만 해도 해야하는 이런 저런 처리들을 읊을 수 있다. (님은 입코딩은 충분히 하시잖아요. 하는 얘기를 자주 듣..) 그러니 나에게 무한히 관대해져야 했다. 내가 현실세계에서 개발자들에게 이거해야지 저거해야지 이런 처리는 왜 빼먹었어 이런건 기본이지라는 얘기를 나에게만큼은 절대로 하지 말아야 한다. ‘일단 출력만 해. 지금은 아무것도 하지마. 돌아가게만 만들어. 됐어? 그럼 넘어가자.’ 의 끊임없는 반복으로 작은 돌들을 넘어서니 다음 스텝으로 나아갈 수 있었다. 궁금한게 생겨도 ‘아냐 몰라도 돼 알려고 하지마 일단 넘어가’도 많이 했던 말이다.
또 수업 방식이 익숙해지면서, 확실한 목표가 필요했다. 무엇을 만들어야겠다! 라는 생각을 한 순간부터가 새로운 시작이었다. 과정만 따라가면 큰 의미가 없을 것 같아, 평소에 생각했던 사이드프로젝트를 같이 시작했다. 그러고나니 수업몰입도도 달라지고, 더 많은 시행착오를 겪어가며 다양한 트러블슈팅(버그에 내가 맞음...😭)의 과정을 통해 배운게 더 많았던 것 같다.
마지막으로 끝까지 버티겠다는 인내다. 개발을 업으로 하는 사람이 아니니, 꾸준히 할 수 없고 그러다보면 1~2일이 아닌 일주일 만에 코드를 꺼내 보게 된다. 손도 굳고, 내가 어디까지 짰는지 헤매고 다시 빌드를 올리는 데도 버벅인다. 순식간에 산 밑으로 굴러가는 시지푸스의 돌처럼, 코드를 볼 때마다 매번 한 두시간씩 해메는 그 시간을 견디지 못하면 산을 오를수도 없고 체력이 붙지도 못한다. 러닝커브를 넘어서는 건 이 시간을 얼마나 잘 견디느냐에 따라 달렸다고 생각한다. 이번 수업을 끝까지 못하면, 나는 영영 코드를 만질 일이 없을 거라고 생각하며, 결국은 끝까지 들었다.
코딩공부가 기획에 도움이 될까?
나는 (아직까지) 여전히 도움이 안된다고 생각한다. 기획자들은 나름의 역할이 있기 때문에 기획자가 개발을 모르기 때문에 기획을 못하고, 그러므로 개발을 배워야 한다는 주장에는 여전히 동의하지 않는다. 코딩공부를 하는 것보단 개발의 방식을 이해해야한다. 개발자를 사고방식을 이해하고, 전체적인 시스템 구성을 이해하는 것은 큰 도움이 된다. 시스템의 흐름과 구조를 이해하는데에는 코드를 알지 못해도 충분히 할 수 있다.
오히려 개발을 배우는 것은 기획을 하는데에 반작용으로 작용하기도 한다. 배운게 남지는 않았지만 전공이 컴퓨터 쪽이다 보니 아무래도 소프트웨어를 이해하는데 도움이 많이 되어 빠른 속도나 안정적으로 서비스를 만들어 온 공을 무시할 수 없다. 하지만 나 스스로 개발자 편에서 의사결정을 한다거나, 본능적으로 구현부터 생각하게 되면서 고객 관점에서 더 나은 솔루션을 찾는데에는 아주 많이 실패한다.
아무리 기획이 설계design에 근본을 둔다 하더라도, 고객의 문제를 해결하기 위해서 새로운 관점이 필요할 때도 있다. 그런 기능은 개발이 어렵다거나, 지금 개발에서는 시간이 오래 걸린다거나, 구현확장성이 떨어진다는 둥 내 스스로 발견의 기회를 잘라버릴 때. 그리고 그런 관점과 부딪힐 때. 무릎을 탁치며, 아 내가 개발을 몰랐으면 좋았겠다하는 생각을 해본 적도 많다. 나는 이 점에서 나의 한계가 명확하다고 느끼기 때문에 개발 위주로 생각하는 것에 대해 오히려 경계한다. 개발자들이 어쩌구할 때 저쩌구하지 않으려고 굉장히 노력하는 요즘이다. (하지만 노력한다고 되는 건 아니라서, 아는 것도 없으면서 가끔 선을 넘어서 왈가왈부할 때도 많... 더 노력하겠습니다...)
그러니 개발을 모른다는 이유로 기획자로서의 자존감이나 자존심을 바닥에 버리지 않았으면 좋겠다. 무조건 배우지 말라는 의미가 아니다. 개발을 알면 도움이 될 것 같다고 생각하고 있다면, 분명 도움을 줄 수 있는 부분이 있으므로 배워보는 것도 추천한다.
여하튼 글을 마무리해야하는 시간이 됐네... 요구사항을 정리하지 않고 마구잡이로 구현해서 생긴게 영 마음에 들지 않지만 사이드프로젝트가 끝날 기미를 보이지 않고있으니 MVP 를 완성할 때까진 노력해봐야지. 강의는 끝났지만, 회사에서도 데모데이 같은걸 하려고 준비하는 것 같으니 그 때까진 계속 시간을 써볼 생각이다.
ps. 이 글을 쓴 이유가 마지막 강의차수에서 회고를 제출하는 것이 있어서였는데, 배포에 삽질을 하느라 자정을 초과해서 결국 올리지 못했다. 완강-1에서 멈춰있을 수강이력이여...끝내지 못해 미안해 🥺