brunch

You can make anything
by writing

C.S.Lewis

by 쿠우보이 Jan 27. 2017

프로그래밍 부트캠프 4주 차

week04 그리고 중간고사

프로그래밍 부트캠프가 어느새 4주 차가 끝났다. 그간 배웠던 내용은 대략 아래와 같다. 


- javascript 

- data structure

- jquery

- client side rendering (Ajax)

- node.js (server side application) with mySQL

- React & Redux


크게는 위와 같이, 그리고 예제를 중심으로 빠르게 훑어보는 sprint 형식으로 진행을 했다. 위 내용을 배웠다고 하기에는 좀 무리가 있지만, 최소한 공식 문서를 보고 하나씩 만들어보고 경험했다는 차원에서 나는 개인적으로 만족하고 있다. 


개인적으로 node를 사용하는 backend 쪽이 더 재미있다. frontend 쪽은 상대적으로 흥미가 덜해서 그런가, 아니면 React가 어려워서 그랬는지, 이해도가 많이 낮다. 다른 수강생들은 까만 터미널에서 무엇이 돌아가는지 비주얼로 보이지 않아 답답하다고 하지만 난 data를 정확하게 목적에 맞게 가공해주는 작업이 재밌다. 눈으로 보이지 않는 까만 화면에서 이렇게 저렇게 하고 나니 원하는 대로 자료들이 정리되고, 클라이언트 쪽에서 원하는 값들을 보내주는 게 역시 재미있다. 이렇게 사람마다 성향이 다르구나 하고 느껴진다. 나와 달리 프런트에 관심 있어 하는 수강생들의 순발력은 대단해 보인다. 색깔과 위치, 모양, 움직이는 부분들을 확인해가며 원하는 모양대로 만들어내는 것을 보면 감탄이 나온다. 


그리고 4주 차가 마무리되면서, 드디어 오늘은 중간고사! 그간 배운  Database + Server + Client 쪽을 각 프레임워크의 공식문서 및 stack overflow 및 MDN (Mozilla 개발자 네트워크) 

https://developer.mozilla.org/en-US/docs/Web/JavaScript

이렇게 3개의 정보만을 가지고 홈페이지를 만들어야 했다. 정말 mini도 아니고 tiny project 인 셈이었다. 

이전엔 mySQL 및 Sqlite를 배웠어서 프로젝트에서는 MongoDB & Mongoose로 진행이 될 것이라 하셨다. 총 6시간의 시험 시간이 주어졌고 우리는 그 시간 안에 MongoDB & Mongoose 쪽을 공식문서를 통해 파악하여 사용해야 했다. 


시험 시작

분. 명. 히. MongoDB 는 금방 배워서 써먹을 수 있을 거라 했다. 일단 약 10여 개의 포켓몬스터 정보가 있는 JSON 파일을 기본적으로 MongoDB에 import (DB save) 시켜야 했는데, 내가 보기엔 공식 문서가 다른 JS 문서들에 비해 정말로 그지 같았다. (강사님은 시험 이후 이 문서가 꽤나 잘 되어있는 문서라 하셨고, 진짜로 그지 같은 문서를 보여주셨다. ㄷ ㄷ ㄷ)


그래서 MongoDB를 켜고 DB에 save를 하는 방법을 알아내는데만 거의 2시간을 썼다. 그동안 모든 자료를 볼 수 있을 때는, 내가 과거에 했던 자료들도 리뷰해볼 수 있고, 구글 검색을 통해 수많은 예제 및 블로그를 검색해 볼 수 있는데, 아무리 stack overflow 형님이라 할지라도 검색엔진이 별로 좋지 않아 예제를 찾는 건 어려웠다. 그지 같다고 생각했던 공식 문서에 의존할 수밖에.... 나만 초반에 이렇게 막혀있나? 지금 빨리 서버 쪽 만들고 희망 사항이었던 프런트 쪽도 ReactJS를 복습해가면서 만들어보려고 했는데... 10~20분이면 끝날 것 같았던 DB 쪽에서 이렇게 헤매고 있다니..ㅜㅜ 


점심을 대충 편의점 크림빵으로 때우고 node.js 쪽을 시작했다. 

주어진 directory

대략 위와 같은 directory가 이미 주어졌다. 각 파일 안에는 기본적인 require로 구성이 되어있었고 각 파일들 내용을 채우는 게 몫이었다. 진심인데, 이런 directory조차 주어지지 않는다면, 입문자인 나는 뒤죽박죽 파일들을 만들거나 1~2개의 js 파일에 다 때려 박았을 게 분명하다. node.js에서 router 조차 사용 안 했을 수도 있다. 그러나 어쨌든 주어진 파일들의 의도를 생각해서 각 부분을 채워 넣고 연결했다. 겨우겨우 db에 있는 포켓몬들의 data들이 mongoDB query를 통해 조회, 추가, 삭제 및 update가 되는 것 같았다. 

Client (React JS) 쪽은 가지도 못했다. node.js 쪽과 DB에 시간을 다 쏟은 것도 있었고 React 쪽은 다시 복습하기로 했었기에...


힘겹게 6시간의 시험이 끝나고 나는 그래도 보람이 있었다. 분명 2시간 동안 DB 가지고 씨름할 때는, '아 난 오늘 이거 DB에 쓰는 것도 파악 못한 채 아무것도 못 하고 시험이 끝나버리겠구나' 하고 자괴감에 빠질 뻔했다. 하지만 다행히 그 단계를 넘어가고 불안했던 서버 쪽도 겨우 겨우 router까지 구성했다는 것 때문이었다. 스스로 포기하지 않고 해봤다는 게 꽤나 뿌듯했다. 


NPM

여담인데, NPM이라고, terminal에서 필요한 라이브러리 및 기능들을 쉽게 다운로드할 수 있게 도와주는 녀석이 있다. 이 친구가 없었다면 나는 분명히 개발을 배우다가 포기했을지도 모른다. 필요한 게 있으면 그냥 


npm install <설치하고 싶은 녀석> 


이렇게 하면 된다. 기특한 녀석. React 할 때 Webpack 관련해서 개발환경 설치를 15번이나 하면서도 제대로 되지 않아 좌절했던 기억이 있다. 프로젝트에 필요한 녀석들을 일일이 설치할 필요도 없고 package.json에 내가 무엇 무엇이 필요하다고 명시만 해놓고 해당 directory에서 'npm install' 만하고 엔터를 탁! 치면 모든 개발환경 설치가 완료된다. 아.. 이런 거에 행복해하는 나 자신이 조금 웃기기도 하지만, 뭐 좋은 건 좋은 거니깐.


시험 후기

그동안 강좌 블로그, youtube, google search에 대해서 그다지 감사하지 않았었는데, 없이 해보니깐 소중함을 뼈저리게 느꼈다. 그리고 scratch (기본 directory 빼고)부터 시작하니, '아 내가 어디 어디를 모르고 있구나'하는 게 더 명확해졌다. 부트캠프 외부 강사님이 오셔서 한 말씀은 여전히 '부트캠프' 프로그램 자체에는 그다지 기대가 없지만, 어쨌든 입문하려는 사람들에게 지속적으로 개발 공부의 '키워드(keyword)'를 던져주는 것만으로 큰 내용이라고 하셨다. 이런 차원에서 나는 현 과정에 꽤나 만족해하고 있다. 

매거진의 이전글 프로그래밍 부트캠프 
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari