brunch

You can make anything
by writing

C.S.Lewis

by 최혁재 Mar 29. 2019

내 첫 번째 풀스택 (1)

혼자 공부해서 풀스택 웹 애플리케이션 개발한 여정

데이터 사이언스에 흥미가 생겨서 시작한 코딩 공부가 자연스럽게 웹 개발로 이어졌다. 데이터 분석은 통계적 분석을 위해 코딩을 '도구'로 쓰는 반면, 웹 개발은 코딩 그 자체가 '벽돌'이라는 점에서 훨씬 매력을 느꼈다. 아무튼 웹 개발자가 되고 싶은 생각은 일단 없었지만, 나중에 MBA가 끝나고 내 스타트업을 하게 된다면 웹 개발 능력이 매우 유용할 것이라고 판단했다. 그렇게 2018년 10월부터 본격적으로 웹 개발을 공부하기 시작했다. 역시 Udemy에서 장고(Django)로 시작했다. 장고가 파이썬 기반의 웹 프레임워크니까 이미 파이썬을 공부한 나로서는 자연스러운 선택이었다.


장고(Django) 공부 추천 자료: 
 1) Python and Django Full Stack Web Developer Bootcamp
 2) Tweetme | Build a Twitter-like app step by step with Django

(하지만 이왕 웹개발 공부를 할 거라면, 장고 말고 자바스크립트 스택을 추천하고 싶다. 무엇보다도 하나의 언어로 백앤드와 프론트앤드를 모두 개발 할 수 있으니까...)


웹 개발을 배우는 과정 중에 쉬운 일은 없었다. 장고가 그나마 많은 뒷일들을 알아서 처리해 줘서 편리하긴 했지만, 결국 웹 애플리케이션에 더 많은 기능을 부여하기 위해서는 기저에서 일어나는 많은 오퍼레이션들을 이해해야 했다. 2~3개월 정도 끄적댄 다음 HTML, CSS, Javascript, Django를 이용해서 첫 번째 개인 프로젝트인 www.learn-eng.net을 개발했다. 기본적인 CRUD 기능만 있는 웹앱이지만, 저렇게 기본적인 것도 처음부터 내 손으로 만든다는 게 정말 쉽지 않았다. 그리고 만족스럽지도 않았다. 이때 이미 장고의 한계에 대해 느끼고 있었다.


장고는 정해진 방식대로 다 따라야 하는 답답함이 있었다. 그리고 high-level의 프레임워크라 속을 들여다보면서 웹에 대해 깊이 이해하기도 어려웠다. 이미 2~3개월을 장고 공부해 투자해놓고 다른 프레임워크나 언어로 옮기는 게 효용이 있는지 고민했다. 새로운 기술을 배우는 데 또 시간이 들 텐데 아직 장고도 자신 있게 마스터했다고 할 정도가 아니라서 두려웠다. 하지만 요즘 더 인기 있고 뜨고 있는 기술을 배워 놓는 게 결국은 롱런하는 거라고 스스로 위로하며 리액트(ReactJS)와 노드(NodeJS)를 배우기로 했다. (결과적으로 좋은 선택이었다고 생각한다)


리액트는 페이스북이 만든 요즘 가장 핫한 자바스크립트 기반의 프론트앤드 프레임워크(라이브러리)다. 애초에 페이스북이 사용자가 너무 늘어나면서 기존의 방법으로는 해결하기 어려운 개발 문제들이 생겼다. 이를 해결하기 위해서 기존의 웹페이지를 컴포넌트(페이지를 구성하는 덩어리)로 나누고 각 컴포넌트가 개별적으로 백엔드와 소통할 수 있게 했다. 요지는 페이지 리로딩이 없이 개별 컴포넌트만 업데이트할 수 있다는 점이다. 이로써 계속해서 페이지를 리로딩하면서 인터넷 리소스를 낭비할 필요가 줄었다.


아무튼 리액트는 몇 가지 방법으로 공부했는데 결론적으로 가장 좋았던 코스는 Udemy에서 수강할 수 있는 아래 적어 둔 1번과 2번이다. 1번은 리액트의 기본 원리부터 정말 상세하게 설명해 줘서 처음 개념을 잡기 너무 좋았다. 정말 이렇게 개념적인 설명을 잘하는 강사를 또 본 적이 있었던가. 2번은 좀 더 빠른 템포로 기본적인 리액트 코딩 워크플로우를 보고 익힐 수 있게 해 줬다. 그리고 두 번째 코스기 때문에 1번에서 들었던 개념들의 복습도 자연스럽게 이뤄졌다.


리액트(ReactJS) 공부 추천 자료:  
1) Modern React with Redux [2019 Update]  
2) React Front To Back


리액트 진도를 1달 정도 만에 최대한 빨리 떼고 바로 노드 학습에 들어갔다. 빨리 나만의 풀스택 앱을 만들고 싶었기 때문이다. 물론 외부 API를 이용해서도 쓸모 있는 웹앱을 개발할 수 있다. 하지만 이왕 개발을 공부하고 있는 마당에 남이 만들어 놓은 API만 쓰는 건 성에 차지 않았다. 백앤드(서버 & 데이터베이스)를 공부해서 프론트와 백을 둘 다 개발하고 싶은 욕구가 불타올랐다. 노드 역시 Udemy에서 배웠는데, 같은 강사들의 강의가 역시나 고퀄이었다. 1번은 개념 공부에 최적, 2번은 노드와 리액트를 결합시켜서 처음 풀스택을 배우는 데 최고, 3번은 처음부터 끝까지 연속적으로 하나의 풀스택 앱을 개발해보는 경험을 선사해 줘서 200% 만족스러웠다.


노드(NodeJS) 공부 추천 자료:  
1) The Complete Node.js Developer Course (3rd Edition)
2) Node with React: Fullstack Web Development
3) MERN Stack Front To Back: Full Stack React, Redux & Node.js



To be continued...

매거진의 이전글 코딩, 함께 배워요
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari