비전공자, 노베이스에서 시작, 1년간 교육을 받으며 공식문서를 보며 가벼운 프로젝트를 거뜬히 만들 정도로 코딩 실력이 엄청 늘었다고 느꼈지만, 현업 개발자로 뛰어들기에 1년은 짧은 시간이었다. __개발자로써 어떻게 성장__ 해야하는지 방향성을 잡지 않은 채 1년 동안 빠듯한 커리큘럼에 끌려다니며 하루종일 코딩만 했다. 의욕은 넘쳐서 짜투리 시간마다 알고리즘을 주구장창 풀었지만 이것만으로 개발자가 될 수 없었다. 방향성을 잡기위해 지난 1년을 되돌아보며 문제점에 대해 생각해보니 기술 블로그를 만들기부터 시작해야겠다는 결론에 도달하였다.
우선, 방향성을 잃지 않도록 개선해야 할 문제점들을 정리해두기로 했다.
{: .bottomless }
### 1. 직무 이해
무작정 웹을 가르쳐주니 배우게 되었다. 웹을 배우고 프로젝트를 진행하며 프론트엔드에 흥미를 느끼게 되었지만 프론트엔드 개발자가 하는 일을 "페이지 만드는 개발자" 정도로 이해하고 있었다. 프로젝트를 할 때도 자연스레 프론트엔드를 맡은 사람이 프론트엔드 개발자가 하는 일 뿐만 아니라 구체적인 서비스의 흐름, 디자인까지 담당하였다. 그래서인지 프론트엔드 개발자와 퍼블리셔, 그리고 퍼블리셔와 웹디자이너가 __하는 일__ 이 무엇인지 혼란이 왔다. 이제는 프론트 개발자로 몇군데 면접을 보고 다른 개발자들이 정리해둔 걸 읽고나서 조금씩 이해하게 되었다만 더 빨리 알았다면 방향을 빨리 잡을 수 있지 않았을까 싶다.
비전공자는 학습하기 쉬운 python, vue.js, django를 배웠다. 다른 기술스택(java, Servlet, JSP, Mybatis) 을 배운 전공자들과 함께 프로젝트를 진행하며 가끔 무슨 이야기를 하는지 알아듣기 어려운 경우가 있었다. `django`는 사용자인증, admin페이지, orm 등 기본적으로 제공하는 기능이 많아 __편리__ 하였지만, 직접 기능을 만든 적이 없었기에 정확한 __동작 원리__ 를 이해하지 못하고 넘어가게 되었다. `vue.js`는 주로 vue-cli를 사용하여 똑같이 __동작 원리__ 에 대해 모르는 것이 많다는 것을 알게 되었다. 이는 코딩을 시작할 때 머뭇거리게 되는 이유이므로 __동작 원리__ 를 큰 틀로 삼아 빠르게 시작할 수 있도록 정리할 예정이다.
{::options parse_block_html="true" /}
[# 웹개발자](#to_be_continue)
[# 직무이해](#to_be_continue)
[# Web](#to_be_continue)
[# 동작원리](#to_be_continue)
[# 기술스택](#to_be_continue)
{::options parse_block_html="false" /}
### 2. 지식 공유
코딩하는 법을 위주로 학습하다보니 __IT 지식__ 이 얕았다. 직무 면접에서 받은 질문들에 대해 어렴풋이 알고 있었지만 정리해서 간단명료하게 말하기 어려웠다. 기술 블로그에 정리해보며 아는 것과 모르는 것을 파악하고자 한다. 되도록 코딩을 전혀 모르는 사람이 읽어도 이해할 수 있도록 쉽게 쓰려고 노력할 것이다. 내 블로그 글을 읽는 사람들이 나처럼 헤매지 않았으면 좋겠다.
{::options parse_block_html="true" /}
[# interview](#to_be_continue)
[# 기술블로그]({{ site.baseurl }}/tags/기술블로그.html)
[# 개념](#to_be_continue)
{::options parse_block_html="false" /}
### 3. 코드 리뷰
팀프로젝트를 비교적 소수인 5~6명의 팀원들과 함께 했기에 크게 꼬이는 부분도 없었고, 다른 팀원의 코드를 수정해야하거나 이어받아 할 때 코드가 복잡해도 대화로 충분히 해결할 수 있었다. 프로젝트 기간도 짧았기에 더욱 __리팩토링__ 을 해야한다는 생각을 하지 못했다. 하지만 현업에서는 코드가 훨씬 복잡하고 수정하기 어렵기 때문에 __리팩토링__ 작업은 필수적으로 진행되어야 한다는 사실을 알게 되었다.
알고리즘 문제를 풀 때도 혼자 끙끙대며 문제를 푸는 것을 목표로 삼다보니 코드 리뷰를 소홀히 했다. 문제를 맞추는데만 집중하다보니 당연히 효율성에서 점수가 낮게 나왔다. 점점 더 많은 문제를 접할수록 문제를 풀고난 뒤 다른 사람들의 코드를 보며 더 효율적인 코드 에 대해 고민해볼 필요성을 느끼게 되었다. __최적화__ 과정은 대용량 데이터를 다루는 웹에서 꼭 필요한 과정으로 이를 잘 공부하여 개발자로서 나의 강점이 될거라 기대한다.
{::options parse_block_html="true" /}
[# 클린코드](#to_be_continue)
[# 코드리뷰](#to_be_continue)
[# 최적화](#to_be_continue)
{::options parse_block_html="false" /}
'현업에 가서 내가 뭘 할 수 있을까'라는 의문에서 시작된 생각이 앞으로 나아갈 방향이 되고 있다. 코딩이 좋아서 시작한만큼 현업에서도 IT개발자로 잘 해낼 수 있도록 탄탄한 기초를 다지고 싶다. 부족하다고 느낀 부분에 대해 처음부터 다시 정리해보며 놓친 부분을 내 것으로 만드는 것이 기술 블로그의 목표이다. 취업 준비 기간동안 꾸준히 포스팅하고 더 많이 학습하면 좋은 개발자가 되기위한 습관이 생길 거라 확신한다.
프로젝트를 하다 어려움에 직면하거나 궁금증이 생길 때 먼저 같은 고민을 했던 개발자분들께서 기술 블로그를 운영해주셔서 많은 도움을 받았다. 나 또한 기술 블로그를 운영하며 누군가에게 새로운 지식을 알려주었으면 하는 바램이다.
__잘못된 내용이 있거나 조언이 있다면 언제든지 환영입니다^.^__