8/29_11일차

자햐·2024년 8월 29일
0

교육

목록 보기
10/51

HTTP method

http에 담아보내는 나의 목적 = http method

  • 목적을 영어로..? method
  • HTTP = 규약 = 정해둔 용어가 있다.

(중요)

  • 생성(=등록) : POST
  • 조회 : GET
  • 수정 : PUT(덮어쓴다; 값이 있든 없든 새걸로 덮어쓰기)/PATCH
  • 삭제 : DELETE

(번외)
// HEAD, OPTIONS, CONNECT, TRACE

cf.PATCH : 일부 변경, 부분 수정일 경우에 씀 EX) 마이 페이지 : 연락처, 이메일, 집주소, 이름.. 이 있을때 보통 한두개의 요소만 바꿈 => 부분 수정을 들어간다.

..사실 PATCH가 까다로워서..현직에서는 PUT을 다들 자유롭게 쓰는 편이다.

node.js를 왜 알아야 할까

백엔드에만 쓰이는게 아니에요!
: 넷플릭스, 에어비앤비, 링크드인, 우버, NASA에서 node.js를 씀
: 페이팔, 이베이 ..
: node.js 기반 리액트, 뷰 .. = 프론트엔드 만드는 프레임워크

node.js란
node.js는 자바스크립트를 스크립트 언어 이상으로 프로그래밍 언어 역할을 할 수 있도록 지원하는 플랫폼(운동장)입니다. 즉, 우리는 node.js를 이용하여 자바스크립트로 백엔드를 구현할 수 있습니다.

node.js 특징

node.js 특징 : 싱글 스레드, 이벤트 기반, 논블로킹 I/O

  • 싱글 스레드
    : 예시 - 주방에 요리사가 한 명인 것. 주문이 밀려들어와도, 한 명이 어떻게든 쳐내야 함.
    주문이 없다면? 일 안함. 주문이 들어와야만 일을 함.

  • 이벤트 기반 : 일이 발생해야만 일을 함

  • 논블로킹 I/O : 라면을 끓인다면, 요리사는 물 끓는 시간 동안 할 일이 없다. 볶음밥 주문이 들어온다면 요리사는 물 끓는 시간동안 볶음밥 요리를 하면 된다.
    정리 : 한 명이 일을 할 때 요리를 무조건적으로 순차적으로 하지 않고 중간중간 비는 시간이 있다면 그 시간에 다른 요리를 한다.

cf. 스프링은요? : 기본적으로 싱글 스레드 구조.

논블로킹 실습, setTimeout하면서 모듈 얘기로 넘어감

실습 하면서 논블로킹 특징에 대해 알아봄
파일 : node-base/non-blocking-demo.js

모듈이란

모듈?
내가 만든 게 아니라, 선배 개발자들이 미리 만들어 둔 코드 덩어리

그럼, 선배들이 만들어둔 모듈을 가져다 쓰고 싶으면,,
1) 기본 내장된 것 쓰자 setTimeout() <- 내장 모듈 (아무것도 선언하지 않아도 기본으로 내장되어 있는 함수)
2) 외부 모듈 어떻게 사용하지? -> npm

라이브러리 vs 프레임워크

라이브러리

도서관 : 분류 => 상세 주제의 한 권의 책을 골라냄! 기준: "출판사, 작가, 내용, ..."

  • 장점 : 내가 원하는 걸 빌릴 수 있고
  • 단점 : 고르기가 힘들 수도,, 찾는 시간 오래걸리고, 도서관 가는 시간..

=> 라이브러리 = 모듈

프레임워크

내가 만들고 싶은 서비스를 구현하는 데 필요한 모든 일을 틀 안에서 하는 것
(대조 : 라이브러리 - 내가 원하는 기능을 내가 찾아서 씀

프레임워크 - 필요해보이는 라이브러리(모듈)을 미리 다 틀 안에 넣어뒀습니다.)

node.js는? 웹 브라우저에서만 구동되던 자바스크립트가 vscode에서 구현하고 작동할 수 있게 마련한 런타임(운동장, 플랫폼). 프레임워크라고 말할 수 없다.

모듈

node.js 덕분에 자바스크립트 모듈을 만들 수도 있게 되었고,
사용도 할 수 있게 되었다.

npm, figlet 사용해보기

npm : 외부 모듈 사용할 수 있게 함
npm 사이트 가서 figlet 검색하고 남이 짠 코드 이용해보기

figlet 뜯어보면서 콜백 함수 확인하기

var figlet = require("figlet");

figlet("OH!!", function (err, data) {
// 첫 번째 매개변수 "OH"라는 문자열을 받아서,
// "아스키 아트를 만든 다음에"
// 두 번째 매개변수 function함수를 실행 = 콜 백
  if (err) {
    console.log("Something went wrong...");
    console.dir(err);
    return;
  }
  console.log(data);
});

require() -> 가져오다

예시 : setTimeout(second, 2000);
// 2초 뒤에 second함수를 실행합니다.
// 함수의 매개변수로 변수 또는 값을 전달하는 것이 아니라, 함수를 전달하는 것!
// == "콜백 함수"

매개변수에 함수가 들어간 케이스 : function(err, data){}

// function(err, data) : 함수 이름 없이 익명으로 씀
// = 이 함수를 쓸 일이 다른 곳에는 없어서..
// figlet 만든 사람이, 매개변수로 함수를 받기로 했기 때문

http 모듈 뜯어보면서 콜백 함수 다시 확인하기 (let, const 중괄호 스코프 포함)

let, const 값 변경 가능 , 템플릿 문자열

자바스크립트에서 문자열 쓸 때

// 2015년 이전의 자바스크립트 문자열 나타내기
console.log(num1 + " X " +  num2 + " = " + num3);

// 이후 좀 더 편하게 쓰고자 고안된 템플릿 문자열
console.log(`${num1} X ${num2} = ${num3}`);
if(true){

    var num1 = 7;
    const num2 = 3;     // 블록 {} 스코프, 초기화 이후 값을 못 바꾼다.
    let num3 = 5;       // 블록 {} 스코프, 초기화 이후 값 바꿀 수 있다.


    num3 = 21;

    // 2015년 이전의 자바스크립트 문자열 나타내기
    console.log(num1 + " X " +  num2 + " = " + num3);
    // 템플릿 문자열
    console.log(`${num1} X ${num2} = ${num3}`);
}


npm 좀 더 뜯어보기 - -g, uninstall, is odd 설치/제거, package.json 뜯어보기

피글렛 삭제!

npm uninstall figlet -> 이걸로 지우면?
package.json을 확인해보면 {}가 뜸
다시 npm install figlet으로 설치하면
package.json을 다시 확인해보면


이렇게 뜬다.

key : value방식으로 작성해짐
dependencies : (내가 곧 사용할 것)이라고 이해해도 무방함

.json : 자바스크립트가 생긴 객체

npm install -g(전역으로/전체로) (뒤에 오는 파일을 설치하겠다)
: -g는 잘 안씀 (굳이 전체로 설치할 필요가 없기 때문임)

isOdd : 입력한 문자열 개수가 홀수면 true, 짝수면 false 반환

NPM

외부 모듈을 내 프로젝트에 설치하여 사용할 수 있게 함

npm이 저장소에 "외부 모듈"을 설치를 우리가 원하는 프로젝트에 자동으로 해준다
= 프로그램 설치 파일 다운로드 받아서 더블 클릭
= npm install 모듈

npm uninstall 모듈 하면 삭제 가능

profile
산업과 예술의 만남에 있는 예비 개발자..

0개의 댓글