(TIL) 2024-11-18
(TIL) 2024-11-18
웹과 HTTP
- 웹 브라우저 : 웹 서버로부터 정보를 요청하고 받아 사용자에게 보여주는 소프트웨어
- DNS(Domain Name Service): 도메인 이름을 중개하여, IP로 변경해주는 서비스를 제공.
IP(Internet Protocol): 인터넷 상에 존재하는 해당하는 장치의 위치를 식별 -IPv4 : 32비트(8비트 4그룹) -IPv6 : 128비트(16비트 8그룹)
- 통신규약(Protocol) : 컴퓨터끼리 데이터를 주고 받을때 정해둔 약속
- HTTP : 통신규약 중 하나.
- HTTP 와 HTTPS 의 차이 : ‘암호화’
- Method 1. Get : 리소스를 얻을 때 사용 2. POST : 데이터를 게시할 때 사용
- Header
Paylaod
- 웹 서버
- HTTP를 이용하여 인터넷 상에서 클라이언트의 요청을 처리하고 응답해주는 컴퓨터 또는 프로그램. 정적인 컨텐츠를 제공.
- 웹 어플리케이션 서버 (WAS - Web Application Server)
- 웹 서버와 협력하여 동적인 컨텐츠를 제공
Node.js
- 자바스크립트 : 정적인 페이지를 동적으로 표현하기 위한 언어
- 노드 : 크롬 V8엔진 javascript로 빌드된 javascript 런타임
- 논 블로킹(Non-blocking) I/O: 시스템 호출이 완료되기를 기다리지 않고 바로 다음 작업으로 즉시 넘어갈 수 있는 방식이므로 호출된 함수는 작업의 완료 여부와 상관없이 즉시 제어권을 호출한 함수에게 반환합니다.
- 블로킹(Blocking) I/O: 한 번에 하나의 작업만을 처리할 수 있으며, 호출된 함수가 자신의 작업을 모두 마칠 때 까지 호출한 함수에게 제어권을 넘겨주지 않습니다.
- 싱글 스레드 : 레드 하나를 사용하는 것이며, 동시에 하나의 작업만을 처리할 수 있음을 의미
- 스레드(Thread)란 프로그램이 동작할 때, CPU 또는 프로세서를 사용하는 단위
- 호출 스텍(Call Stack): 함수의 실행 순서를 추적하는 자료 구조
- 이벤트 루프 : 여러 이벤트들과 같은 비동기 작업들을 모아서 관리하고, 어떤 순서대로 실행해야 하는지 도와주는 도구
- libuv : 비동기 I/O 작업을 수행 할 수 있게 해주는 라이브러리
- 논 블로킹(Non-blocking) I/O: 시스템 호출이 완료되기를 기다리지 않고 바로 다음 작업으로 즉시 넘어갈 수 있는 방식이므로 호출된 함수는 작업의 완료 여부와 상관없이 즉시 제어권을 호출한 함수에게 반환합니다.
Package Manager
- 패키지(Package) : 코드의 재사용성을 높이기 위해 작성된 독립적인 코드 조각(모듈)
- 패키지 매니저(Package Manager) : 패키지를 손쉽게 다루는 작업을 안전하고 편리하게 사용하기 위한 툴
- npm(Node Package Manager) : 자바스크립트에서 사용할 수 있는 패키지(모듈) 관리자.
- yarn : Facebook이 2016년에 출시한 패키지 매니저. 보안 성능이 향상된 패키지 매니저. 패키지 설치 속도가 npm보다 빠르다는 장점. 여러개를 동시에 설치할 수 있다.
- package.json : 프로젝트에 대한 정보와 설치한 패키지들의 버전을 관리할 때 사용하는 파일. npm과 yarn 모두 동일한 package.json 파일을 참조.
- package-lock.json과 yarn.lock : npm으로 패키지를 설치, 수정, 삭제할 때마다 패키지들의 정확한 의존 관계를 package-lock.json파일에 저장. lock 파일들은 개발 환경 간에 일관된 패키지 버전을 보장
Express.js
Express.js : Node.js로 서버를 빠르고 간편하게 만들 수 있게 도와주는 가장 대표적인 웹 프레임워크
- 웹 프레임워크 (Web FrameWork) : 웹 서비스를 빠르게 구현할 수 있게 도와주는 도구
Module
- JavaScript 코드를 논리적인 단위로 나누는 방법.
- 코드의 재사용성을 높이고, 코드를 분리하여 관리할 수 있으므로 유지 보수하기 수월.
- 네임스페이스(Name Space)를 분리하여, 같은 이름의 함수나 변수가 충돌하는 것을 방지
API와 REST API의 개념
API : 서로 다른 소프트웨어나 어플리케이션 간을 연결해주는 매개체이자 약속, 중개자의 역할
- REST API : HTTP를 통해 웹 서비스의 자원에 접근하는 방식을 “REST 아키텍쳐”의 규칙을 따라 구현된 API
- 자원(Resource) - URL
- 행위 - HTTP method - Create : 생성(POST) - Read : 조회(GET) - Update : 수정(PUT),(PATCH) - Delete : 삭제(DELETE)
- 표현 - JSON, XML 같은 형식을 이용해서 자원을 표현
Router
- Routing은 클라이언트의 요청 조건(Http 메서드, 주소 등)에 대응해 응답(Response)하는 방식을 말합니다.
- Router란? 여기서 말하는 Router는 클라이언트의 요청을 쉽게 처리 할 수 있게 도와주는 Express.js의 기본 기능중 하나
1
router.METHOD(PATH, HANDLER);
- Router란? 여기서 말하는 Router는 클라이언트의 요청을 쉽게 처리 할 수 있게 도와주는 Express.js의 기본 기능중 하나
미들웨어(Middleware)란 서버에서 요청을 받을때 가끔 모든 요청에 대해 공통적인 처리를 하고싶은 경우가 생길 수 있습니다. 그럴때 미들웨어를 이용하여 서버의 요청/응답에 대해 공통적으로 관리
API Client란 개발단계에서 우리가 작성한 API의 요청을 확인하거나 테스팅 할 때 도움을 주는 툴
This post is licensed under CC BY 4.0 by the author.