제대로 개발을 배워보는게 어때?

JISU YANG·2022년 10월 19일
0

개발자가 된 이유

목록 보기
2/2

인생역전, 이제 당신의 것 입니다.

열심히 만든 서비스의 자금줄이 실패로 돌아가 약간의 상실감과 일상으로 돌아가려 하던 찰나, QA를 도와줬던 한 친구에게 연락이 왔다. 페이스북의 한 광고에 관해 이야기해주었다. 국비 지원을 받아 무료로 학원에서 개발자 과정을 훈련 받으며 생활비를 주는데 취업률 또한 엄청난 다소 의심할 여지가 많은 이야기였다.

며칠을 고민하다가 확실한 것만 생각해보기로 했다. 나는 직전 프로젝트에서 제대로 배워볼 기회가 없어 자유롭지 못했고 시간을 너무 낭비했다. 반신반의한 마음을 가지고 학원들을 알아보았다. 학원의 인지도, 교통편, 규모를 비교해서 몇 군데를 추린 후 전화 상담했다상담을 했다. 그중 한 곳만 알고 보니 큰 의미가 없었다고 하는 5문제의 테스트를 통과해야 참여할 수 있는 구조였는데 학원을 결정하는 데 큰 영향을 미쳤다.

통과하고 나서 알게 된 사실인데 나는 사실 iOS App를App을 개발하는 Swift를 배우고 싶었다. 모바일 웹의 애로사항을 너무 잘 알고 있었기 때문이다. 하지만 Swift를 배울 수 있는 과정은 없었고, 6개월이라는 기간 안에 전공자들과 함께 따라가는 게 쉽지 않을 거라며 내가 낯설지 않은 '웹 개발자 양성 및 빅데이터 분석' 과정을 권하셨고 나도 동의했다. 그리고 그 당시에는 영업이라고 생각이 들었지만, Java 단과반을 강력하게 추천하셨는데, 지금 돌이켜보아 그 결정을 하지 않았더라면 개발자의 길을 유지할 수 있었을까 생각된다.

귀인이 되어주신 단과반 강사님

긴장되는 마음으로 강의실로 들어서 자리에 앉았다. 강의가 시작되고 강사 소개를 하시는 도중 이미 인지부조화가 왔다. 컴퓨터 관련 종사하시는 분들은 감정 표현에 인색하고 딱딱하다는 나의 편견을 단번에 부수어 주었다. 오히려 수강생들 앞에서 조증이신 게 아니니까 하고아닌가 하고 의심될 정도였다. 이후 강의 내내 느꼈지만, 역사를 설민석 님에게 배우는 기분이었다. 강사님이 틀리거나 어려운 부분을 내가 질문하면 본인이 너무나 행복해하며 기뻐하셨다. 나도 덩달아 신이 날 수밖에 없었다.

그리고 강의 방식은 이런 식으로 이루어졌다. 바로 기억난 순간이 반복문에 대해 배울 때였는데, System. outSystem.out. println("Hello.println("Hello Java World"); 을World");를 10번을 작성하라고 하셔서 영문도 모른 채 작성했다. 그러시고는 해맑게 웃으시면서 사실, 줄을 복사하는 기능이 있다며 단축키를 알려주셨다. 이제 100번을 입력하라고 하셨다. 다들 황당해하거나벙찌거나 열심히 단축키를 눌렀다. 황당해한벙찐 사람들을 위해 다들 시작하자고 말씀하시더니, 농담이라고 하시면서 그래서 우리가 개발 언어를 배우는 것이라고 말씀하시며 그제야 for 문의for문의 사용법을 알려주셨다.

Java Universe

나는 합리적인 것을 제일 중요하게 생각한다. 그래서 왜 해야 하는지가 굉장히 중요하다. 그런데 왜 그래야 하는지, 개발 언어로 얼마나 편리해지는지를 알려주신 것이다. 변수의 타입에 대해 배울 때 '공간 = 값'이라는 개념을 많은 단과반 수강생들이 헷갈렸다수강생들이 햇갈려했다. 신발을 신발장이 아닌 음식을 놓는 프라이팬에 올리면 안 되듯이, 값들은 각자 그에 맞는 공간이 필요하다는 것을 여러 상황을 제스쳐와 함께 설명해주셨다. 개념이 머릿속에서 시각화된 그날, 나의 Java 세계관(Universe)은세계관(Universe)는 시작되었다. 그 이후에도 개념들이 헷갈리거나 이해가 안 되고 어려운 것이 생겼을 때 강사님을 따로 찾아가면 종종 "개발 언어도 결국 사람이 쓰는 언어이고, 언어는 텍스트가 아니야. 문화야. 느껴봐!"라고 하신 것을 보아 의도하신 일인가 싶다. 아직도 느끼는 것이지만 그렇게 구축된 세계관 안에서는 모든 것들이 일관적인 태도를 취한다. 다른 수강생분들에게 이런 것들을 순화하지 않고 이야기하면 나를 잡아, 변태라고 불렀다.

한 번은 프로젝트를 한다. 도저히프로젝트를 하다. 도저히 해결되지 않아 온몸을 비틀며 괴로워하고 있었다. 그때 강사님께서 전부를 향해 말씀해주셨다. "여러분 지금 막막하고 역경이 닥친 것 같죠. 저는 그럴 때 기뻐요. 반드시 성장이 온다는 신호이거든요!" 이 말씀은 개발이 한정되지개발을 한정되지 않고 나의 인생에 많은 영향을 미쳤다.

나의 되고 싶은 롤모델 개발자이셨고 영향을 많이 받은 만큼 많이 융화되었다고 생각했지만, 국비 과정 기간에 우연히 계단에서 마주쳤을 때 "~이런 프로젝트를 하고 있습니다. 너무 어렵네요."라는어렵네요." 라는 나의 푸념에 "아우 너무 맛있겠다. 강사만 아니면 저도 먹고 싶네요!"라는 대답을 하셨고, "Java가요???"라고 되물을 수밖에 없었다. 나는 아직 한참 멀었나 보다.

부족한 배경지식

한창 개발이 너무 즐거웠다. 집에 가는 길에도 신호등을 보아도, 지하철을 보아도 객체로 보였고, Class로 만든다면 어떤 Method 들로Method들로 Logic을 구성할까 상상했다. 그러다 MVC 모델로 펼쳐보기도 했다.

Java 단과반 과정이 끝나고 국비 과정이 시작되는 날. 다시 한번 나에게 인지부조화가 왔다. 다른 행성에 온 것 같았다. 강사님 한 마디에 내가 모르는 용어가 2개씩 나왔고, 흐름을 놓치면 다른 내용으로 변해있었다. 정신을 차리고 방법이 필요하다고 생각해 당장 알 수 없는 용어와 개념들은 구글 워드에 다 적어두었고, 최대한 맥락을 이해하려고 노력했다. 그날 교육이 다 끝난 후에 작은 자습실에서 적어두었던 것들을 열심히 알아보고 이해하고 설명을 작성하였다. 집에 오는 버스와 지하철에서 정리해놓은 것을 보고 복습했다.

현실적으로 6개월이라는 기간 안에 커리큘럼을 전부 진행하려면 어쩔 수 없는 부분이기도 했다. 막히는 부분이 적어야 하나라도 덜 시간을 빼앗겨 연쇄적으로 놓치지 않을 수 있었다. 포기할 것이 아니면, 더 부단히 노력하는 수밖에. 과정 시작 일주일 만에 앞으로 해야 할 전체적인 흐름에 대한 핵심들을 미리 알게 되었는데, 따라가기 벅차 집에 가는 버스에서 창밖을 보며 참 슬퍼했던 기억이 난다.

알려줘서 나준다

다행인지는 모르겠지만 그렇게 과정을 힘들어하는 사람이 나뿐만은 아니었다. 끝나고 남아서 공부하는 인원들이 하나둘씩 늘어나다가 결국 작은 자습실로는 인원을 감당할 수 없어 학원 근처 카페로 옮기게 되었다. 그리고 주로 질문들에 대한 대답을 내가 해 줄 수 있어서 하다 보니 내가 공부할 시간이 줄어들어 고민이 되었다.

결정을 내렸다. 모든 질문에 대답해주기보다는 고민의 시간이 더 필요해 보이는 분은 그렇게 말씀드리고 넘어갔다. 그리고 질문을 받으며 내가 모르는 부분이 있기도 했고, 그것을 이해할 수 있도록 쉽게 설명하는 것은 다른 수준의 이해도를 요구했기 때문에, 나 또한 도움이 된다는 생각으로 더 많이 고민하며 공부하게 되었다.

3개월 정도 지난 후에 강사님과의 면담에서 "수강생들이 내가(강사가) 아닌 너에게 질문을 구하는 것이 좋게 보이지도 않고, 너한테 도움이 안 된다. 이해가 안 된다."라고 말씀을 해주셨는데 어떤 의도에서 하신 말인지는 알지만, 같이 고생하며 공부한 시간이 떠올라 화도 나고, "그렇지 않다고, 오히려 도움이 된다고" 떳떳하게 말하고 싶은 오기도 생겼다.

더 큰 책임감을 느끼고 강사님의 이쁨을 받던 전공자분들과 비슷한 수준이 되려고 노력했고, 더 가까이 지내려고 노력했다. 서로 모르는 것들과 재밌는 문제가 발생했을 때 공유도 했다. 강사님께도 인정을 해주셨고 과정 수료식에서 선행상을 받게 되었다.

벽이 아니라 계단이라고요?

Java와 HTML/CSS, JavaScript를 배우고 나서 DB를 마주했을 때 지금까지 내가 배웠던 개발 언어와 너무 다르다 보니 이해가 쉽지 않았다. 특히 이론적인 부분도 그러했다. 객체 지향적이지객체지향적이지 못한 RDBMS만의 성향이 또 있었다. 그리고 대표적으로 abatisiBATIS, Batista를MyBatis를 처음 배울 때가 생각이 나는데, 도무지 머릿속에 그림이 그려지지 않아 황당해했었던 순간이 몇 번 있다. "그냥 그렇게 쓰면 돼."라고돼." 라고 생각하고 넘어가는 걸 참 못 했다. 어째서, 왜 그래도 되는지가 나에겐 너무 중요했던 것 같다. 그래서 계단의 높이가 너무 높게 느껴졌다. 좀 오래 걸렸지만, 완전히 개념적인 분리를 했고, JDBC부터 흐름에 대한 부분을 다시 이해를 완벽히 이해하고 나서 주로 사용하게 될 부분에 집중해서 알아보았던 것 같다.

다른 사람은 쉽게 넘어갔는데 나는 그러지 못한 모습을 보고 있을 때면 개발적인 재능에 대한 의심이 생기곤 했다. 괴로워하며 과정을 계속 따라갈 수 있을지 걱정이 들곤 했는데, 그때 알게 된 것이 예를 들어, 4레벨을 내가 이해하지 못하더라도 5레벨을 경험하면서 4레벨의 이해도 따라오는 순간이 있다는 것이었다. 이런 경험이 반복된 후부터는 다행히도 낙관적인 마인드를 갖기가 좀 수월해졌다.

PM으로서의 역량

대망의 최종 프로젝트는 원래 기한이 30일 정도였다. 강의와 병행해서 진행됐는데, 인원이 나까지 6명이었다. 전부 실력이 천차만별인 0년 차 개발자로 구성이 되어 PM으로서 어려운 부분이 많았다. 투표를 많이 활용하여 의견에 대한 충돌은 다소 많지. 않았다. 추가로 확실한 근거가 있는 주장에 대해서는 더 설득과 권유로 이어졌다. 이번 경험으로 되돌아보면 아래의 부족한 점들을 깨달을 수 있었다.

  1. 각자 자신이 어느 정도 역량을 낼 수 있는지 몰랐었고, 최대한 지금까지 봐온 모습으로 담당 기능을 추천하고 배정했다.
  2. 담당 기능에 대해 어려움을 겪거나 기한에 대한 문제가 있었을 때 어떻게 할지 미리 고민해보지 못했다.
  3. 프로젝트가 포트폴리오로 사용되어야 했기 때문에 인원이 많은 만큼 스케일을 늘려야 했다.
  4. 서류가 완성도가 높으면 그렇게 개발로 이어질 줄 알았다.
  5. GitHub에Github에 대해 초반에 시간이 들더라도 강제했어야 했다.

결론적으로 아쉽지만 설정한 기간을 계속 못 맞추고 취업 준비로 이탈자까지 발생하는 상황이라 NAWABNAWA 프로젝트는 미완성으로 종료하게 되었다.

profile
Junior Back-End Developer

0개의 댓글