Chapter 0. 서버 처음 해보기 워크북 기록
🎯핵심 키워드 정리
🔹 IP
• IP란 인터넷 상에서 사용하는 주소 체계를 의미한다
인터넷에 연결된 모든 PC는 IP 주소 체계를 따라 네 덩이의 숫자로 구분된다
(ex. 192.168.0.1 이런 식으로!)
• 웹 브라우저에 닷(.) 으로 구분된 네 덩이의 숫자를 입력하면, 그 주소에 해당하는 페이지로 접속할 수 있다
🔹IP 중 이미 용도가 정해진 주소
• localhost , 127.0.0.1 : 현재 사용 중인 로컬 PC를 지칭한다
• 0.0.0.0, 255.255.255.255 : broadcast address , 로컬 네트워크에 접속된 모든 장치와 소통하는 주소
🔹 PORT
• 컴퓨터가 각종 신호, 정보 등을 주고 받을 수 있도록 해주는 통신 통로 (=컴퓨터의 도로)
• IP 내에서 애플리케이션 상호 구분을 위해 사용하는 번호
• 이미 사용 중인 포트는 중복 해서 사용할 수 없다.
• 포트 번호는 0~65, 535 까지 사용할 수 있다 (그 중 0~1024번까지는 이미 주요 통신을 위한 규약에 따라 정해져있다)
🔹 규약을 통해 역할이 정해져 있는 포트 번호 (22 : SSH 80 : HTTP 443: HTTPS)
• 22 : SSH → 원격 접속을 위한 포트 번호 EC2 인스턴스에 연결할 때 사용
• 80 : HTTP → HTTP로 통신할 때 사용
• 443: HTTPS → HTTPS로 통신할 때 사용
🔹 CIDR
• 인터넷상의 데이터 라우팅 효율성을 향상시키는 ip 주소 할당 방법
• 즉 ip 주소 뒤에 슬래시(/) 숫자가 붙은 것들은 CIDR 표기법을 사용한 것이다
• 기존 네트워크 클래스로 나눠 정의하던 IP 정보를 class 없이 유연하게 나눠줄 수 있는 라우팅 기법이다.
🔹Class
• class는 총 5가지의 종류가 있다 (A,B,C,D,E)
• 보통 A,B,C 만 알고 있으면 충분하다! (D,E는 멀티캐스트, 연구용)
🔹 TCP
• 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜
• 3-way handshaking 과정을 통해 연결을 설정하고 4-way handshaking 을 통해 해제한다
🔹UDP
• 데이터를 데이터크램 단위로 처리하는 프로토콜
• TCP와 달리 비연결형 프로토콜이다
🔹TCP와 UDP의 차이
TCP 특징
• 연결 지향 방식으로 패킷 교환 방식을 사용
• 흐름 제어 및 혼잡 제어.
• 높은 신뢰성을 보장한다.
• UDP보다 속도가 느리다.
UDP 특징
• 비연결형 서비스로 데이터그램 방식을 제공한다
• 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
• UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다.
• 신뢰성이 낮다
• TCP보다 속도가 빠르다
🔹Web Server란?
• 정적인 리소스를 처리하는 서버 (HTML, CSS 이미지 등)
• 주요 소프트웨어로 Apache, Nginx, IIS 가 있다
• HTTP 프로토콜을 이용해 클라이언트에게 웹 페이지를 제공
🔹WAS란?
• 동적인 콘텐츠(웹 애플리케이션)를 처리하고 제공하는 서버
• 웹 애플리케이션 실행 및 데이터 처리, 웹 서버와 클라이언트 간의 중계 역할
🗺️ 간단한 개념 마인드맵
☑️ 실습 인증
1. 저장소 다운로드 받기
VS code 터미널에서 git clone https://github.com/sudosubin/umc-7th-nodejs-first-run 명령어를 사용해서 저장소 다운로드
2. 의존성 설치하기
npm install 명령어를 사용하여 설치 후 3개의높은 심각도(high severity) 취약점이 발견되어 npm audit fix 명령어를 사용하여 취약점 자동 수정
➕ 취약점 관련 명령어
자동 수정 (npm audit fix):
🔹 발견된 취약점을 자동으로 수정 가능
더 심각한 취약점이 있을 경우 (npm audit fix --force):
🔹 특정 취약점이 강제로 수정되지 않는 경우, 모든 패키지를 강제로 업데이트 하는 명령어
취약점 상세 정보 확인 (npm audit):
🔹 각 취약점의 세부 정보를 확인하고 수동으로 패키지를 업데이트
3. Node.js 서버 실행하기
npm run start 명령어 사용하여 서버를 실행시킴
→ localhost:3000으로 접속하여 서버 실행을 확인함
🔥 미션
1. 너디너리 홈페이지 접속하는 과정 적어보기 (소켓프로그래밍과 같은 개념 없이 TCP, IP, PORT 등의 개념 등 오늘 배운 내용으로 간단하게 적어주세요)
(1) 사용자가 웹 브라우저에 URL 입력 사용자가 웹 브라우저 주소창에 https://demoday.neordinary.co.kr/ URL을 입력한다
(2) DNS 요청
URL에 포함된 도메인 이름을 DNS 서버에 요청하여 해당 도메인에 연결된 IP 주소를 조회한다.
(3) TCP 연결 생성
조회된 IP 주소로 TCP를 사용해 연결을 생성한다. TCP는 3-way handshaking 과정을 거쳐서 연결을 수립한다.
(4) HTTP 요청 전송
TCP 연결이 완료되면 클라이언트(웹브라우저)는 IP 주소와 포트 번호를 통해 너디너리 서버에 요청을 보낸다. (이때 요청은 너디너리 홈페이지의 데이터를 보내달라는 것! )
(5) 서버 응답
서버는 요청을 처리한 후 웹페이지 데이터(HTML,CSS 등 웹사이트를 구성하는 모든 요소)를 HTTP 응답으로 클라이언트(웹 브라우저)에게 보낸다.
(6) 웹 브라우저가 페이지 렌더링
브라우저는 받은 데이터를 분석하고 웹페이지 화면을 렌더링하여 사용자에게 표시한다.
(7) 연결 종료
웹 브라우저와 서버 간의 데이터 전송이 완료되면 TCP 연결이 정상적으로 종료된다.
2. 깃허브 clone 받아서 실행하고 나온 페이지 스크린 샷 찍기
📢 0주차 학습 후기
😺: Node.js 실습을 통해서 셋팅 방법을 다시 리마인드할 수 있어서 좋았다. 또한 ip, port 등 다양한 네트워크 지식이 나와서 네트워크 전공시간에 배웠던 부분을 복습할 수 있어서 좋았다!
'🏃♀️ 대외활동 > UMC 7기 - Node.js' 카테고리의 다른 글
[UMC 7th Server] Chapter 4. ES6와 프로젝트 파일 구조의 이해 (1) | 2024.10.28 |
---|---|
[UMC 7th Server] Chapter 3. API URL의 설계 & 프로젝트 세팅 (1) | 2024.10.10 |
[UMC 7th Server] Chapter 2. 실전 SQL 워크북 (1) | 2024.10.06 |
[UMC 7th Server] Chapter 1. Database 설계 워크북 (3) | 2024.09.26 |
[UMC 7기/Node.js 파트] UMC 7기 합격 후기 (0) | 2024.09.23 |