몇주 전 글에서 언급한 '웹게임 만들기' 토이프로젝트를 진행하고 싶어서 최근 며칠간 node.js를 공부했다. 처음에는 단순히 mySQL과 프론트앤드를 연결하고 싶어서 배우기 시작했는데 생각보다 너무너무너무 복잡해서 시간을 많이 쏟아버렸다. 결국 SQL과 접목하는 부분은 건드려보지도 못하고 넉다운...이 되어 버림.
node.js 진짜 너무 어렵다. 백앤드 자체가 확실히 어려운 것 같다. 서버를 구축하는 것에서부터 시작해서 API를 만들고(API 개념은 진짜 몇번이고 들은 것 같은데 아직도 정확히 API가 뭔지 모르겠다. 나에게는 너무나도 추상적인 개념....) UI로 보이게 만들고 하는 부분들이.. 지금으로서는 확실히 너무 버겁다.
원래 오늘은 node.js의 진도(생활코딩에서 nodejs2와 nodejs3-mysql)를 전부 나가려고 했었는데, 중간에 공부하다가 멘탈이 터져서 거의 공부를 안했다. "차라리 프로젝트를 진행하자!!" 해서 프로젝트로 들어가 그동안 배웠던 node.js를 적용해보려고 했는데 머릿속이 백지가 된 것처럼 아무것도 떠오르지 않아서 2차로 멘붕이 왔었다. 아래는 꾸역꾸역 배웠던 부분을 zero부터 다시 복습하여 내 것으로 만든 결과물.
(내일이 되면 아마 100% 까먹을 것이기 때문에 블로그에 적어둔다. 미래의 내가 들어와서 쓸 수 있도록 하기 위함.)
node.js를 이용한 웹서버 구축 (기본 포맷)
// 모듈들을 가져온다.
let http = require("http");
let url = require("url");
let qs = require("querystring");
let fs = require("fs");
// querystring 경로 지정??
let server = http.createServer(function (request, response) {
let _url = request.url;
if (_url == "/") {
url = "/dongwo_intro.html";
}
// querystring을 읽어줌!
response.writeHead(200);
response.end(fs.readFileSync(__dirname + url));
});
server.listen(3300);
그리고 아래는 오늘 공부하면서 참고한 node.js 공식 홈페이지의 문서. 열심히 읽어보았지만 무슨 소리인지 전혀 알 수 없었다 ㅎ.. (참고로 최근에 본 토익 점수가 900점이었다는 풍문이....)
오늘 공부한 부분은, node.js를 포함한 대부분의 프로그래밍 과정이 이렇게 만들어진 모듈을 가져다 새로운 창작물을 만들어내는 것 같다는 느낌 정도. 원하는 라이브러리 내지는 모듈을 탁탁탁 가져다 쓸 수 있으면 생산성이 정말 어마어마할 수 있겠다는 생각을 했다. 그러나 아무리 좋은 라이브러리와 모듈이 가득하다 해도, 까막눈처럼 그것들을 사용할 줄 모른다면 아무짝에도 쓸모없다는 것을 뼈저리게 느낀 하루.
머릿속에 아이디어가 어마어마한데 그걸 전혀 구현해낼 수 없다는 부분에서 많은 좌절을 했던 하루였다. 열의도 좀 떨어진 것 같고. 그래서 그동안 공부한 것들이 무엇무엇이 있었는지 조금 정리해보고, 앞으로의 공부 방향을 새로 잡아야 할 것 같다는 생각이 들었다. 그래서 쓰기 시작한 중간점검!
(쓰다보니 또 글이 길어질 것 같아서 약간 걱정이 된다. 최대한 간략하게 포인트만 짚고 빠르게 넘어가자!)
우선 나는 33일 전, 그러니까 2021년 7월 16일에 처음 코딩을 시작했다. 그때 공부했었던 것이 HTML이었고 자연스럽게 CSS와 Javascript를 공부하게 되었었다. Javascript 같은 경우는 기본적인 문법을 배웠었다. 배열이 무엇이고 변수, 상수가 무엇인지와 같은 아주 기본적인 것들. 그리고 HTML과 CSS, Javascript가 서로 어떤 관계에 있는지?
다음으로는 스파르타생활코딩에서 파이썬과 MongoDB를 배웠었다. 여기에서 JQuery와 부트스트랩도 처음 배웠다. 말도 안되게 미친듯이 빠른 수업 진도 때문에 중간에 하차 아닌 하차를 하게 되었지만 데이터베이스라던지, 바닐라 자바스크립트와 JQuery가 무엇이 다른지 등등 요긴한 정보들을 많이 배울 수 있었다. 파이썬을 조금 더 깊게 배웠으면 좋았을 것 같다는 아쉬움은 남는다. (생각해보면 스파르타생활코딩에서도 백앤드단에서 서버를 구축하고 DB와 UI를 연결하는 것을 배웠었는데 여기서 너무 어려워서 하차를 했었다.) (POST는 진짜.... 개념은 이해가 가는데 코드상에서의 프로세스가 도저히 이해가 안간다.....)
다음으로는 생활코딩에서 Java를 공부했었고, Java 같은 경우는 재미있어서 20일 차 ~ 30일 차까지 인터넷에서 연습문제를 풀면서 놀았던 것 같다. 어찌나 재밌던지 친구와 약속을 잡고 만나기로 했는데 코딩 하는게 너무 재밌어서 친구와 만나기가 싫었을정도... (만나러 가는 길에 지하철에서 계속 코딩하면서 놀았다 ㅋㅋㅋ) 물론 Java 부분에도 빈틈이 아주 많다. 어디까지나 기본적이고 기초적인 것만 배웠을 뿐이니까.
그리고, 최근 며칠동안 배웠던 것이 MySQL과 Node.js. MySQL은 스파르타생활코딩에서 MongoDB를 배울때 데이터베이스에 대한 개념을 살짝 익혔기 때문에 그렇게 어렵지는 않았다. 근데 기본적으로 SQL 언어가 쉬운 언어라고 하니까, 그래서 안어려웠을 수도 있겠다. 문제는 Node.js에서 찾아왔지 ㅎ..
이렇듯 보면, 나는 여태껏 상당히 많은 것들을 '순한 맛'으로 콕콕콕 찍어 먹었었던 것 같다. 내가 하고 싶은 프로젝트가 있기 때문에 그에 필요한 지식들을 섭렵하기 위해 그랬었기도 하지만, 클라이언트와 서버 사이의 전반적인 프로세스를 한번 개괄적으로 훑어보고 싶었기 때문이었던 것이 더 컸던것 같다. 그리고 이제 대충, 전반적인 프로세스가 어떻게 돌아가는지 이해가 간다.
앞으로 2주정도 뒤에는 국비지원 학원에 들어갈 예정이다. 사실 슬슬 국비지원 준비를 해야할 것 같은데 어떻게 공부를 해야할지 조금 감이 잡히지 않는다. Java를 조금 더 깊게 공부를 하고 학원에 들어가는게 유리하려나...? 유료 강의중에 커리큘럼이 괜찮은 것들이 많다는 이야기를 들은 것 같은데 유료 강의를 하나 수강해서 공부를 하는게 맞을까... 고민이 조금 된다.
지금 당장 더 공부하고 싶은 부분과 공부 방법은
- 바닐라 자바스크립트 - 모던 자바스크립트 사이트를 쭉 훑어보는 것
- SQL - SQLD 자격증 공부
- Java - 유료 강의 수강
- Node.js - 생활코딩 한번 더 보기
React - 이건 나중에- 파이썬 - 마찬가지로 유료 강의 수강
정도인 것 같다. 조금 더 고민해보자.
'나를 향한 리펙토링' 카테고리의 다른 글
중간점검 [프로그래밍 시작 3달 차] (0) | 2021.10.17 |
---|---|
[개발노트] 2021. 07. 22_인생 첫 웹페이지 (0) | 2021.07.22 |