본문 바로가기

전체 글82

8. 라우팅 라우팅 : 클라이언트에서 요청한 URL에 따라 다른 내용을 표시하는 것 ch04 - : 각 url 마다 화면에 출력되는 내용 달리 하기 ※res.statusCode : 상태 코드를 설정 ※텍스트 문자열을 한 번만 보낸다면 res.write 함수를 쓰지 않고 res.end로 처리 가능 const http = require("http"); const server = http.createServer((req, res) => { const { method, url } = req; //요청 메서드, url 가져오기 res.setHeader("Content-Type", "text/plan"); if (method === "GET" && url === "/home") { //메서드가 GET, url이 /home 일 .. 2024. 3. 1.
7. HTTP 모듈 HTTP 프로토콜 : 사용하는 언어가 다른 클라이언트와 서버 간 똑같이 인식할 수 있도록 약속한 규칙 -요청(request) : 클라이언트에서 서버로 자료를 요청하는 것 1) 헤더 : 사이트 주소 2) 본문 : 사용하는 시스템 정보, 웹 브라우저 정보, 사용 언어 등 -응답(response) : 서버에서 클라이언트로 자료를 보내 응답하는 것 1) 헤더 : 브라우저 창에 보여줄 내용(텍스트, 이미지 등) 2) 본문 : 파일 형식, 인코딩 등 파일과 관련된 기타 정보 요청 URL : 클라이언트가 서버에게 어떤 정보를 보내달라고 요구하는 URL ex) https://www.google.com 요청 메서드 : 서버에 보낸 정보를 어떻게 처리할 것인지 알려줌 -GET : 서버에서 정보를 가져옴 -POST : 서버.. 2024. 2. 29.
6. 버퍼, 스트림, 파이프 버퍼 : 임시 데이터를 저장하는 메모리 공간, 버퍼가 가득차면 데이터 전달 -크기가 고정되어 있고 이진값으로 저장 스트림 : 한 곳에서 다른 곳으로 데이터를 전송, 데이터의 흐름을 가리킴 -리더블(Readable) 스트림 : 데이터를 읽기 위한 스트림 -라이더블(Writable) 스트림 : 데이터를 쓰기 위한 스트림 파이프 : 2개의 스트림을 1개로 연결 ch03 - : readMe.txt 파일을 스트림으로 읽어 옴 ※createReadStream(경로, 내용[, 옵션]) : 리더블 스트림을 사용하는 함수 ※옵션 -fd : 파일을 여는 작업을 허락, 기본값은 null -autoClose : 읽기가 끝난 후 파일을 자동으로 닫을 지 지정, 기본값은 true -start : 파일을 어디서부터 읽을 지 지정,.. 2024. 2. 28.
5. fs 모듈 fs 모듈 : 파일이나 디렉터리(폴더)에 접근해서 파일/디렉터리 관련 작업을 수행하는 모듈 ch03 - : ch03 디렉터리(폴더)에 있는 파일을 표시 ※readdir(경로[, 옵션], 콜백) : 지정한 경로의 디렉터리를 읽고, 디렉터리 내부에 파일 이름을 모두 표시 ※옵션 -encoding : 반환값 형태 지정, 기본값은 'uft8(텍스트 형식)' -withFileTypes : 디렉터리 항목으로 표시 유무 지정, 기본값은 false const fs = require("fs"); //fs 모듈을 가져옴 fs.readdir("./", (err, files) => { //경로, 콜백 지정 if (err) { console.error(err); //에러를 표시 } else { console.log(files).. 2024. 2. 27.
4. path 모듈 path : 파일 경로나 디렉터리 경로를 다루는 모듈 -운영체제 간에 경로 구분자를 통일 (윈도우 : 역슬래시(\), MacOS와 리눅스 : 슬래시(\)) -새로운 경로를 만들거나, 가져온 경로 정보를 분해해서 한 정보만 꺼냄 ch03 - -join() : 입력한 경로를 하나의 경로로 연결 -dirname() : 파일 이름을 제외하고 경로만 출력 -basename() : 경로를 제외하고 파일 이름만 출력 -extname() : 파일 확장자만 출력 -parse() : 경로를 각각 객체로 반환해서 출력 const path = require("path"); //path 모듈 가져오기 const joinPath = path.join("some", "work", "ex.txt"); //join 함수 : 입력한 경.. 2024. 2. 25.
3. 모듈 시스템 모듈 : 프로그램을 최대한 작은 기능 단위로 나누고 파일 형태로 저장한 것 -CommonJS 모듈 시스템 : require 함수를 통해 모듈을 사용, 현재 가장 많이 사용 -ES 모듈 시스템 : 에크마스크립트가 발전하면서 모듈을 처리 ch02 - , , : CommonJS 모듈 시스템 사용 -module.exports : 모듈을 외부로 내보내는 명령어 -require() : 모듈을 가져오는 함수 //user.js const user1 = "Kim"; const user2 = "Lee"; const user3 = "Choi"; module.exports = { user1, user2, user3 }; //user1, user2, user3을 외부로 내보냄 //hello.js const hello = (na.. 2024. 2. 24.
2. 자바스크립트 비동기 처리 비동기 처리 : 시간이 걸리는 함수와 빨리 처리할 수 있는 함수가 뒤섞여 있을 때, 함수들을 원하는 처리 순서에 맞게 프로그래밍하는 것 ch02 - ※setTimeout() : 특정한 시간이 지난 후에 실행하는 함수 -밀리초를 0으로 설정해도 함수 자체에 지연 시간이 포함 const displayA = () => console.log("A"); const displayB = (callback) => { setTimeout(() => { console.log("B"); callback(); }, 2000); //2초 후에 displayB 함수 실행 }; const displayC = () => console.log("C"); displayA(); displayB(displayC); //displayB 함수.. 2024. 2. 23.
1. node.js, npm ※node.js : 웹 브라우저 밖에서도 자바스크립트를 사용할 수 있게 환경을 만들어주는 도구 ch01 - : 첫 node 프로그램 실행 const hello = (name) => { console.log(name + "님, 환영합니다."); }; hello("홍길동"); >> node hello ※npm(node package manager) : 다양한 패키지를 관리하고 다운로드 해주는 명령어 ※npm init : npm을 초기화해서 package.json 파일 생성, 개발할 때 초기화 필수 ※npm i/install '모듈' : 패키지를 설치 ※npm uninstall '모듈' 패키지를 삭제 ch01 - : 'ansi-colors'라는 모듈을 다운받아 터미널 글자 색깔 적용 >>npm i ansi-c.. 2024. 2. 22.