-
[Daily Note] 2022.02.13 개발자양성 과정을 수료하고 나서Note 2022. 2. 13. 13:39
대전 소재의 재단법인인 대덕인재개발원에서 2021년 6월부터 2022년 1월까지 전자정부 표준 프레임워크 풀 스택 개발자 양성과정을 수강하면서 참 많은 것을 배웠다.
면접에 합격하고 나서 기쁜 마음도 잠시 지난 몇년간 살아왔던 생활 패턴과는 다르게 생활해야 한다는 걱정과
불안한 마음이 컸다. 하지만, 처음했던 걱정과는 다르게 빠르게 적응했었고 이전의 나에게는 쉽게 찾아볼 수 없었던 활력과 자신감을 가지게 되었다.
웹 프로그래밍이라는 것을 전혀 알지도 못한채 개발원을 다니게 되었고, 매일매일이 나에게는 도전이었다.
이미 프로그래밍을 전공 하거나 개발원에 오기 전에 미리 공부를 했던 인원들이 꽤 많았기 때문에 그 사이에서 수업을 잘 따라가지 못하는 나 자신이 안타까웠고 자신감을 상실했었다.
'나는 반드시 개발자가 되어서 성공해야 하는데 이런 기초적인 수업도 못따라가서 어떡하지? 나는 이 기회가 마지막인데 프로그래밍이 나에게 적성이 맞지 않으면 어떡하지?'
이런 질문을 하루에도 몇 번씩 나에게 물었다. 이렇게 자신감을 잃고 두려워 하던 나에게 개발원에서 처음 본시험 성적은 아주 처참했다. 100점 만점에 21점..
나는 인생을 살아오면서 중, 고등학교 그리고 대학교 시절을 포함해서 단 한번도 못하는 학생 인적이 없었다. 비록 뛰어나게 공부를 잘하지는 않았지만 꾸준하게 중상위권에 자리를 차지하고 있었고, 고등학교 시절에도 반에서 10등 안에 드는 학생, 그리고 대학교 시절에도 4학년 때는 전공과목만을 수강했음에도 4.0을 넘겼다.
21점이라는 점수는 처음받아보는 점수였고 엄청난 좌절감에 휩싸였었다. 하지만 이런 나를 일으켜 세운 것은 바로 간절함과 객관적인 자기 평가였다. 지금 당장 내가 실력이 떨어지는 사람이라도 결코 포기할 수 없었고 나에게 대안은 없었다.
매일 오전 9시부터 밤 9시 ~ 10시까지 공부를 하면서 당일에 배운 수업 내용을 내 것으로 만들던 아니면 내가 죽던 끝장을 보자는 마음가짐으로 공부를 했다.
또한, 자기평가를 통해서 내가 실력이 부족한 사람이라는 것을 인정했다. 자기 합리화를 하지 않고
'나는 지금 실력이 부족한 사람이다. 실력을 향상 시키고 지금 이 힘든 순간을 극복하려면 수단과 방법을 가리지 않고 배워야 한다.'
용기를 내서 나 스스로의 실력을 평가하고 나서는, 이제 성장하는 일만 남아있었다. 담임선생님께 부탁해서 당시에 반에서 제일 잘하던 학생과 초급 프로젝트 때 같은 조가 되었고 괴롭힌다는 생각이 들 정도로 질문 폭탄을 퍼부었다.
비록 나보다 어린 학생이었지만 겸허한 자세를 가지고 그 학생의 실력을 존중하며 배웠다.
DAO란 무엇인지 service란 무엇인지 controller란 무엇인지.. 지금 생각해보면 정말 기본적인 것들이고 쉬운 것이지만
당시에 나에게는 엄청난 과제였다.
결국 초급 프로젝트를 마무리하고 새로워진 나를 발견할 수 있었다. 최하위권 학생이었던, 그리고 항상 다른 학생들에게 질문을 했던 내가 다른 사람들을 조금씩 알려주고 있었다. 이때를 기점으로 자신감을 갖기 시작했고 실력이 눈에 띌 정도로 성장했다고 자부할 수 있다.
중급 프로젝트 전에 시험을 다시봤는데 꽤 우수한 성적을 받을 수 있었다. 결국 중급프로젝트 전에는 담임선생님께 실력, 인성, 끈기 등을 인정받아서 PL의 역할도 제안받았었다. 다른 학생이 너무 PL을 하고싶어 했기 때문에 결과적으로는 양보를 했지만 그때의 성취감과 쾌감을 지금도 잊을 수가 없다.
이때가 개발원 교육과정 중간쯤 되는 시점이었고, 스스로에게 다시 한번 질문을 했다.
'내가 개발자라는 직업을 평생직업으로 삼을 수 있을까? 나는 프로그래밍에 흥미가 있고 평생 공부할 각오가 되어있는가?'
대답은 너무 쉬웠다. 자신 있게 누가 물어보던 그럴 수 있다고 대답할 수 있었다.
중, 고등학교 이후 대학에서 경영학과 행정학을 배웠다. 꽤 재밌었고 흥미가 있었지만 학교 공부 이외로 추가적인 공부를 하지는 않았다. 하지만 프로그래밍은 흥미가 있을 뿐만 아니라 내 삶을 윤택하게 만들고 나의 정신을 건강하게 만들었다고 해도 과언이 아니다.
프로그래밍을 내가 살아있음을 느끼게 했고, 내가 가슴을 뜨겁게 만들었고 단기적 목표, 중기적 목표, 그리고 장기적 목표를 세우게 만들어줬다. 처음으로 누군가에 의해 만들어진 목표가 아니라 나 스스로가 끝없는 고민 끝에 목표를 세우게 되었고 주도적으로 생각하고 움직이기 시작했다.
중급 프로젝트를 마무리하고 최종 프로젝트 때는 JPA, Vue.js와 같은 다양한 기술을 사용하면서 새로운 기술을 받아들이는데 거부감을 없앴고, 무엇보다도 참 공부할게 많다는 것을 깨달았다.
수료를 하고 나서 이제 초급 개발자로 현업에서 일을 하게 될 텐데, 나는 다시 한번 자기 평가를 했고 나에게 필요한 것은 무엇이고 부족한 부분은 무엇인지 생각해봤다.
첫째는, 개발자가 공급이 늘어나는 추세인 요즘, 양산형 개발자가 아니라 전문성을 갖추고 깊이 있는 프로그래밍 지식을 보유하고 싶다. 개발원에서는 8개월이라는 과정 동안 논리나 원리보다는 당장 개발을 할 수 있는 skill을 알려준다는 느낌을 받았다. 물론 짧은 기간 동안 학습을 시켜서 취직을 시켜야 하는 것을 목적으로 두고 있는 기관이기 때문에 어쩔 수 없지만, 나는 실력 있는 개발자로서 인정을 받고 싶었다. 그래서 코딩뿐만 아니라 웹 프로그래밍의 핵심 원리, 컴퓨터 공학을 공부하기로 결정했다.
예를 들어서 자료구조, Web Server와 WAS의 차이, 형상관리 버전의 종류, 다양한 디자인 패턴 등을 공부해서 내공 있는 개발자가 되고 싶다.
둘째는, 다양한 기술 스택이다. 개발원에서는 JAVA, RDB, Jquery, JSP, myBatis 등을 배웠다. 하지만 이것들 뿐만 아니라 다양한 기술을 배워보고 싶다. 배웠던 기술들을 등한시하는 것이 아니라, 다양한 기술을 사용해봄으로써 myBatis와 JPA의 차이가 무엇이가 무엇이 장단점이며 왜 공공 SI는 myBatis를 사용하고 설루션 개발이나 자체 서비스를 개발하는 회사는 JPA를 사용하는지, Jquery가 문법이 짧고 습득하기 쉬움에도 불구하고 왜 javascript가 중요한지..
이런 이유를 알고 차이점, 그리고 장단점을 명확하게 알고 기술을 사용하고 싶다.
셋 째는, 알고리즘이다. 현재 마음이 맞는 개발원 출신 동료들과 github을 통해서 형상관리를 하며 알고리즘 스터디를 진행하고 있다. 사실 알고리즘은 나에게 아킬레스건과 같은 것이었다.
한마디로 말하지만 나에게는 '단순히 어렵고 재미없는 것이었다.' 사실 웹 개발을 할 때 알고리즘은 웹 안에서 특정 기능을 개발하는 것이 아니라면 크게 필요 없다는 말을 들었다. 하지만 나는 그래도 프로그래밍을 하는 사람이라면 기본적인 알고리즘은 할 줄 알야아한다고 생각을 했고, 자료구조를 좀 더 깊게 공부하고 원래는 50줄을 써야 하는 코드를 20줄로 줄이는 즉 클린 코딩을 연습 하기 위해서 알고리즘 스터디를 시작하게 되었다.
현재, 동료들과 매일 프로그래머스에서 LV1, LV2 문제를 같이 풀고 풀이법을 공유하고 있다.
처음에는 그렇게 자신 없던 알고리즘이 지금은 문제 해결 과정이 너무 재밌고 해결을 했을 때의 쾌감이 너무 좋아서 매일 1~2문제씩 풀고 있다.
내가 가장 좋아하는 인용구는 '인내는 쓰고 그 열매는 달다'이다. 너무 유명하고 말이고 단순한 말이지만 이 한 문장이 내 인생철학을 담고 있다.
프로그래밍을 처음 배울 때도 그렇고 알고리즘을 처음 시작할 때도 그렇고, 그 과정은 고통스럽고 힘들었지만 실력이 상승하고 문제를 해결할 때의 열매는 너무나도 달았다.
이런 나의 인생철학은 앞으로 개발자로서 일하게 되면서도 항상 마음속에 가지고 있을 것이고 시련이 찾아올 때 다시 한번 되새길 것이다.
8개월 동안 교육받을 받으면서 참 많은 일이 있었고 많은 것을 배웠다. 하지만 여전히 공부해야 할 것은 너무 많고 나는 그 모든 것들을 받아들일 준비가 되어있다. 조만간 주니어 개발자로서 일을 하게 될 텐데 마치 항구에서 배가 처음 출항할 때 바다 너머에 무엇이 있는지 알 수는 없지만 앞으로 나아가듯이, 나는 모든 도전과 역경을 받아들일 준비가 되어있다.