Node.js

Dongwoo Joo·2023년 3월 20일
0

codestates bootcamp

목록 보기
18/48

Node.js

비동기 이벤트 기반 JavaScript 런타임
확장 가능한 네트워크 애플리케이션을 구축하도록 설계되었다.

Fs 모듈(file system): pc의 파일을 읽거나 저장하는 등의 일을 할 수 있게 도와준다.

Node.js 모듈 사용법

개발자는 자신이 이해하는 범위만큼 모듈을 사용한다.
Node.js 공식 문서에 가면,
Node.js 내장 모듈 (Node.js built-in modules)에는 다양한 모듈이 존재한다.
목록에서 자신이 필요한 모듈 이름을 찾을 수 있다.

파일을 읽거나 저장하는 기능 등을 제공하는 Node.js 내장 모듈은 File System 모듈이다.
예시
파일을 읽을 때 사용하는 메서드 readFile
파일을 저장할 때 사용하는 메서드 writeFile

HTML에서는 script 태그로 Js 파일을 불러왔다.
Node.js에서는 Js 코드 가장 상단에 require 구문을 이용해서 다른 파일을 불러온다.

const fs = require('fs'); // 파일 시스템 모듈을 불러옵니다.
const dns = require('dns'); // DNS 모듈을 불러옵니다.

// 이제 fs.readFile 메서드 등을 사용할 수 있습니다.

3rd-party 모듈을 사용하는 방법
서드 파티 모듈: 해당 프로그래밍 언어에서 공식적으로 제공하는 빌트인 모듈이 아닌,
모든 외부 모듈이다.

node.js에서 underscroe는 Node.js 공식 문서에 없는 모듈이기 때문에, 서드 파티 모듈이다.
이러한 서드 파티 모듈을 다운로드하려면, npm을 사용해야 한다.

npm install underscore

underscore 모듈을 설치 // 터미널에 위 명령어 입력

node_modules에 underscore 설치가 완료되면, Node.js 내장 모듈을 사용하듯
require 구문을 통해 underscore을 사용할 수 있다.

const _ = require('underscore'); // Node.js의 3rd-party underscore 사용

Node.js 공식 문서 가이드

fs.readFile method
로컬에 존재하는 파일을 읽어온다.

fs.readFile(path[, options], callback)
메서드 fs.readFile은 비동기적으로 파일 내용 전체를 읽는다.
이 메서드는 전달인자 3개를 받는다.

전달인자

전달인자는 3가지가 있다.

path

파일 이름을 받는다.
네 종류의 타입을 넘길 수 있지만,
일반적으로 string 타입을 받는다.

option

대괄호로 감싼 두 번째 전달인자 option은 넣을 수도 있고, 넣지 않을 수도 있다.
대괄호는 선택적 전달인자를 의미한다.
option은 문자열 혹은 객체 타입으로 받는다(문자열로 전달할 경우 인코딩을 받는다).

callback

콜백 함수를 전달한다.
파일을 읽은 후, 비동기적으로 실행되는 함수이다.
콜백 함수에는 2가지 매개변수가 있는데,
에러가 발생하지 않으면, err는 null이 되고,
data에 문자열이나 Buffer라는 객체가 전달된다. data는 파일의 내용이다.

과제 리뷰

이번에도 과제 제출을 하지 못했다.
이유는 한 문제도 풀지 못했기 때문이다.
현재 과제에서 풀어야 하는 문제가 무엇인지 인지하지 못하는 상태이다.
그래서 필요한 정보가 무엇인지도 모른다.

저녁 시간에 한 문제를 풀었다.
내가 문제를 잘 모르는 이유는 몇 가지 있다.
1. 내가 무엇을 출력해야 하는지 모른다.
2. 테스트 파일이 어떻게 동작해서 결과값을 출력하는지 모른다.
만약 이것을 안다면 결과값을 도출하기 위해 어떤 코드를 작성해야 하는지 알 수 있을 것이다.
여기에 describe 함수가 무엇인지 모르고, 위의 코드가 어떻게 동작하는지에 대한 개념이 없다. 이것부터 익혀야 한다.
3. promise 코드를 어떻게 작성해야 하는지 모른다.
4. 화살표 함수가 익숙하지 않아, 화살표 함수 코드 작성, 해석이 안 된다.
5. 콜백 함수의 개념이 부족하다.

내일 데일리 코딩을 정규 시간 전에 풀고 fs 모듈 과제에 매진할 것이다.
위 5가지를 채우면서 문제를 해결해나가보자.
안 된다고 생각하지 말고, 무조건 할 수 있다고 생각하자.

그리고 이거 못한다고 좌절하지 마라.
공부 시작한지 한 달 됐다. 문제 좀 못 풀면 어떤가?
코드 작성이 아직 익숙하지 않을 뿐이다.
하면 된다.

profile
pursue nature

0개의 댓글