https://www.youtube.com/watch?v=3RS_A87IAPA&list=PLuHgQVnccGMA9QQX5wqj6ThK7t2tsGxjm
- html을 이용해 웹을 만들 수 있게 되었지만, html의 한계에 부딪히게 됨 (코드를 하나하나 수정해야하거나, 일부 사용자만 컨텐츠 추가가 가능하거나...)
=> 귀찮고 반복되는 html코드 작성을 자동으로 생성하는 기술을 사용하고 싶어짐
- 자바스크립트로 인해 웹은 사용자와 상호작용을 할 수 있게 됨
이러한 자바스크립트를 이용해 웹이 아닌 컴퓨터를 제어하는 것= Node.js
=> 웹페이지 자동생성 가능
- html의 수 많은 중복 코드를 한번에 수정할 수 있음
- Node.js를 이용해 웹페이지를 순간순간 생성하며 자동화 가능
=> Node.js를 이용해서 웹사이트로 방문하는 사용자가 읽기, 쓰기, 수정, 삭제 작업을 모두 웹을 통해서 할 수 있게 됨
= 이러한 기술은 웹사이트의 기능성을 크게 향상시킴
- Node.js는 웹서버로 사용이 가능함
- 웹서버가 있으면 웹브라우저의 주소를 요청했을 때 그 요청에 따른 정보를 찾아 응답해줌
=> 자바스크립트를 통해서 우리가 읽어들여야 될 파일을 만들게 됨
- 노드 js는 데이터 생성에 따라 사용자에게 다른 데이터 전송이 가능
** node main.js ...= 파일열기
6.1.JavaScript 문법 - Number Data type
- 기본 숫자를 적는것 만으로 number 의미
- 기본 사칙연산 (+, -, *, /)
=> 자바스크립트가 제공하는 여러 number데이터 타입 처리 방법을 사용할 수 있음console.log(1+2) 3
6.2.JavaScript 문법 - String
- " "/ ' ': String타입 사용시 필요
- +: 문자열 결합: 그대로 출력 ('1'+'1'= 11)
.length
: 문자열 길이 측정 함수
7.1. JavaScript 문법 - 변수의 형식
- var: 업데이트 가능한 변수의 형식
** 최근에는 여러 한계 (중복선언 가능, 선언 위치와 관계 없이 사용 가능 등 )로 인해 사용하지 않음- const: 상수, 값이 변하지 않음-> 이후 업데이트 불가능, 대부분 사용
- let: 업데이트 가능한 변수의 형식-> 업데이트가 필요한 경우에만 사용
7.2.JavaScript 문법 - 변수의 활용
- 변수의 사용 이유: 코드의 가독성을 높이고 중복된 데이터를 효율적으로 관리할 수 있음
- 변수는 중복을 제거하는데 효과적!!
ex) - String형식과 변수 함께 사용하는 방법: +사용
string a= "Hello W"; string b= "rld"; console.log (a +0+ b); Hello W0rld
8.Template Literal (Template String)
- 템플릿 리터럴: 내장된 표현식을 허용하는 문자열 리터럴
런타임 시점에 일반 자바스크립트 문자열로 처리됨
= 백틱 사용 (`)
- \n과같은 기능을 쉽게 사용하기 위해 만들어짐
`, $, {} 사용으로 \n, +같은 기능 사용 가능
=> 표현식, 문자열 삽입, 변수 사용, 여러 줄 문자열 표현 등 다양한 기능 제공
9.URL의 이해
- URL은 프로토콜, 호스트, 포트번호, 경리, 쿼리스트링 등으로 구성되어있음
웹 어플리케이션 구현에 있어 중요한 기능 중 하나
ex) http://opentutorials.org:3000/main?id=HTML&page=12
- http (ftp): 프로토콜/ 사용자가 서버에 접속할 때 어떤 방식으로 통신할 것인가에 대한 부분
- opentutorials.org: 도메인 네임 (호스트)/ 특정한 인터넷에 연결되어있는 컴퓨터를 가리키는 주소
- 3000: 포트번호/ 어떤 포트에 연결되어있는 서버와 통신할지 결정
- main: 패스/ 컴퓨터 안에 있는 어떤 디렉토리의 어떤 파일인지 알려줌
- id=HTML&page=12: 쿼리스트링/ 웹 서버에게 데이터를 전달해줌
=> 조작을 통해 다른 사이트 접속이 가능하게 하는 본인
값과 값 사이는 &, 값의 이름과 값은 =로 구분
10.URL을 통해서 입력된 값 사용하기
- 쿼리스트링을 통해 동적 웹페이지를 만들 수 있음
11.App 제작 - 동적인 웹페이지 만들기
- 긴 내용의 정적인 파일을 동적으로 제작 가능=> 코드의 간결화
- 코드를 간결화할 때 변수를 사용하는 경우가 많은데, 변수는 핵심의미를 담고 중복되지 않는 것이 중요
- 쿼리 스트링을 사용해서 값을 받아들이고 쿼리스트링의 입력에 따라 nodejs는 문자열을 바꿔서 출력
- 이때 출력하는 문자열이 html코드라면 웹페이지는 html코드를 읽어서 그에 해당하는 웹페이지를 만들 것
12.Node.js의 파일 읽기 기능
- CRUD: create, read, update, delete
- create: 파일 생성
- read: 파일 읽기
- update: 파일 수정
- delete: 파일 삭제
- ex) 각 페이지가 전체 html 코드를 저장하는 대신 본문만으로 채워지는 파일 데이터를 저장. 이를 통해 효과적인 데이터 관리 가능.
- fs모듈: file system
var fs = require('fs'); // 파일시스템 모듈인 fs불러옴 fs.readFile('sample.txt', 'utf8', function(err, data){ //readFile을 사용하여 sample.txt라는 파일을 읽음 파일 이름, 파일 인코딩 방식, 파일 읽기 완료 후 실행할 함수 console.log(data); // 파일 내용 출력 });
**
주석: //
웹 어플리케이션: 스마트폰에서 사용하는 어플리케이션과 같이 여러 가지 기능을 가지고 동작하는 웹 페이지