Super Kawaii Cute Cat Kaoani
본문 바로가기
🏃‍♀️ 대외활동/UMC 7기 - Node.js

[UMC 7th Server] Chapter 0. 서버 처음 해보기 워크북

by wonee1 2024. 9. 26.
728x90

 

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 차이 (사진 출처:https://velog.io/@dae_eun2/TCP-%EC%99%80-UDP%EC%9D%98-%ED%8A%B9%EC%A7%95%EA%B3%BC-%EC%B0%A8%EC%9D%B4)

 

 

 

🔹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 등 다양한 네트워크 지식이 나와서 네트워크 전공시간에 배웠던 부분을 복습할 수 있어서 좋았다!

 

 

 

 

 

 

728x90