본문 바로가기

프로그래밍

(100)
[Do it! Node.js 프로그래밍] 5일차 1. 공부한 범위 [05] 웹 서버 만들기 2. 공부한 내용 [05] 웹 서버 만들기 05-3 미들웨어 사용하기 static 미들웨어 - static 미들웨어는 특정 폴더의 파일들을 특정한 경로로 접근할 수 있도록 만들어준다. - app.use("/public", static(path.join(__dirname, "public")));이라 작성할 경우 public 폴더 이하의 주소들을 쉽게 접근할 수 있게 된다. - 위 코드를 통해 첫 번째 파라미터와 두 번째 파라미터간 매핑이 이루어진다. body-parser 미들웨어 - body-parser 미들웨어는 POST로 클라이언트가 요청 파라미터를 보내왔을 때 이를 확인할 수 있도록 해준다. 05-4 요청 라우팅하기 - 로그인뿐만 아니라 사용자 리스트 등 다..
[Do it Node.js 프로그래밍] 4일차 1. 공부한 범위 [05] 웹 서버 만들기 (05-2 익스프레스로 웹 서버를 만드는 부분까지) 2. 공부한 내용 요약 [05] 웹 서버 만들기 05-1 간단한 웹 서버 만들기 - 노드가 기본적으로 제공하는 http 모듈을 이용하면 서버 객체를 만들 수 있다. - listen() 메소드를 통해 지정된 포트로 서버가 시작된다. 서버를 종료하고 싶으면 콘솔창 왼편에 있는 네모난 이미지를 가진 버튼을 클릭하면 된다. (정지 버튼) - 서버 객체에서 사용할 수 있는 대표적인 메소드 listen(port, [hostname], [backlog], [callback]) : 서버를 실행시킨 후 대기한다. close([callback]) : 서버를 종료한다. - 보통은 listen메소드를 호출할 때 ip가 자동으로 지정..
[Do it! Node.js 프로그래밍] 3일차 1. 공부한 범위 [04] 노드의 기본 기능 알아보기 2. 공부한 내용 요약 [04] 노드의 기본 기능 알아보기 04-1 주소 문자열과 요청 파라미터 다루기 - 웹 사이트에 접속하기 위한 사이트 주소 정보는 노드에서 URL객체로 만들 수 있다. - 주소 문자열은 단순 문자열이기 때문에 어디까지 사이트 주소이며 요청 파라미터인지 구별해아 한다. 이 작업을 쉽게 할 수 있도록 노드에서 미리 만들어둔 모듈이 url 모듈이다. - url 모듈의 주요 메소드 parse() : 주소 문자열을 파싱해 URL 객체를 만들어준다. format() : URL 객체를 주소 문자열로 변환해준다. - URL 객체의 여러 정보들 중 query 속성에는 요청 파라미터 정보가 있다. 원하는 정보를 얻기 위해서는 이 속성에 있는 여러..
[Do it Node.js 프로그래밍] 2일차 1. 공부한 범위 [02] 노드로 만들 수 있는 대표적인 서버와 용도 [03] 노드에 대해 알아보고 개발 도구 설치하기 2. 공부한 내용 요약 [02] 노드 간단하게 살펴보기 02-1 첫 번째 노드 프로젝트 만들기 - 자바스크립트 파일을 명령 프롬프트를 통해 실행시킨 사진 - Atom을 사용하기 때문에 Bracket의 NodeJS Integration과는 다른 패키지를 찾아야 했고, 검색 결과 atom-runner가 원하는 기능을 준다는 것을 알 수 있었다. - runner 패키지를 이용해 node를 실행시킬 수 있도록 config.json파일을 수정했다. - atom-runner 패키지가 무사히 완료된 후 프로젝트를 실행한 결과 (Alt + R을 이용해 구동할 수 있다.) 02-2 콘솔에 로그 뿌리기 ..
[Do it Node.js 프로그래밍] 1일차 1. 공부한 범위 [00] 노드로 만들 수 있는 대표적인 서버와 용도 [01] 노드에 대해 알아보고 개발 도구 설치하기 2. 공부한 내용 요약 [00] 노드로 만들 수 있는 대표적인 서버와 용도 00-1 서버는 왜 필요할까? - 우리들은 PC나 스마트폰에서 여러 프로그램을 사용하는데 이를 어플리케이션이라 부른다. - 어플리케이션을 직접 만들고 싶다면 API (Application programming Interface)를 알아야 한다. - API : 프로그램을 쉽게 제작할 수 있게 미리 만들어놓은 것들의 모음 - 포털 사이트에 쉽게 접속 가능 한 이유는 웹 브라우저라는 프로그램이 인터넷을 사용해 웹 서버에 웹 문서를 달라고 요청할 수 있기 때문이다. - 클라이언트 : 다른 어딘가에 있는 단말에 데이터를 ..
var과 let, const var var은 스코프 범위가 함수 단위(function scoped)다. function func() { { var a = 1; } console.log(a); } func(); 중괄호로 변수 a가 감싸져 있지만 var는 중괄호로 구별한 것은 무시하고 함수 단위로 스코프가 형성된다. 그렇기 때문에 console.log(a)의 결과가 1이 나오게 된다. 또한 var은 변수가 이미 선언되어 있더라도 밑에서 다시 선언될 경우 이전 내용이 지워지고 새 내용이 들어가게 된다. var을 사용하게 되면 Hoisting문제가 발생할 수 있다. //var가 hoisting되어 정상적으로 j의 값이 불러와진다. for (var j = 0; j < 10; j++) console.log('j :', j); console.l..
this This 자바스크립트의 this 키워드는 다른 언어들과는 조금 다르게 동작한다. 대부분은 함수를 호출하는 방법에 따라 this의 값이 결정된다. 실행하는 동안의 할당에 의해서나 함수가 호출될 때마다 다를 수 있다. ES5에서는 this의 값이 함수가 어떻게 호출되었든지 상관하지 않고 설정이 가능한 bind 메소드를 새로 정의했다. 쉽게 말하자면 호출하는 객체 === this와 같다고 할 수 있다. This의 예 - this는 호출하는 객체에 따라 결과가 달라질 수 있다. var person = { name: "lee", info: function() { console.log(this); } } person.info(); var myInfo = person.info; myInfo(); 단순히 생각한다면 p..
클로저와 스코프 체인 클로저 클로저는 내부 함수가 외부 함수의 context에 접근할 수 있도록 하는 것이다. 이렇게 되면 외부 함수의 실행이 끝나 외부 함수가 소멸한 이후에도 내부 함수가 외부 함수의 변수에 접근할 수 있다. 다음 4가지는 클로저의 특징이다. - 클로저는 객체의 메소드에서도 사용할 수 있다. - 동일한 외부 함수 안에서 만들어진 내부 함수나 메소드는 외부 함수의 지역 변수를 공유한다. - 똑같은 외부 함수를 공유하고 있는 내부 함수나 메소드의 결과는 서로 다를 수 있는데, 외부 함수가 실행될 때마다 새로운 지역변수를 포함하는 클로저가 생성되어 각각 완전히 독립적인 객체가 되기 때문이다. - 클로저 내부의 변수들은 클로저 내부에서 생성된 함수나 메소드만 접근할 수 있다. 이를 이용하면 자바스크립트가 기본적으로..