본문 바로가기

[회고] 2020년 상반기 - 사회복지 전공자의 개발 공부

 

들어가며

프로그래밍에 대한 막연한 두려움을 갖고 있었습니다. 두려움을 극복하고, 지금까지 도전하고 있는 제 삶이 누군가에게 힘이 되었으면 하는 마음으로 글을 적습니다.

 

 

 

 

 


 

 

 

 

 

1-2월 스파르타코딩클럽과 함께한 첫 시작

‘스파르타코딩클럽은 어떤 기관인가’

스파르타코딩클럽에서 처음으로 프로그래밍을 공부했습니다. 스파르타코딩클럽이란, 8주간의 기간 동안 자신이 원하는 프로젝트 하나를 개발하는 것을 목표로 프론트, 백 앤드 지식을 공부하는 부트캠프입니다. 매주 토요일 1시부터 7시까지 말 그대로 스파르타식 강의를 들을 수 있었습니다. 강의를 듣고, 매주 숙제를 해결하는 식으로 프로그램이 운영됐습니다. 프로그래밍은 스스로 만들고 싶은 서비스를 개발해보고, 궁금한 부분이 있으면 그 부분을 공부하는 것이 옳다고 생각했습니다. 스파르타코딩클럽은 이 신념에 부합한다고 생각하여 프로그램에 참여했습니다.

 

‘스파르타코딩클럽에서 무엇을 배웠는가’

HTML, CSS, JS, Python, mongoDB, Git, Github, AWS를 활용해서 어떻게 개발을 할 수 있는지 배웠습니다. 2 달이라는 시간 동안 각 분야에 맞는 기초적인 지식을 공부했습니다. 스파르타코딩클럽은 단순 지식만을 공부하는 것이 아니라, 공부한 지식을 바탕으로 토이 프로젝트를 만들어가면서, 프로그래밍 기초 실력을 키울 수 있는 수업을 진행했습니다. 매일 기초지식을 공부하면서 주어진 숙제를 해결하기 위해 노력했습니다.

 

 

‘개발자의 바람직한 태도란 무엇인가’

스파르타코딩클럽은‘삽질 정신’을 중요하게 여겼습니다. 모르는 것이 있으면 모든 정답은 구글에 있다는 명언을 들을 수 있었습니다. 저는 현업에서 일하고 있는 개발자라면, 모든 것을 알고 있어야 한다고 생각했습니다. 하지만 잘못된 생각이었습니다. 튜터님들도 모르는 것이 당연히 있었습니다. 이 부분에 대해서 구글링을 통해 알아가는 것을 보면서, 용기를 얻었습니다. 모를 수 있지만, 모르는 것을 최대한 빠르게 알아가야 하는 것이 개발자가 해야 할 일이라는 생각을 할 수 있었습니다.

 

‘사이드 프로젝트를 개발하기 위해’

기초적인 지식을 배우면서 이제는 사이드 프로젝트를 개발하기 위해 노력했습니다. 튜터님에게 먼저 기획한 프로젝트를 개발하기 위해서는 어떤 지식이 필요한가 물었습니다. 사이드 프로젝트 개발을 위해서는 자바스크립트에 대한 깊은 이해가 필요하다는 이야기를 들었습니다. react, node.js를 활용하여 프로젝트를 개발하는 것을 추천해주셨고, 지금까지 배운 것을 토대로 개발하기 위해서는 다른 사이드 프로젝트를 진행하는 것을 추천받았습니다. 욕심이 났습니다. 다른 토이 프로젝트를 기획하는 것이 아니라, 미리 기획한 프로젝트를 개발하고 싶었습니다. 이를 위해 스파르타코딩클럽에서 배운 것이 아닌, 자바스크립트에 대해 새롭게 공부를 시작했습니다.

 

 

3-6월 노마드코더의 시작

‘노마드코더를 접하고’

저는 SNS를 자기 계발 용도로 활용합니다. 프로그래밍과 관련된 모든 SNS 채널에 좋아요를 누르고, 정보를 받아봅니다. SNS를 통해노마드코더의 바닐라 자바스크립트 광고를 볼 수 있었습니다. 바닐라 자바스크립트로 원하는 기능을 만들 수 있어야 한다는 영상을 보면서, 훗날 js로 프로젝트를 개발하기 위해서는 바닐라 자바스크립트를 배워야겠다고 생각했습니다. 그래서 스파더타코딩클럽에서 배웠던 jQuery를 그만두고 바닐라 자바스크립트부터 공부하기 시작했습니다.

 

 

‘바닐라 자바스크립트’ Momentum Todolist Clone

JS는 쉽지 않았습니다. momentum을 클론코딩 하면서, DOM의 개념에 대해 익혔고, 자바스크립트의 구동원리에 대해 배울 수 있었습니다. jQuery에 비해 복잡한 건 사실이었습니다. 하지만 어렵게 공부할수록 머릿속에 더 뚜렷이 남는다고 생각합니다. 포기하지 않고 노력했습니다.

그리고 바닐라 자바스크립트를 제대로 배운다면, 앞으로 react와 node.js에 대해서 더 잘 배울 수 있을 것이라고 생각했습니다. 결국, 나만의 momentum을 완성했고, 처음으로 구동하는 웹서비스를 만들어볼 수 있었습니다. 그때 느꼈던 성취감은 이루 말할 수 없이 기뻤습니다.

 

‘클론 코딩의 중요성’ Youtube Clone

이제 JS의 기본을 배웠으니, 유튜브 클론 코딩 강의를 들으면서, 백 앤드, 프론트앤드 모두 js로 개발할 수 있는 사람이 되고 싶었습니다. 강의를 듣기만 한다면, 기획했던 사이드 프로젝트를 개발할 수 있다고 생각했습니다. 하지만 내용 자체가 굉장히 어려워서 공부하는데 시간이 오래 걸렸습니다. 똑똑하지 못해서, 강의 하나를 들어도, 이 강의를 이해하기 위해 강의시간 몇 배의 시간이 필요했습니다.

3번을 반복해서 강의를 수강해도 익숙해지기보다 더 어렵게 느껴졌습니다. 강의가 시간이 갈수록 왜 어렵게 느껴질까 생각했습니다. 그러다 문득 니콜라스의 모습을 보고 깨달았습니다. 니콜라스는 MVC 패턴 중 view 부분을 HTML, CSS 코드를 대부분을 바로바로 머릿속에서 적었습니다. 어쩌면, HTML, CSS의 기초가 없어서 공부하는데 시간이 오래 걸리는 것은 아니었을까 하는 생각이 들었습니다. 작은 HTML, CSS 코드를 짜려고 해도 원리를 이해하려고 하기보다, 재빨리 정답을 찾아가려는 공부를 하다 보니, 지식의 휘발성이 강했구나 생각할 수 있었습니다.

뼈대가 튼튼하지 못하면, 건물은 흔들립니다. 개발자도 똑같다고 생각했습니다. 개발의 뼈대인 HTML, CSS 공부부터 제대로 공부해서, 더 나은 서비스를 개발할 수 있는 사람이 되어야겠다고 생각했습니다. 그 즉시 유튜브 클론 코딩 강의를 그만두고 HTML, CSS 공부부터 새롭게 다시 시작했습니다.

 

 

‘기초가 없으면 나아갈 수 없다’ Kakao Clone

만약 코딩공부를 처음 시작했다면, 이 수업을 들었을 걸 하면서 후회를 했던 강의였습니다. 2주간의 코딩 챌린지를 통해 매일 HTML, CSS를 활용한 작업을 진행했습니다. 그 과정에서 자주 쓰이는 코드들이 익숙해졌고, 그 코드들을 바탕으로 스스로 코드를 더 이상의는 구글링 없이 설계할 수 있었습니다. 예전에는 HTML 한 줄을 적기 위해 구글에 많은 시간을 썼다면, 이제는 구글에 검색하지 않고도 많은 코드를 작성할 수 있었습니다. 수업을 듣고, 훗날 개발자가 되기 위해서 내가 놓치고 있는 것은 없었을까? 생각했습니다. 언젠간 많은 팀원과 함께 협업을 할 텐데, 그때 사용하는 기술은 무엇이 있을까? 알아보는 중에 git을 알 수 있었습니다.

 

 

‘협업을 할 수 있는 개발자로 성장하기 위해’ git & github

많은 개발자의 글을 보면서 개발자로서 일을 어떻게 하면 더 잘할 수 있을까 생각하는 걸 좋아합니다. 많은 글을 보면서, 개발자는 다른 개발자와의 협업을 위해 버전 관리를 잘해야 한다는 것을 배웠습니다. 이를 위해서는 미리 이러한 부분들을 잘 쓸 수 있어야 한다고 생각했습니다. 마침 인프런에서 git에 대한 좋은 강의가 있었고, 강의를 들으면서 공부했습니다. git의 정의부터, 협업을 위해서 git이 왜 필요한지, git의 커맨드는 무엇이 있는지, 다양한 사례들을 바탕으로 공부했습니다. 공부를 하면서, 나도 1일 1 커밋을 통해 꾸준하게 개발 공부를 해야겠다는 생각을 할 수 있었습니다.

 

 

마치며

많은 시행착오가 있었습니다. 먼 길을 돌고 돌아온 기분입니다. 하지만 이것 하나만큼은 명확하게 생각할 수 있었습니다. 기초가 튼튼한 개발자가 되어야 한다는 것. 더 이상 비전공자라는 타이틀을 달고 싶지 않습니다. 전공자보다 더 집중해서 공부하고, 개발한다면 더 나은 성장을 할 수 있다는 믿음을 갖고 있습니다. 누구보다 더 치열하게 살아가겠습니다. 비록 머리가 똑똑하지는 않더라도, 누구보다 노력은 잘할 수 있다고 믿습니다. 정진하겠습니다.