생활코딩/node.js 11

생활코딩의 node.js 수업을 마치다.

생활코딩의 node.js수업을 모두 마쳤다. 아직 내가 수업을 따라가면서 친 코드들을 모두 소화하지 못했다. 하지만 인터넷이라는 것이 어떻게 생겼는지 개략적으로나마 감을 잡은 성과를 얻었다. 이고잉 선생님께서 앞으로 공부해볼 몇 가지 주제를 알려주셨다. 1. Javascript 2. DB 3. Framework 프레임워크는 무엇인지 잘 모르지만 기존 공부량이 많을 때 건드리는 것이 좋아보인다. 내가 당면한 선택지는 다음과 같다. 1. 선생님께서 알려주신 주제 중 하나를 골라 시작해보기 2. node.js 수업을 복습. 지금은 node.js 수업에서 했던 것을 변형하여 내가 만들고 싶은 홈페이지를 우선 만들고 나머지 수업을 들어보기로 결정하였다.

모듈이 뭘까

모듈은 코드를 정리 정돈하는 가장 큰 도구다. 아래와 같은 코드를 갖고 있는 파일이 있다. var M = { v : 'v' f : function(){ console.log(this.v); } } module.exports = M; modue.exports는 해당하는 객체를 파일 바깥에서도 사용할 수 있게 만드는 코드라고 한다. 따라서 다른 파일에서 var part = require('//위 파일의 위치'); part.f(); 를 이용해 M이라고 명명한 객체를 불러오면 사용할 수 있게 된다.

홈페이지 완성

var http = require('http'); var fs = require('fs'); var url = require('url'); var qs = require('querystring'); //아래의 코드는 각 서브페이지의 title과 내용을 함수의 형태로 구현한 것. 따라서 동적으로 홈페이지가 구현됨 function templateHTML(title, list, body, control){ return ` WEB ${list} ${control} ${body} `; } //아래의 코드는 모든 페이지에 구현된 리스트를 동적으로 생성하기 위하여 사용됨. function templateList(filelist){ var list = ''; var i = 0; while(i < filelist.len..

동기와 비동기 그리고 콜백

1. 동기 vs 비동기 1) 동기는 순차적으로 일처리 var fs = require('fs') console.log('a'); var result = fs.readFileSync('./syntax/b.txt','utf8'); console.log(result); console.log('c'); 위의 코드 결과 값은 a,b,c 순으로 출력될 것이다. readFileSync에 의해 해당 코드들이 순차적으로 처리되기 때문임. 2) 비동기는 병렬적으로 일처리 var fs = require('fs') console.log('a') fs.readFile('./syntax/b.txt','utf8', function(err,data){ console.log(data); }); console.log('c') 위 코드의 ..

동적으로 웹사이트 다루기!

앞서 쿼리 스트링에 대해서 배웠다. 기존 html은 각 개별 페이지가 정적으로 존재하기 때문에 만약 전체 페이지의 포맷을 바꾸고 싶다면 각각 수정해주어야 하는 번거로움이 있었다. 이것을 해결하기 위한 방법에 대한 나의 이해는 이렇다. node.js는 필터 기능(?) 같은 것을 구현할 수 있다. 이 필터는 쿼리 스트링에 따른 특정 input이 주어지면 그 input에 대응하는 데이터를 포맷에 맞는 output을 제공해준다. 따라서 그 포맷을 수정하면 전체 웹사이트의 포맷이 달라지는 효과를 보일 수 있다. 이 필터를 이용하여 이제 서버 페이지에서 쿼리 스트링에 따라 title등의 내부 텍스트를 바꿀 수 있으며, 보여주고자 하는 본문도 따로 파일을 만들어 동적으로 화면에 띄울 수 있다. 위의 이미지에서 tit..