-
2023 - 06 - 16 HTTP와 웹 서버 & 패키지매니저 (Package Manager)Today I Learned/TIL 06 2023. 6. 16. 09:34
오늘 할일
node 입문 강의듣기, 개인과제 하기
오늘 배운 것
HTTP와 웹 서버 & 패키지매니저 (Package Manager)
HTTP : 통신규약 (프로토콜, protocol) HTTP를 이용하여 서버나 클라이언트(브라우저)끼리 의사소통할 수 있다. 모든 브라우저는 HTTP 프로토콜을 기본으로 지원한다.HTTP 디지털 세상에서 네트워크가 의사표현 수단이고, 통신규약이 의사표현의 방법. HTTP에서는 언제나 Request, Response라는 개념이 존재한다. 1. 브라우저가 서버에게 HTTP request를 한다. method : GET / path : /index.html 2. 서버가 브라우저에게 response를 한다. status : 200 / content-type : text/html / 인코딩방식 : charset= UTF-8 (1)브라우저는 서버에게 자신이 원하는 페이지(URL등의 정보)를 요구 (request)한다. (2)서버는 브라우저가 원하는 페이지가 있는지 확인하고, 있다면 해당 페이지 데이터를 반환(response)한다. (3)브라우저는 서버에게 전달받은 데이터를 기반으로 브라우저에 그려준다.URL등의 익스플로어 -> 개발자도구 -> 네트워크 -> 새로고침 헤더(header) 미리보기(preview) 응답(response) 시작점(initiator) 타이밍(timing) 헤더 추가 데이터, 메타 데이터 : 브라우저가 어떤 페이지를 원하는지 요청받은 페이지를 찾았는지, 성공적으로 찾았는지 헤더에서 요청 메서드 GET : 어떤 리소스를 얻을때 사용됨. 브라우저 웹서핑 할떼 거의 모든 요청은 GET메서드 사용. POSt : 웹 서버에서 데이터를 게시할때 사용. Payload (실질적인 데이터) 서버가 응답을 보낼 때 항상 Payload를 보냄. 클라이언트 (브라우저)가 요청을 할 때도 Payload를 보낼 수 있음. GET method를 제외하곤 모두 Payload를 보낼수 있음.
패키지 매니저 (Package Manager)
Package Manager 패키지매니저는 다른사람이 만든 코드를 다운로드하거나 자신의 코드를 배포하여 다른 사람이 쓸수있도록 하는 것 패키지를 손쉽게 다루는 작업을 안전하고 편리하게 사용하기 위한 툴. Node.js의 대표적인 패키지 매니저 1. npm 2. yarn npm이나 yarn에 업로드된 Node.js 모듈을 패키지라고 부름 모듈이 다른 모듈을 참조하여 사용하는 것과 같이, 패키지도 다른 패키지를 사용할 수 있다. 이런 관계를 의존 관계라고 부름. 1. npm (Node Package Manager) npm은 자바스크립트 패키지(모듈)관리자. Python같은 언어에서 Flask나 BeautifulSoup같은 패키지를 설치할 때 pip가 필요했다면 Node.js에서는 npm을 통해 필요한 패키지를 설치할 수 있다.BeautifulSoup같은 npm을 통해 라이브러리를 쉽게 설치하고 버전을 관리할 수도 있고, 제거할 수도 있다. npmjs.com에서 검색해서 확인할 수 있는 패키지만 설치 가능. https://www.npmjs.com/ Node.js와 상관없이 프론트엔드에서만 사용가능한 자바스크립트 패키지들도 등록되어 있음. 2. yarn npm의 대체재로 FaceBook이 출시한 패키지 매니저 npm의 부족한 부분 보완, 편리기능 추가 npm과 yarn을 하나의 프로젝트에서 동시에 사용할 경우, 모듈을 설치하거나 버전을 수정할 때 오류가 발생할 수 있다. 두가지의 패키지매니저를 한번에 사용 안하는게 났다. - package.json 설치한 패키지들의 버전을 관리할때 사용하는 파일 동일패키지를 사용하더라도, 버전별로 기능을 다르게 사용할수 있으므로 특정한 버전을 설치할 때 필요함. 패키지관리 외에도 프로젝트명, 작성자, 라이센스 정보 등 다양한 메타데이터 기록할 수 있음. npm, yarn 모두 사용가능 - package-Lock.json package.json에서 정의된 패키지 외에도 node_module에 들어있는 패키지들의 버전과 의존관계가 상세하게 기록되어 있음. npm으로 패키지를 설치,수정,삭제할 때마다 패키지들의 의존관계를 package-lock.json파일에 저장함. 저장된 패키지들은 정확히 일치하는 버전만 기록되므로, 프로젝트에서 의존하는 패키지버전을 정확하게 관리할때 사용가능. 익스플로어 -> 개발자도구 -> 네트워크 -> 새로고침 헤더(header) 미리보기(preview) 응답(response) 시작점(initiator) 타이밍(timing) 헤더에서 요청 메서드 GET : 어떤 리소스를 얻을때 사용됨. 브라우저 웹서핑 할떼 거의 모든 요청은 GET메서드 사용. POSt : 웹 서버에서 데이터를 게시할때 사용.
1. package.json 생성 npm init package name: package.json version: description: entry point: test command: git repository: keywords: author: license: 2. package-lock.json 생성 패키지 설치 프로그램 npm install express => 설치한 패키지들의 의존관계를 확인할 수 있다. -> 실제로 설치된 패키지들은 node.modules에서 확인 가능. node.modules : package.json 파일 내용 기반으로 npm install 명령어를 통해 설치된 모듈 파일들이 모여있는곳. package.json에 설정된 모듈과 해당 모듈들이 참고하고 있는 또 다른 모듈들도 설치됨 node.modules 파일은 내 컴퓨터의 정보를 담고있기 때문에 절대로 다른곳에 공유하거나 배포되면 안됨. git ignore : node.modules 폴더를 제외시키는 방법. 하나의 패키지를 설치하기 위해 입력하는 명령어 npm install 명령어가 입력되면 package.json파일을 기반으로 node.modules에 명시된 모듈을 설치해주는 명령어. 내 프로젝트를 다른 사람에게 공유하거나, 다른 사람의 프로젝트를 사용할 때 모듈을 설치하기 위해 실행하는 명령어. package.json에는 "dependencies" 만 있는데, devDependencies로 할 수 있음 개발 단계에서만 필요한 모듈들을 설치할 경우 이곳에 포함됨. npm install -D 모듈이름 아래 입력 npm install jest supertest -D 0. 새터미널 1. 폴더만들고 js파일 만들기 2. npm init -y 3. npm i express
'Today I Learned > TIL 06' 카테고리의 다른 글