본문 바로가기
ETC/develop

node.js & Express Develop#0

by asdf12345 2021. 3. 11.

[ 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의 정적 리소스 처리, 서버 실행)  

https://edu.goorm.io/learn/lecture/332/todo-%EC%95%B1%EC%9D%84-%EC%A7%81%EC%A0%91-%EB%A7%8C%EB%93%A4%EB%A9%B4%EC%84%9C-%EB%B0%B0%EC%9A%B0%EB%8A%94-node-js-express-bootstrap-jquery/lesson/10138/%EC%9B%B9-%EC%84%9C%EB%B2%84-%EB%A7%8C%EB%93%A4%EA%B8%B0-app-js

프로젝트에서 중심이 되는 파일

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

https://edu.goorm.io/learn/lecture/557/%ED%95%9C-%EB%88%88%EC%97%90-%EB%81%9D%EB%82%B4%EB%8A%94-node-js

 

구름EDU - 모두를 위한 맞춤형 IT교육

구름EDU는 모두를 위한 맞춤형 IT교육 플랫폼입니다. 개인/학교/기업 및 기관 별 최적화된 IT교육 솔루션을 경험해보세요. 기초부터 실무 프로그래밍 교육, 전국 초중고/대학교 온라인 강의, 기업/

edu.goorm.io

 

 

Node.js-입력-받기

 

https://edu.goorm.io/learn/lecture/557/%ED%95%9C-%EB%88%88%EC%97%90-%EB%81%9D%EB%82%B4%EB%8A%94-node-js/lesson/269255/%EC%A1%B0%EA%B1%B4%EB%AC%B8-%EC%8B%A4%EC%8A%B5-%EC%96%91%EC%88%98-%EA%B5%AC%EB%B3%84%ED%95%98%EA%B8%B0

// 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