728x90 반응형 SMALL 분류 전체보기139 [Node.js] 노드제이에스 - 노드의 비동기 패턴 Do it! Node.js 프로그래밍 입문 공부단 4일차 입니다. 프라미스 콜백함수을 계속 사용하다보면 콜백지옥에 빠집니다. 그래서 등장한게 Promise입니다. 노드 모듈에는 프라미스를 반환하는 함수가 따로 있습니다. 프라미스를 실행하고 처리한 결과가 성공이면 then(), 실패하면 catch(), 성공과 실패에 관계가 없을 때는 finally()를 사용합니다. (then()이나 catch()는 반환값이 프라미스이므로 프라미스를 계속 연결해서 사용할 수 있는데 이것을 프라미스 체이닝이라고 합니다.) const fs = require("fs").promises fs.readdir("./05") .then(result => console.log(result)) .catch(err => console.log.. 2024. 2. 6. [Node.js] 노드제이에스 - 논블로킹I/O Do it! Node.js 프로그래밍 입문 4일차 입니다. 노드에서는 대부분의 작업을 비동기로 처리합니다. 이것은 노드가 논블로킹I/O로 동작하기 때문입니다. 블로킹I/O 블로킹이란 코드 실행을 중간에 막는 것으로 코드 실행이 멈춘다는 뜻입니다. 동기함수를 사용하면 블로킹, 즉 코드 실행을 막는 현상이 발생할 수 있습니다. const fs = require("fs") const data = fs.readFileSync("./03/example.txt") // 블로킹 console.log(data) // 파일읽기 끝날때까지 대기 console.log("The End") 위에 코드는 간단해서 큰 차이를 못느낄 수도 있지만 서버를 사용할 때는 더 문제가 됩니다. const http = require('http.. 2024. 2. 6. [Node.js] 노드제이에스 - 동기처리와 비동기처리 Do it! Node.js 프로그래밍 입문 공부단 4일차 입니다. 동기처리 동기처리란 작성한 순서대로 작업을 처리하는 것을 동기처리라고 합니다. 자바스크립트는 기본적으로 동기처리 방식입니다. console.log("first") console.log("second") console.log("third") 자바스크립트는 싱글 스레드 언어이기 때문에 위와 같은 결과가 나옵니다. 스레드란 하나의 작업이 실행되는 최소단위입니다. 자바스크립트는 이런 스레드가 하나밖에 없어서 한 번에 하나의 작업만 처리할 수 있습니다. 반면에 자바를 비롯한 대부분의 백엔드 프로그래밍 언어는 멀티 스레드입니다. 그래서 동시에 여러 작업을 수행할 수 있습니다. 비동기처리 console.log("first") setTimeout(() .. 2024. 2. 6. [Node.js] 노드제이에스 - 라우팅 Do it! Node.js 프로그래밍 입문 공부단 3일차 입니다. 라우팅 웹 프로그래밍에서 라우팅이란 클라이언트에서 들어오는 요청에 따라 그에 맞는 함수를 실행하는 것을 말합니다. 라우팅을 이용하면 사용자가 입력하는 url에 따라 다른 내용을 보여줄 수 있습니다. 또한 GET이나 POST, PUT, DELETE 같은 요청 메서드에 따라 처리할 함수를 다르게 연결할 수 있습니다. const http = require("http") // 라우팅 const server = http.createServer((req, res) => { const {method, url} = req res.setHeader("Content-Type", "text/plain") if(method === "GET" && url ===.. 2024. 2. 5. [Node.js] 노드제이에스 - 요청 객체와 응답 객체 Do it! Node.js 프로그래밍 입문 공부단 3일차 입니다. 요청 객체 const server = http.createServer((req, res) => { console.log(req) // 요청 객체를 알 수 있다 }) 응답 객체 응답 객체는 헤더와 본문으로 구성되므로 헤더와 본문을 만들어야 합니다. 그리고 응답이 끝난 후에는 응답을 종료해야 합니다. 응답 헤더 만들기 헤더를 만들 때 서버의 자료가 JSON인지 text인지, 헤더는 어떤 유형의 자료를 처리하는지, 서버의 상태는 어떠한지 알려주기도 합니다. 헤더를 만들 때는 기본적으로 setHeader()를 사용하지만 상태 코드를 헤더에 함께 기록하려면 writeHead()를 사용합니다. res.setHeader(이름, 값) res.setHea.. 2024. 2. 5. [Node.js] 노드제이에스 - http 모듈로 서버 만들기 Do it! Node.js 프로그래밍 입문 공부단 3일차 입니다. 서버 만들기 서버를 만드는 함수 - createServer() 서버를 만들 때는 http 모듈을 가져온 후 createServer()를 사용합니다. createServer([옵션], [콜백]) const http = require("http") const fs = require("fs") const server = http.createServer((req, res) => { console.log("요청발생") }) 서버를 실행하는 함수 - listen() 서버 실행하는 함수입니다. listen(포트[, 호스트][, 콜백]) server.listen(3000, () => { console.log("3000번 포트에서 서버 실행") }) 2024. 2. 5. [Node.js] 노드제이에스 - HTTP Do it! Node.js 프로그래밍 입문 공부단 3일차 입니다. 클라이언트와 서버 간에 미리 약속한 규칙을 HTTP 프로토콜이라고 합니다. HTTP 프로토콜 클라이언트에서 서버로 자료를 요청하는 것은 http요청(http request), 서버에서 응답해 클라이언트로 자료를 보내는 것은 http응답(http response)이라고 합니다. 이렇게 요청과 응답을 통해 메시지를 주고 받는데 이 메시지에는 여러 정보가 포함되어 있습니다. 클라이언트가 서버로 보내는 요청 메시지는 요청 헤더와 요청 본문으로 구성됩니다. 서버에서 클라이언트로 보내는 응답 메시지도 응답 헤더와 응답 본문으로 구성됩니다. 중요한 헤더 정보 요청 URL 서버에게 어떤 정보를 보내달라고 요구하는 URL을 요청 URL이라고 합니다. 요청.. 2024. 2. 5. [Node.js] 노드제이에스 - FS 모듈. 버퍼와 스트림 Do it! Node.js 프로그래밍 입문 공부단 2일차 입니다. 버퍼와 스트림 버퍼와 스트림은 파일을 읽거나 쓸 때 한 덩어리로 처리하지 않고 작은 단위로 나눠서 시간을 절약하는 방법입니다. 버퍼 컴퓨터 공학에서 버퍼는 임시 데이터를 저장하는 물리적인 메모리 공간을 가리킵니다. 파일을 읽어 올 때는 전체 내용을 한꺼번에 다 가져오지 않고 한번에 버퍼 하나 크기 만큼만 가져오고, 버퍼가 가득차면 그 내용을 전달해줍니다. 노드의 버퍼에 내용이 이진값으로 저장됩니다. (노드의 버퍼 크기는 고정되어 있습니다.) 스트림 스트림이란 한 곳에서 다른 곳으로 데이터가 이동하는 것, 즉 데이터의 흐름을 가리킵니다. 백엔드 프로그래밍에서 스트림은 서버에서 클라이언트로 혹은 클라이언트에서 서버로 데이터를 보낼 때 사용하는.. 2024. 2. 4. [Node.js] 노드제이에스 - fs모듈. 디렉터리 관리하기 Do it! Node.js 프로그래밍 입문 공부단 2일차 입니다. 디렉터리 만들기 및 삭제하기 디렉터리 만들기 - mkdirSync, mkdir fs.mkdirSync(경로[,옵션]) fs.mkdir(경로[,옵션], 콜백) - 옵션 - recursive: 여러 계층의 디렉터리를 지정했을 때 중간에 존재하지 않는 경로까지 포함해서 디렉터리를 만들 수 있습니다. 기본값은 false입니다. - mode: 디렉터리의 권한을 지정합니다. 기본값은 0o777 (읽기, 쓰기, 실행 권한)입니다. const fs = require("fs") if(fs.existsSync("./test")) { // test 디렉터리가 있다면 console.log("해당 디렉터리는 존재합니다.") } else { fs.mkdir("./.. 2024. 2. 3. 이전 1 2 3 4 5 6 ··· 16 다음 728x90 반응형 LIST