전공이 아닌 사람이 개발자로 방향을 바꾸기까지의 이야기
고등학생때 관악부가 제일 재밌었던 나는 전공 추천을 받고 예체능의 길을 걸어가게 됐다. 당시 내가 하던 악기는 트롬본(Trombone)이었고 이 악기가 재밌었던 이유는 내가 입술을 부르르- 떨어서 내는 중후하고 매력적인 소리와 내가 생각하던 이미지와 달리 오케스트라 합주부터 솔로 연주까지 다양한 소리를 들어보고 반했기 때문이다. 오케스트라 합주를 할 때 해당 악기의 연주자가 있는 것과 없는 것의 차이가 클만큼 오케스트라에서 꼭 필요한 포지션이라고 생각되었고 전체를 아우르는 묵직한 화음은 나를 사로잡기에 충분했다.
관악기는 그저 행진 할 때, 혹은 재즈에서 많이 쓰이는 비주류의 악기라고만 생각했는데 경험해본 바로는 그게 전혀 아니었다.
솔로로 콘체르토를 연주할 때는 묵직하고 웅장한 소리를 내기도 하고, 가볍고 꾀꼬리같은 소리를 내기도 하는 다채로운 매력이 있었고 오케스트라에 합류하면 나의 소리로 하나의 곡을 더 입체적으로 만들 수 있었다. 지금도 생각하면 벅차다. 나의 선생님들이 예술의 전당에서 연주하는 모습을 보면서 나도 저만큼 성장하게될거라고 그 모습을 상상하며 꿈을 키웠기 때문이다.
그만큼 트롬본이라는 악기는 나에게 있어서 진심이었다. 꿈이 명확했고 악기를 사랑했다. 합주가 세상에서 제일 재밌었다. 음악을 연주하면서 행복했어야 했는데 그러지 못했어서 그 때의 나에게 참 미안할 뿐이다. 좋은 대학에 가기 위해 스스로를 괴롭히고 학대하기도 했고 그 당시 현실조차도 돈이 없고 가장 가난했었기 때문에 모든게 미웠던 시절이다. 거의 5년동안 함께 하면서 짝사랑이라는 생각을 끊임없이 했지만, 난 그럼에도 불구하고 아직도 트롬본 소리가 좋다. 아직도 나는 클래식 음악을 들을 때 마음이 편안하고 들을때마다 행복하다. 이런 내가 왜 그만 두고 개발자를 할까? 그만두게된 다양한 이유가 있었지만 개발자로서 개발을 시작하게된 이야기를 해보려고 한다.
개발을 하게 된 이유
학생 때는 음악을 했다. 원하는 대학도 아니었고, 내 분야에서 최고가 되고싶다는 생각은 언제나 갖고 있는데 대학이라는 부분이 음악인으로서 큰 부분을 차지할 것 같았다. 어찌보면 흔히 말하는 '유명한' 악기를 연주하는 주류의 사람은 아니었기 때문일 것이다. 그래서 더더욱 내가 원하는 만큼 인정받으려면 대학이 먼저라고 생각했다. 그 현실이 나를 많이 괴롭게 했다. 점점 음악 자체가 즐겁지 않게 되고 성공만을 쫓으려고 어쩔 수 없이 하는 것 같았다. 시야를 좁게 보며 살아온 것 같아 거진 입학과 동시에 자퇴를 결심하고 주변을 둘러보았다. 난 대체 뭘 좋아하고 살았지? 이게 정말 내 인생의 전부일까? 다른 일을 하고 살 수도 있지 않을까? 라는 생각이 들었다.
곰곰이 생각해보니 어릴 적에 컴퓨터를 정말 좋아해서 밤새 게임을 하기도 하고, 블로그에 꽂혀서 포스팅 하느라 여기저기 부모님과 여행을 다닌 기억이 있었다.
학교에서는 같은 반 학생들보다 타자가 월등히 빨랐고(신기해서 구경오는 친구들도 있었음) 컴퓨터에 있어서는 습득력이 굉장히 빨랐다. 어떤 전자기기를 쥐어줘도 곧바로 익숙해지고 컴퓨터로 무언가를 하는 행위 자체가 어린 나에게는 센세이션한 충격 그 자체("연필로 쓰고 지우면 한나절인데 컴퓨터로 쓰면 쓰고 지우는게 빠르고 쉽잖아?! 그냥 다들 책 말고 컴퓨터로 공부하면 안되나?" 라는 생각을 했었다)였고 놀이였다. 공부는 재미 없어도 <정보> 교과 시간은 그렇게 즐겁고, 스크래치로 학습하는 코딩은 게임보다 몰입되었다.
어릴 때도 그랬는지 어머니는 "희원이가 컴퓨터를 정말 좋아해서 이러다가 빌게이츠같은 사람이 될 수도 있겠다." 라는 일기도 써놓으셨다. ㅋㅋㅋ (컴퓨터 광인..)
이런 저런 생각을 하다보니 나에게 있어서 정말 행복하게 살고 있다고 느꼈던 때는 블로그를 하고있을 시기였다.
중학생이었는데 블로그를 재밌게 하면서 자연스레 웹 자체에 관심이 가고 네이버는 블로그를 다양하게 꾸밀 수 있었고 각자의 개성에 따라 표현되었기 때문에 웹의 디자인에 특히 시선이 갔다. 그러다 보니 컴퓨터를 하면서 다양한 웹사이트도 들어가보고 디자인에 대해 깊이 생각해보았었다. 들어갔을 때 예쁘기만하고 실용성은 전혀 없는 사이트도 있었고, 예쁘진 않지만 편한 사이트도 있었고, 디테일을 살려서 그 회사만의 컨셉에 맞추어 매력있고 편리한 사이트를 만든 곳도 있었다. 악마는 디테일에 있다고 하지 않는가? 나는 웹 디자인을 하면서 그 디테일을 살려서 포인트를 잘 짚어내는 최고의 웹 디자이너가 되어야 겠다고 다짐했다. 그렇게 자연스럽게 UI & UX에 관심이 갔던 때가 떠올랐고 그대로 진로의 방향을 틀어 악기를 내려놓고 국비 지원 학원으로 들어갔다.
웹 디자이너가 되려고 했는데, 코딩도 재밌다. 두개 다 고려 하는 흥미로운 직업이 있다?
국비 지원 학원에 들어가서 나는 디자인 툴을 열심히 배워야겠다고느꼈다. 대체적으로 디자인에 대한 그림은 내가 많이 보고 듣고 경험하면 자연스럽게 체득되는거라고 생각했기 때문이다. 그리고 그것에 있어서는 자신이 있었다.
아니 그런데 웹 디자인 학원이라고 해서 갔는데 퍼블리싱도 배운다고 한다. 그게 뭔데? 일단 HTML & CSS를 배워서 웹의 View단을 모두 만들 수 있다고 한다. 블로그를 꾸밀 때 해봤던 거랑 비슷한가보다. 그런거면 최고로 재밌다. 그런데 여기서 움직이는 효과도 넣을 수 있는데, 그건 Jquery를 배워서 적용시킬 수 있다고 한다. 웹 페이지가 움직이는게 있으면 더 사용자의 흥미를 유발할 수 있겠네! 라는 생각이 들어서 즐겁게 배웠다.
사실 처음에 HTML을 배울 때는 도무지 모르겠어서 집 갈때마다 나만 못하는 것 같아 울상이었다. 그러다 옆자리 짝꿍 언니가 "못해도 괜찮아. 못하면 디자인만 하면 되지~" 라고 말해줬는데 언니는 고맙게도 나를 위로하기 위해 한 말이었겠지만 나는 그게 왠지 도전장(?)처럼 느껴졌다. "못해서 디자인을 하는 것보다, 차라리 내가 두개 다 잘해버려서 선택해서 갈래!" 라고 다짐하게된 순간이다.
그 이후부터 학원에서 하나의 과제를 완성해내는데 20명중에 3등 안에는 들정도로 빠르게 해냈고, 결과물도 꽤나 만족할만한 작업물을 만들어냈다고 자부한다. 잘한 학생들의 작품을 앞세워 예시로 보여주는 경우가 많았는데 그때마다 내 과제가 세워졌다.
디자인도, 코딩도 이렇게 재밌는데 이걸 포기하고 디자인만 하기에는 아쉬운 마음이 들었다. 그런데 학원을 수료하기 직전에 프론트엔드 개발자와 백엔드 개발자가 존재하고 선생님께 그들이 하는 일에 대해서 간단하게 설명을 들을 기회가 있었다.
"디자인도 신경써야하고, 프로그래밍도 전문적으로 한다고? 이거 완전 내가 하고싶은 일이잖아!" 라고 생각하며 그럼 일단 취업 후 디자인과 퍼블리셔 일을 하면서 개발자가 되어야겠다고 결심했다.
그래서 그 후에 회사를 선택할 때 디자인과 퍼블리싱을 함께 도맡아 할 수 있는 환경으로 갔다.
웹이라는 평면 종이 인형을 살아 숨쉬게 하는 개발자들
현업에서 보는 개발자들은 정말 신기해보였다. 알 수 없는 단어들을 이야기하고, 디자이너와 개발자 사이에 있는 퍼블리셔인 나와 소통하는데 나보다 할 수 있는게 더 많아 보였다. 나는 그저 View단의 것들만 처리하는데 그들은 뒤에 있는 데이터까지 고려하고 실제로 웹이 입체적으로 돌아가게 해주는 장본인들이었다. 그런 모습을 보고 있자니 나같은 컴퓨터 광인은 개발자의 꿈이 더 커질 수 밖에 없었다.
"나는 멈춰있는 평면 종이 인형을 만든다면, 저들은 그 평면 종이 인형을 사람으로 만들어 움직이고 살아있을 수 있게 하잖아? 나도 할래. 개발자."
결국 학원을 다닐 때부터 품고 있던 개발자의 꿈이 현실로 될 수 있었던 이유중 하나는 현업에서 실제로 경험해보았기 때문이다. 그렇게 퇴사 후 나는 곧바로 개발을 배울 수 있는 학원을 알아보았다. 그 곳이 위코드였고, 현재는 누가 뭐래도 나름 위풍당당한 개발자다.
음악하던 비전공자 개발자인데, 뭐가 도움 됐을까?
연관 없는 업종이다. 문과 이과를 떠나서 예체능, 이과다. 겹치는 부분을 찾을래야 찾을 수 없을거라고 생각하겠지? 아인슈타인도 과학을 공부하면서 바이올린 연주를 했다. 내가 인생에서 지금 하는 일과 전혀 관련 없는 일을 과거에 했었더라도 그건 무조건 도움이 된다. 그런 의미에서 나에게 음악을 하던 날들은 개발자로 성장하는데 충분한 기여를 했다.
1. 자기주도학습: 스스로 학습해야 한다.
공부도 마찬가지지만 그래도 공부는 뇌에 때려박고 암기하면 되는데 음악이랑 개발은 그게 안된다.
한 사람이 붙어서 어떻게든 과외라도 하면 될거같은데 음악이랑 개발은 그런 것도 아니다. 그저 순도 100% 내가 직접 해야한다.
직접 해야한다의 의미는 공부와 통용되는 내용이기도 하겠지만 내가 여기서 강조하고 싶은 "직접 해야한다"의 의미는 정확히 "내 머리가 직접 이해하고 그에 따라 몸도 따라주어야 하고 적재적소에 그 기술들을 사용할 수 있어야 한다"의 의미이다.
음악을 할 때 가장 답답했던게 이런거다. 말로는 이해를 하겠는데 몸이 안따라주는 경우. 나의 스승이 할 수 있는 일은 그 느낌, 감을 찾을 수 있도록 봐주고 설명해준다. 그게 전부다. 그 감을 찾고 그 능력을 발달시키기 위해서는 내가 직접 찾아야한다. 그래서 음악할 때 재능, 재능 하는 이유가 다 여기에 있다. 그 느낌을 가장 잘 포착하고 습득하는 사람만이 급속도로 성장해 좋은 연주자가 되기 때문이다.
무언가를 달달 외울 필요가 없다. 그런 의미에서 개발도 유사하다.
생활코딩 이고잉 선생님께서 말씀 하셨지, 원리를 알면 암기를 안해도 된다! 그럼 뇌를 혹사시키지 않아도 되고 원리를 알면 빠르게 습득이 가능하다. 그리고 여기에 하나 더 얹자면, 어디에 쓰이는지 알아야 한다. (어디에 쓰이는지 알아야 하는 이유)
이건 달달 외우고 공부하기만 하면 되는 문제를 넘는다.
그리고 개발도 마찬가지로 직접 공부해야 한다. 음악도, 개발도 누가 떠먹여줄 수 없다. 공부는 자기주도학습이 안되어도 일정부분은 가능하겠지만 음악이나 개발은 그렇지 않다.
이런 의미에서 음악을 하면서 자기주도적으로 학습하고 필요한 것은 직접 찾아 나서는 습관이 개발 공부를 하면서도 큰 도움이 되었다.
2. 개발자의 소통: 오케스트라에서 하는 합주와 개발자들이 소통하는 방식은 비슷하다.
나는 개인적으로 개발자들과 개발에 대해 유머를 하고, 코드를 이야기 하는 것을 매우 좋아한다.
업무 얘기를 할 때 소통하는 것도 즐겁다. 업무에 온전히 몰입하여 서비스를 이야기하는 것도 좋다. 이건 음악할 때에도 느꼈던 감정인데 오케스트라에서 합주를 할 때 그렇다.
오케스트라 단원들은 모두 악보를 보고 말한다. 여기서 말한다는 음악으로 합주를 할 때를 이야기하는 것이다.
솔로 연주는 나만 생각하면 된다. 내가 제일 돋보여야하고 내 음색이 튀면 개성있어서 좋다. 그러나 오케스트라에서는 모두가 어우러져야 한다. 내 연주만 튀어서는 절대 안되고 동료들과 음정이 정확히 맞아야 한다. 때에 따라 내 동료가 돋보일 수 있도록 받쳐주기도 해야하고 우리 팀(트롬본)이 필두로 나가야하는 부분에서는 멋지게 활약해주어야 한다. 긴 음악 속에서 이런 다채로운 호흡이 오간다. 그렇게 좋은 음악을 만들어서 듣는 이에게 선사한다.
개발도 마찬가지다. 나만 돋보이고 나만 개발을 잘해서는 절대 좋은 서비스를 제공할 수 없다.
오케스트라 단원도, 개발자도 혼자 하는게 아니다. 팀원들과 어우러져서 함께 좋은 서비스를 사용자에게 줄 수 있어야 한다.
이 때 필요한게 소통인데 어떻게 보면 음악에서는 악보가 개발팀 문화와 코드의 컨벤션을 문서화한 내용으로 비유할 수 있겠다.
그래서 나는 합주를 하면서 소통을 배웠다. 남을 배려하고, 함께 어우러질 수 있도록 끊임없이 커뮤니케이션을 하는 것이다.
이는 개발자로 커리어를 쌓기 위해 학습하면서 내가 소통이 수월하고 즐거웠던 이유중 하나이다.
나에게 있어서 소통은 필수적이고 그만큼 좋은 결과물을 낼 수 있는 수단이다.
개발자로서 시작의 단계에서 느낀 모든 것
모든게 낯설고 어려웠다. 나는 그래도 HTML, CSS, Jquery를 알고 있고 위코드를 들어가기 전에 개인 공부를 했으니까 비교적 쉽겠지? 라고 생각한 나 자신이 정말 부끄럽다.
혼자 했던 개인 공부는 수준이 정말 낮았고 개발 공부의 세계는 깊고 넓었다. 지금 당장 자바스크립트도 익숙치 않은데 내 앞에는 타입스크립트부터 기본적인 CS지식, 타입스크립트부터 스벨트까지.. 거기다가 백엔드와 소통하려면 백엔드 지식도 어느정도 갖고 있어야 대화가 된다. 머리가 깨질 것 같았다. 하지만 이럴수록 내가 지금 당장 할 수 있는 것부터 차근차근 해내면 된다. 그러나 밀려드는 지식의 파도에 나는 해파리처럼 휩쓸릴 수 밖에 없었다.
내가 현업에서 퍼블리셔로 일할 때 시니어 백엔드 개발자분께 "자바스크립트가 너무 어려워요. 마스터 하려면 얼마나 걸릴까요?" 라는 (지금 생각하면 부끄러운 질문) 질문을 했었다. 그 때 그 분께서 이런 말씀을 해주셨다. "마스터할 수 없어요. 그냥 익숙해지는 것이지."
그 때 들었던 말을 표본삼아 이해가 되지 않아도 익숙해지기 위해 멈추지 않았다.
위코드에서 그렇게 생전 처음보는 문법들과 기술들을 익히면서 점점 두려움 보다는 설렘이 커졌다.
이제는 처음 보는 언어를 마주쳐도 두렵지 않다. 아니, 100% 두렵지 않다고는 할 수 없겠지만 전보다는 두려움보다 설렘이 더 크다.
내가 가보지 않은 길이 두려웠던 적도 있지만 개발 공부를 하면서 가보지 않은 길은 나를 성장시키는 무언가가 될 것이라는 확신조차 들게 했다. 시작 단계에서는 한 없이 작아지는 사람이었지만 이제는 모르는 것 앞에서도 위풍당당하게 "그럼 지금부터 배우면 되겠다." 라는 자신감을 갖게 됐다.
동기들과 함께하며 기를 수 있었던 협업과 소통 역량
전공인 동기들도 있고, 실력이 월등히 좋은 동기들도 있었지만 그럼에도 불구하고 우리는 같은 뜻을 갖고 온 사람들이라서 서로 소통하기에 어려움은 없었다.
들었을 때 모르는 단어가 있으면 서로 설명해주기도 했다. 코드카타 알고리즘 문제풀이를 하는 과정에서나 팀을 만들어 프로젝트를 진행할 때에도 개발이라는 업무는 혼자할 수 있는 일이 아니라 함께 완성해야하는 일이고 사람을 위해서 서비스를 만들기 위해 진행하는 일이기 때문에 "사람으로 시작해서 사람으로 끝난다"는 생각을 했던 것이다.
3개월 내내 붙어서 같은 마음을 가지고 다양한 학습을 하다보니 어떻게 말해야 내 의견이 팀원에게 잘 와닿는지, 어떻게 해야 협업하는데 수월한지에 대해서 많이 느끼게 되었다.
무조건 "이렇게 해요!"가 아니라 "이렇게 해보는건 어떠신가요? 제 의견은 이렇습니다." 라고 의견을 주고 받는 커뮤니케이션 능력은 더 좋은 결과물이 나올 수 있도록 하는 날렵한 도구로 발전되었다.
혼자 만드는게 아니라 함께 만드는 것이기 때문에 팀원으로서 우리가 정말 중요하게 여기는 것에 집중하여 결과물을 만들어내는 과정도 개발에 있어서 무엇에 더 집중해야하는지 알 수 있게된 경험이었다. 어느 하나 중요하지 않은 것은 없지만 그럼에도 불구하고 제한된 시간 내에서 어떻게 의견조율을 해서 팀원 모두가 중요하다고 여기는 것을 먼저 구현해낼 수 있는지 소통하는 과정이 가장 값졌다.
디자인적으로나, 클린코드 부분에서나 모두 중요하지만 일단 기능 구현을 목표로 한 뒤 여유있을 때 그 부분을 보강한 것이 좋았다.
한가지 문제에만 매몰되어 빠져나가지 못하고 애를 썼다면 팀원들과 프로젝트를 진행하면서 정말 구현해보고 싶은 기능들을 만들어보지 못했을 것이다. 가장 중요한 것부터 해내고 완성도를 높이는 것은 그만큼 중요했다. 이게 다 협업과 소통 역량을 키워서 그 정도 퀄리티를 낼 수 있었다고 생각한다.
나는 앞으로 3년 후에 개발자가 아닌 사람이 들어도 이해하기 쉬운 코드를 설명하는 개발자가 되고싶다.
인간과 컴퓨터 사이에서 소통하는 개발자가 꿈이다. 이 말인 즉슨 컴퓨터와 원활하게 소통해 문제를 해결해내고, 해결한 솔루션을 개발자가 아닌 사람도 쉽게 설명할 수 있는 사람이 되고자 하는 것이다.
어떤 영상에서 봤던 것 같다. 사람이 이해하기 쉬운 언어로 이야기하는 사람이 그것을 가장 깊이 이해하고 있다고 말이다. (영상을 찾으면 꼭 첨부해서 올리겠다, 정말 인상깊은 영상이었고 내 3년 후의 개발자 모습을 그리는데 도움을 줬다)
나는 그래서 내가 알고 있는 지식을 사람들이 쉽게 이해하도록 설명하고 싶다.
나는 기획자, 디자이너말고도 수 많은 사람들에게 내가 만든 기능을, 코드를 설명해야할 것이다. 때로는 설득시켜야할 것이다. 그럴 때 무작정 그들이 모르는 단어로 무장해서 물음표만 남는 의미없는 대화를 진행하기 보다는 서로의 분야에서 전문가인 우리가 원활히 소통하는 모습을 그리고 싶다. 나는 그럴 때 좋은 서비스가 나온다고 믿는다. 서로의 분야에서 전문가인 우리가 협력하려고 할 때 각자의 업무가 충분히 우리의 언어로 설명되고 이해될 때 큰 시너지를 발휘하게 될 것이다. 나는 그렇게 만들어진 "좋은" 서비스를 제공하고 싶다. 그 서비스가 모든 사람들에게 닿기를 바란다.
'기록 > 회고기록' 카테고리의 다른 글
신입 개발자 인사드립니다, 3개월 회고 (1) | 2022.09.25 |
---|---|
취업 회고록 (+FE 취업관련 링크 공유) (2) | 2022.07.06 |
위코드에서 느낀 3가지 (0) | 2022.03.08 |
위코드 기업협업 회고 (feat. 기업협업에서 배운 것) (2) | 2022.03.02 |
기록의 중요성 (a.k.a. 개발 블로그 더이상 미룰 수 없다) (2) | 2022.01.25 |