일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- JS
- 스프링부트개발
- codeit
- 깃컨벤션
- gitconvetion
- 파이썬
- 코드잇파이썬
- MIPS
- Python
- .env파일
- 개발
- 개발자
- 코멘토5주인턴
- 코멘토취업
- Git
- 컴공
- 깃충돌
- 컴퓨터공학
- 말하기시험
- 소프트웨어
- 제품증정 #에스트라 #에스트라퓨처랩서포터즈 #리제덤아이세럼 #더마아이세럼 #레티노이드아이세럼
- 졸업영어
- CA
- 백엔드
- computerarchitecture
- 방학
- 컴퓨터공학과
- 스프링장점
- 컴퓨터구조
- 코드잇
- Today
- Total
sollog
[Node.js] 자바스크립트 기초 문법과 모듈 본문
노드는 자바스크립트 문법을 사용해 실행함
또한, 모듈을 사용하여 생산성을 높임
템플릿 리터럴
템플릿 리터럴은 문자열과 변수, 식을 섞어서 하나의 문자열을 만드는 표현 형식이다.
(₩) 벡틱 기호를 사용해 문자열을 만든다.
let num1= 10;
let num2= 20;
// 연결 연산자인 + 을 사용할 경우
console.log(num1 + "과 " + num2 + "을/를 더하면 "+ (num1+num2) + "입니다.");
// 템플릿 리터럴을 사용할 경우
console.log(`${num1}과 ${num2}을/를 더하면 ${num1+num2} 입니다.`);
둘 다 출력하는 값은 같지만, 방식에 있어서 차이점이 있다.
그동안 배운 언어에서는 항상 연결 연산자인 전자를 사용해서 출력했으나,
새로운 방식을 도전하여 템플릿 리터럴을 사용하는게 더 좋겠다.
모듈이란? (module)
전체를 이루는 부품 하나하나
노드제이에스에서는 자바스크립트 파일 하나하나를 모듈이라고 함
모듈 내부의 것들을 모은 객체를 외부에 공개할 때는
module.exports = calculator;
이렇게
모듈 내부의 것을 외부에 공개하는 방법
1. 공개하고 싶은 것들을 하나씩 exports 로 공개
2. 공개하고 싶은 것들을 모아서 하나의 객체로 만들고 module.exports로 객체를 통째로 공개
map 함수
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
Array.prototype.map() - JavaScript | MDN
The map() method of Array instances creates a new array populated with the results of calling a provided function on every element in the calling array.
developer.mozilla.org
Module wrapper function
모듈 내의 전체 코드를 감싸주는 작업
exports.속성 = 값
module.exports = 객체
모듈
1. 내가 직접 만든 모듈
2. 이미 만들어져 있는 모듈 (개발할 때 필요한 기능이 많음, 잘 가져다 쓰는게 중요_
1) 코어 모듈
노드라는 실행 파일 안에 넣어둔 거
2) 서드파티 모듈
여러 개발자, 회사들이 만들어서 인터넷에 공개 제 3자가 만든 모듈
코어모듈의 경우
nodejs - 또 다른 자바스크립트 실행 환경
웹 브라우저와 무슨 차이점?
=> 1. 제공하는 API가 다름
어떤 플랫폼이나 실행환경 등에서 제공하는 인터페이스
특정 환경에서 자유롭게 가져다 쓸 수 있는 함수나 객체 등을 의미
다르다!
똑같은 자바스크립트를 사용하더라도
node js 에만 제어할 수 있는 컴퓨터 제어 API , 파일 생성, 컴퓨터 정보 확인!
Electron이라는 프레임워크를 추천해주심
VScdoe 도 Node.js 위에서 실행!
=> 2. 엔진이 다르다.
node js V8
chrome V8
node js 개발 팁!
특정 브라우저가 자바스크립트의 표준 문법에서 어디까지를 지원하는지 확인하는게 중요!
ECMAScripts 사이트
자바스크립트의 문법을 알아보기위해 최신 문법 지원 여부를 확인해보는게 좋음!
서드파티(3rd party) 모듈?
다른 개발자나 회사들이 만들어서 인터넷상의 공개 저장소에서 제공하는 모듈
사용하려면?
내 컴퓨터로 가지고 와야함
npm : node package manager
npm install cowsay
설치하고 나면
폴더 안에 package-lock.json파일과 node_modules directory가 생성됌
main.js에다가
const cowsay = require('cowsay');
console.log(cowsay.say({
text:"My name is Olaf!",
}));
를 저장해서 실행시켜주면,
이 출력된다
귀여워
비동기 프로그래밍
utf8 파일 내용을 어떻게 읽을지 인코딩
이거랑
이거랑 어떤 차이?
위에는 동기실행
아래는 비동기 실행
start가 출력되고 나면, new 파일을 읽기 시작하고, 콜백(어떤 작업이 끝나고 부르는것)
그리고 Finish를 출력
그리고 난 다음에 newfile에 대한 읽기 작업이 끝나면
file내용이 data에 대한 내용으로
hello node js 를 읽게 하는 것임
readFileSync- > 동기실행
readFile 함수 -> 비동기 실행 * node.js는 비동기 함수를 씀
=> 비동기 프로그래밍
특정 작업이 완료되었을때, 실행할 콜백을 등록해두고 바로 다음 코드로 실행을 넘기는 것
비동기 프로그래밍 ** 중요
Node.js에서의 비동기 실행
Node.js에서 작업의 종류에 따라 '비동기 실행' 이 다른 방식으로 구현되어있다.
프로세스(Process)와 스레드(Thread)의 개념이 중요하다.
프로세스와 스레드는 프로그램의 실행 흐름에 관한 개념인데,
프로세스가 하나의 실행 흐름이라면, 스레드는 그 안에 있는 더 작은 단위의 실행 흐름이다.
Node.js로 개발할 때는 메인 스레드에 부하를 주면 안 된다는 사실
비동기 프로그래밍의 또 다른 방법
event를 사용하자.
event란? 어떤 일이 발생했음을 알리는 신호
listener
'자기계발 > Study' 카테고리의 다른 글
Chapter 2 Operating-System Structures (0) | 2024.04.20 |
---|---|
heap sort (1) | 2024.02.14 |
[codeit] Node.js (1) | 2024.01.16 |
codeit - 프로그래밍 핵심 개념 in Python (0) | 2024.01.06 |
codeit - 프로그래밍 시작하기 in Python (0) | 2024.01.04 |