프로그래머스 풀스택 11
posted on 29 Aug 2024 under category programmers in series programmers
백엔드 기초: Node.js + Express 기본(2)
💫 HTTP(규약) Method(목적)
GET: 데이터 조회
ex) 게시판 리스트 불러오기 (GET를 통해 해당 리소스를 조회. 리소스를 조회하고 해당 도큐먼트에 대한 자세한 정보를 가져옴.)
POST: 데이터 생성(등록)
ex) 회원가입/로그인(POST를 통해 해당 URI를 요청 -> 리소스 생성)
PUT: 데이터 수정(덮어쓰기)
ex) 회원정보 전체 수정(PUT를 통해 해당 리소스를 수정)
PATCH: 데이터 수정(일부 수정)
ex) 회원정보 일부 수정(Update에 가장 가깝게 쓰임)
DELETE: 데이터 삭제
HEAD: 서버 리소스의 헤더(메타 데이터의 취득)
OPTIONS: 리소스가 지원하고 있는 메소드의 취득
CONNECT: 프록시 동작의 터널 접속을 변경
TRACE: 웹 서버로 가는 네트워크 경로를 체크
💫 Node.js
💫 Node.js가 비중이 높은 이유
💫 싱글 스레드, 이벤트 기반, 논블로킹 I/O
요리사가 한 명!
싱글 스레드 -> 주문이 밀려도 한 명이 악으로 깡으로 해야함..😭
즉 하나의 클라이언트가 하나의 작업을 함!
논블로킹 I/O -> 한명이 일을 하는데, 요리를 순차적으로 X, 중간중간 비는 시간이 있다면 다른 요리O
ex) 라면 1개(10분 중 물 끓는 시간 5분: 요리사는 물만 쳐다봄.), 볶음밥(완성 5분)
라면 물 끓여놓고 => 볶음밥 요리 => 라면 요리
즉 다른 작업이 완료되는 걸 기다리지않고, 다른 작업을 수행!
이벤트 기반 -> 주문이 들어와야만 일을 함.(없으면 안함!!!)
💫 논블로킹 I/O
<실습>
💫 모듈이란?
💫 모듈을 가져가 쓰고 싶을 때는?
“Node.js 덕분에 자바스크립트 모듈을 만들 수도 있게 되었고 사용도 가능하게 됨!”
모듈 = “라이브러리”
💫 라이브러리(Library)
= 라이브러리 = 모듈
💫 프레임워크(Framework)
💫 npm
💫 figlet
<실습>
figlet(“KIM NANYOUNG!!”, function (err, data) :
매개변수로 콜백 함수인 익명의 함수가 들어감!
익명의 함수를 쓰는 이유 = 이 함수를 다른 데 쓸 일은 없음
figlet 만든 사람이, 매개변수로 함수를 받기로 했기 때문
첫번째 매개변수 “KIM NANYOUNG!!”이라는 문자열을 받아서,
“아스키 아트를 만든 다음에”
두번째 매개변수 function 함수를 실행 = 콜 백
💫let const는 {} 밖에서 사용할 수 없음!
💫http 모듈 뜯어보기
💫 가능하면 var보다 let, const를 사용할 것!
💫 템플릿 문자열
console.log(num1 + " X " + num2 + " = " + num3);
//2015년 이후 자바스크립트에는 + 연산은 지양됨
console.log(`${num1} X ${num2} = ${num3}`);
//템플릿 문자열 지향하기
💫 모듈 삭제하기
💫 package.json
💫 npm i 모듈이름 -g
💫 is-odd-num
홀수: true 반환
짝수: false 반환
npm은 빠르고 간편하게 삭제도 가능 = npm uninstall 모듈
Y 일을 통해 명확히 알게 되었거나 이해한 부분(한 일)에 대해 정리 :
HTTP method, Node.js의 특징을 알게 되었다!
Node.js의 특징: 싱글 스레드, 이벤트 기반, 논블로킹 I/O
모듈(라이브러리) VS 프레임워크, 콜백함수, npm
W 배운 점과 시사점 :
어제 메소드 부분이 갑자기 나온 느낌이라 당황했는데 알고보니 오늘 바로 나와서 좋았고 미리 공부한 느낌이라 이해가 잘 됐다!
Node.js가 프레임워크인 줄 알았는데 아니었다..! 이건 못잊을 것 같다.
T 응용하여 배운 것을 어디에 어떻게 적용할지:
자바스크립트 코드를 짤 때 콜백 함수 활용하기!
npm을 통해 node.js을 쉽게 사용할 수 있음!