블로그 다시 시작쓰


11월 마지막으로 this에 관한 글을 작성하고 약 4개월 동안 블로그를 방치했다! 4개월 동안 참 많은 일이 있었다. 처음으로 알고리즘 공부를 해봤고, 인터뷰도 봤고, 미국도 다녀왔다. 그리고 가장 중요한 이벤트인! 개발자로서는 처음으로 일을 시작하게 되었다. 자바스크립트 공부를 시작한 작년 4월부터 올해 4월까지의 1년을 간단히 정리해보았다.

프로그래밍 입문

2019년 초, 마크업 엔지니어링 일이 익숙해지기 시작하면서 고민이 시작되었다. 같이 일을 했던 디자이너분은 더 깊이 공부하고 알고 싶은 분야가 디자인인지 개발인지를 정해야 한다고 하셨다. 여행 회사에 다니다 그만두고 HTML, CSS부터 공부하기 시작한 이유도 무언가를 내 손으로 만들어보고 싶어서였다. 디자인과 개발을 같이 할 수는 없는 건가? 그 당시 내가 내린 결론은, 어차피 내가 만들어서 내가 쓸 거 디자인이 구려도 어쩔 수 없고 개발을 공부해보자! 였다. 잠시 마크업 엔지니어링 일은 멈추고 혼자 공부하는 시간을 갖기로 했다.

헤맴의 시작..

혼자 개발 공부를 시작한다는 무모한 결정을 내리고 나니, 망망대해에 혼자 떠 있는 기분이었다. 무작정 개발 공부라니 너무 광범위해 보였고 나는 정신을 잃고 어디선가 주워들은 한국인은 자바라는 말에 자바를 공부하기 시작했다.. 네이버에서 진행한 자바 강의를 한참(2주) 듣다 보니 내가 처음에 개발하고 싶어했던 이유를 생각해보게 됐다. 화면에서 일어나는 이벤트를 내 손으로 만들어보고 싶다는 생각에 자바가 아닌 자바스크립트 공부를 시작했다!

예전에 개발의 ㄱ도 모를 때 같은 회사 다니던 개발자분에게 자바 = 자바스크립트 아니냐고 했다가 욕먹었던 기억이 난다.

자바스크립트 공부의 시작..

1년 정도 지난 지금 생각해보면 자바스크립트로 개발 공부를 시작하게 돼서 얼마나 다행인지 모르겠다! 다른 언어를 잘 아는 편은 아니지만, 자바스크립트는 참 많은걸 할 수 있는 기특한 녀석인 것 같다.. 아름다워. 나는 주변에 조언을 구할 수 있는 프론트 엔드 개발자가 없었기 때문에 커뮤니티를 많이 살펴봤다. 그 당시 핫한 키워드는 리액트, , 앵귤러 등 자바스크립트 라이브러리였다. 내가 아무리 핫한걸 좋아한다고 해도 자바스크립트의 기본도 모른 채 바로 자바스크립트 라이브러리를 사용할 수는 없다는 생각이 들었다. (하지만 이 블로그는 바닐라 자바스크립트도 잘 모를 때 리액트로 만들어서 엉망이다) 그래서 자바스크립트 공부를 하기 시작했다. 우선 핫하다는 코뿔소 책을 사서 매일 같이 읽었던 것 같다. 두 번 정도 읽을 때는 내가 한국어를 읽는 건지 코뿔소 어를 읽는 건지 알 수 없었지만 계속해서 무언가를 만들어보고 이때는 이 메서드를 써볼까? 라는 고민을 하면서 어느 정도는 책을 이해하게 됐다. 그렇게 인터넷과 책의 도움을 받아 가며 바닐라 자바스크립트로 네 개의 웹 앱을 만들어보았다.

알고리즘 공부를 하다

그렇게 바닐라 자바스크립트 공부를 하면서 혼자 간단한 웹 앱을 만들어보는 일은 너무나 매력적이고 재밌었다! 하지만 언제까지고 이런 식으로 만족할 수는 없다는 생각이 들었고 혼자서 공부하는 것에는 한계가 있음을 느꼈다. 그래서 작년 가을쯤엔 회사에 들어가야겠다는 생각이 들었고 회사에 들어가기 위해서는 알고리즘 공부를 해야 한다는 생각이 들었다. 개발자를 상대로 알고리즘 테스트를 하는 이유가 분명 있을 것이고 나는 그 이유를 알고 싶어서 알고리즘 공부를 시작했다. 당시에만 해도 나는 프론트 엔드 개발자가 왜 알고리즘을 알아야 하지? 라는 생각을 했다. 알고리즘 테스트의 해설은 대부분 파이썬과 자바로 작성되어 있었고, 자바스크립트로 작성된 해설은 찾기 어려웠다. (내가 못 찾았을 확률 99%) 하지만 알고리즘을 공부하면서 자바스크립트의 문법을 더 잘 알게 된 것 같다. 하지만! 내가 한 알고리즘 공부는 빙산의 일각...

내가 도움 받은 알고리즘 공부 자료

나는 CS Dojo의 Coding Interview Questions and Answers 유튜브 강의와 Stephen Grider의 The Coding Interview Bootcamp: Algorithms + Data Structures Udemy 강의, Gayle Laakmann McDowell의 CRACKING the CODING INTERVIEW 책을 보며 공부했다.

CS Dojo는 일단 설명을 너무 간단히 잘한다. 그의 설명은 1분 만에 끝나는데 사실 나는 이해하고 문제를 푸는 데 1시간이 걸렸다! 위의 목록에서는 Stephen Grider의 강의가 자바스크립트로 진행되기 때문에 나처럼 다른 언어 해설을 자바스크립트로 번역해서 풀기 어려운 사람은 딱 좋은 것 같다. 그리고 Cracking the Coding Interview는 사실 핫하다고 해서 샀다. 이제 다시 조금씩 읽어봐야지..

그리고..

알고리즘 공부를 하면서 자료구조에 대해서도 (조금) 알게 되면서 Computer Science 기초지식이 필요하다는 생각이 간절하게 들었다. 그리고 나의 사랑 Carrie Anne을 만났는데.. 그녀는 정말 짱이다. Crash Course 의 Computer Science코스는 상 줘야 된다. 이 코스를 통해서 컴퓨터의 역사와 네트워크 작동에 대해서 알게 됐고 Computer Science 기초지식은 재미없을 거라는 내 생각이 바뀌게 됐다. Computer Science 기초 지식에 대한 좋은 책이 있으면 누가 추천을 좀 해주세요.. 감사히 구매해서 읽겠습니다.

알고리즘과 컴퓨터 과학 지식에 관한 공부는 이제 막 발걸음을 내딛으려는 수준이다. 계속해서 조금씩 공부하고 싶다.

일을 시작하게 되다

그렇게 작년을 보내고 올해 3월 중순부터 개발자로서는 처음으로 일을 시작하게 됐다! 너무 행복한 하루하루를 보내고 있다. 큰 규모의 개발팀은 아니지만 일을 시작하고 나서 2주간 배운 것들이 내가 몇 개월간 혼자서 공부한 것과 비슷하다. 모르는 게 생겼을 때 물어볼 수 있는 동료들이 생기다니.. 너무 감사해서 눈물이 나올 것 같다. 또 인생 처음으로 사수님이 생겼다! 혼자서 간단한 웹 앱만 만들어보다가 다른 개발자분들과 일하게 되니 꿀팁도 매일 같이 얻게 되고, 어떻게 git으로 협업을 해야 하는지도 알게 되고, 그냥 모든 게 다 새롭다! 모든 게 새로운 만큼 나는 모든 것에 다 서툴고 부족함을 많이 느낀다. 사수님은 모르는 걸 모른다고 말하는 게 중요하다고 말씀하셨으니 앞으로 열심히 모르는 걸 모른다고 말하고 아는 게 모르는 것보다 많아지는 날이 오기를 바라본다.. 그래서 나도 팀에 도움이 되는 개발자가 될 수 있기를!!

그래서 앞으로

새로운 지식을 받아들이는 일이 많아진 만큼 받아들인 일을 잘 저장해서 내 것으로 만드는 것이 중요하다고 생각한다. 일주일에 한 번씩 그 주에 새로 알게 된 것이나 공부한 것을 블로그에 기록하려고 한다. 중요한 개념을 모른다고 해서 친절히 설명을 들었는데 다음에 까먹어버리면 그거는.. 이제 조금 슬픈 일이니까 그런 일이 없도록 미연에 방지해보자. 또 작년 초 개츠비 튜토리얼을 보며 ReactGraphQL로 개발새발 만든 이 블로그도 제대로 다시 만들어 보고 싶다. 글이 많아질 만큼 페이지네이션도 구현하고 싶고, 일을 리액트로 하는 만큼 배운 지식을 잘 반영해서 새로운 기능들도 이것저것 추가하고 싶은것이 많다! 자바스크립트 공부도 꾸준히 해서 문법 틀리는 일은 없도록 하고 싶고, 알고리즘 공부는 취미처럼 꾸준히 하고 싶다. 리액트로 토이 프로젝트를 해보고도 싶고.. 개인적으로 2020년에는 참 재밌는 일이 많을 것 같아서 행복하다.

정리해보면 그래서 앞으로

  • 블로그에 1주일에 1번씩 글 쓰기 (또는 2주..)
  • 블로그 리뉴얼
  • 자바스크립트, 알고리즘 공부
  • 리액트 토이 프로젝트

위의 일들을 하는 게 또 다른 1년의 목표가 될 것 같다.

마무리

초등학생 때 오빠를 따라 스타크래프트를 하고는 했었다. 스타크래프트에는black sheep wall이라는 치트키가 있다. 나는 가끔씩 이 치트키를 내 인생에도 쓸 수 있으면 좋겠다는 생각을 하곤 한다. 이 치트키를 쓰면 플레이어가 가봐야만 알 수 있는 전 맵의 시야가 가보지 않고도 밝혀진다. 내가 가보지 않은 길은 어떻게 생긴지 알 수 없다. 내가 아무리 삽질을 해도 이 삽질이 의미있는 삽질인지 없는 삽질인지는 꼭 끝을 봐야 알 수 있다. 모든 삽질이 의미가 있다기에는 삽질하면서 날린 시간이 너무 길면 그건 또 그거대로 손해지 않은가. 내가 프로그래밍을 하는 시야도 black sheep wall치트키를 써서 넓어져서 내가 이 삽질을 하면 안된다는걸 깨달을 수 있는 날이 오기를.. 그렇다 나는 지금 내가 무슨 소리를 하는건지 모르겠다.

Black Sheep Wall은 Innocence Mission 이라는 미국 가수그룹의 노래 제목으로 사랑하는 사람 때문에 상처 받지 않기 위해 내 머릿속에 그 사람 주변으로 검은 벽을 세워 보이지 않게 한다는 내용의 노래이다. Black Sheep Wall 치트키는 이런 검은 벽을 걷어낸다는 의미로 쓰였다. [출처: 나무위키]

아무튼 개인적인 이야기는 생략한 부분도 있지만 많은 일이 있었다. 이제 개발자로서 일을 시작하는 첫걸음을 내디뎠으니 기쁜 마음으로 많은 것들을 받아들이고 배워야겠다. 앞으로 기대해주세요~!

Previous post:

Next post: