[ node.js 개발일지 0일 ]
Table of contents
#0 Concept
#1 Develop
#0. Concept
Node.js의 개념과 구조, Javascript 언어 특징 4가지, 함수 종류 3가지
- node.js 란?
네트워크 어플리케이션(Frontend, Backend) 개발을 위한 소프트웨어 플랫폼, 언어는 Javascript를 이용함.
- File Tree
bin
node_modules -> npm 을 통한 패키지 설치
app의 의존성 모듈이 설치 되는 곳
public -> UI
자바스크립트 파일, CSS, img 파일 등..
위에는 stylesheets만 있는데 javascripts/ , images/ 등의 폴더 추가
웹 서버에 올라가는 폴더
routes -> 클라이언트로부터 요청받은 URL과 뷰를 매칭하기위한 모듈들
페이지 라우트와 관련된 모듈.
views -> template Injection catch https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection#java---basic-injection
ejs 파일 또는 jade 파일과 같은 템플릿 파일
app.js -> 메인 웹 서버를 실행(express, routing 모듈 가져오기(require : import와 유사), 웹서버 포트 번호 지정, 템플릿 폴더 기입, 템플릿 엔진 지정, 로그 기록, 요청 본문 파싱, 라우팅 활성화, public directory의 정적 리소스 처리, 서버 실행)
프로젝트에서 중심이 되는 파일
package.json -> npm init 시, 생성됨
dependency(모듈의존성)에 대한 정보, dependency 를 명시함으로써 다른 사용자가 app을 사용하거나 여러 곳에서 프로그램을 실행해야 할 때 좀 더 수월하게 사용 환경을 설정할 수 있다.
출처: https://allielovesnoah.tistory.com/15 [Allie Loves Noah]
- Javascript 특징 4가지
1. 동적 형변환
var i = 1;
var ch = "a";
console.log(i + ch); //결과 값 : 1a
ch = 1;
console.log(i + ch); //결과 값 : 2
2. 프로토타입 기반 객체 지향(Prototypal Object-Oriented)
var person = { name:"David Ki", age:24 };
console.log(person); //결과 값 : { name: 'David Ki', age: 24 }
// Object
// age: 24
// name: "David Ki"
// __proto__: Object
person.height = 187;
console.log(person); //결과 값 : { name: 'David Ki', age: 24, height: 187 }
// Object
// age: 24
// name: "David Ki"
// height: 187
// __proto__: Object
3. Client Side에서 코드 실행 //exploit vector
eval("var a = 1, b = 2;");
console.log(a, b);
// 1 2
4. 고차 함수(인자로서 함수들을 취하거나 함수를 반환)
var ho_func = function (param_func) { param_func(); };
ho_func(function () { console.log("hello!"); });
// hello!
- Javscript 함수 종류
1. 데이터로서의 함수
function sum(a, b) {
var c = a + b;
return c;
}
console.log(sum(1, 2));
// 3
+delete 문법을 통해 객체의 속성은 제거할 수 있으나, 객체 자체는 제거 불가
function sum(a, b) {
var c = a + b;
return c;
}
var add = sum;
typeof add;
//"function"
add(1,2);
// 3
var student = {
name : 'goorm',
age : 20
}
console.log(student.name);
delete student.name;
// true
console.log(student.name);
//undefined
delete student;
// false
delete not_exist;
// true
console.log(student.age);
2. 익명 함수(Anonymous Function)
var f = function (a) {
return "This is anonymous function!";
};
console.log(f());
// "This is anonymous function!"
3. 콜백 함수(Callback Function) : 특정 이벤트가 발생했을때 호출(인자일때는 데이터로~ 이용할때는 함수형식으로~)
function one() {
return 1;
}
var two = function () {
return 2;
}
function invoke_and_add(a, b) {
return a() + b();
}
console.log(invoke_and_add(one, two));
// 3
function one() {
return 1;
}
function invoke_and_add(a, b) {
return a() + b();
}
invoke_and_add(one, function() {
return 2;
});
//3
#1. Develop
Node.js-입력-받기
// Run by Node.js
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on("line", function(line) {
if(line > 0 ){
console.log('양수');
}
else if(line == 0){
console.log(0);
}
else if(line < 0){
console.log('음수');
}
rl.close();
}).on("close", function() {
process.exit();
});
CLEAR 또전~! 3/10
'ETC > develop' 카테고리의 다른 글
Flutter Application Develop just For me:D#1 (0) | 2023.05.11 |
---|---|
node.js & Express Develop#3 (0) | 2021.03.16 |
node.js & Express Develop#2 (0) | 2021.03.14 |
node.js & Express Develop#1 (0) | 2021.03.12 |