Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[0주차/공공] 워크북 제출합니다 #4

Merged
merged 5 commits into from
Sep 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions keyword/chapter00/keyword.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
## 🎯핵심 키워드

---

***1. IP***

IP : 인터넷에 연결된 각 장치에 부여된 고유 주소로, 네트워크 상에서 데이터를 송수신하는 데 필요한 주소 체계

- IPv4: 32비트 주소 체계를 사용하여 약 43억 개의 고유 주소 제공.
- IPv6: 128비트 주소 체계를 사용하여 훨씬 더 많은 주소 제공. (주소 고갈 문제 해결)
---


***2. PORT***

PORT : 네트워크에서 IP 주소가 장치 자체를 식별한다면, 포트는 해당 장치 내에서 실행되는 특정 프로세스나 서비스를 식별

- 포트번호 0-65535 범위: 총 65536개의 포트 중, 0-1023까지는 Well-known Ports로, 주요 프로토콜들이 이 범위 내에서 사용. (EX. HTTP는 80번 포트를 사용, HTTPS는 443번 포트를 사용.)
- 포트번호 1024-49151: Registered Ports로 특정 애플리케이션이 사용하도록 예약됨.
- 포트번호 49152-65535: Dynamic 또는 Private Ports로 임시 또는 사용자 정의 애플리케이션에서 사용.
---


***3. CIDR***

CIDR : CIDR은 네트워크 주소를 더욱 효율적으로 할당하고 라우팅할 수 있도록 도와주는 방식으로, 기존의 클래스 기반 주소 체계(Classful Addressing)를 개선한 기술. 이것으로 더 유연하고 효율적으로 네트워크를 구성하는 것이 가능해짐.

- IP 주소 뒤에 슬래시(/)와 숫자로 서브넷 마스크를 표현 (예: 192.168.1.0/24).
- IP 주소를 네트워크 주소와 호스트 주소로 구분하여 네트워크의 크기를 유연하게 조정 가능.
---


***4. TCP와 UDP 차이***

TCP (Transmission Control Protocol): 신뢰성 있는 데이터 전송을 보장. 연결 지향적이며 데이터가 순서대로 도착하는 것을 보장.
UDP (User Datagram Protocol): 비연결 지향적이며, 빠른 전송이 중요할 때 사용. 데이터 손실을 감수하고 전송.

- TCP와 UDP는 위를 보면 알다시피 각각의 장단점이 매우 명확하다. 이 장단점을 통해 TCP는 신뢰성이 중요한 웹 서비스나 파일 전송에 적합하고, UDP는 실시간 스트리밍이나 게임처럼 속도가 중요한 경우에 적합한 경우가 많다. (상황에 맞게 적합한 것으로 선택할 것)
---


***5. Web Server와 WAS의 차이***

Web Server: HTTP 요청을 처리하고, 정적 파일(html, css, js 등)을 제공하는 서버.
WAS (Web Application Server): 동적인 웹 애플리케이션을 실행하고 관리하는 서버로, 비즈니스 로직을 처리

- 간단하게 차이를 정리하면
Web Server는 단순히 클라이언트의 요청에 대해 정적 자원을 반환.
WAS는 동적인 데이터를 처리하고 서버에서 실행되는 애플리케이션 로직을 담당.

- Web Server은 빠른 속도와 효율적인 리소스 사용에 특화된 장점을 가지고, WAS는 동적 애플리케이션 로직을 처리할 수 있는 능력이 탁월하다.

- 각각을 하나만 선택해서 하기 보단 정적인 리소스를 처리할 때엔 Web Server 에서 처리, 동적인 로직을 수행할 때엔 WAS 에서 처리함으로 진행.
57 changes: 57 additions & 0 deletions mission/chapter00/mission.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
## 🔥 미션

---

- (1) 너디너리 홈페이지 접속하는 과정 적어보기 (소켓프로그래밍과 같은 개념 없이 TCP, IP, PORT 등의 개념 등 오늘 배운 내용으로 간단하게 적어주세요)

***1. 브라우저 주소창에 도메인 이름을 입력***
- 사용자가 웹 브라우저 주소창에 www.naver.com과 같은 도메인을 입력.
->웹 브라우저가 URL을 해석

***2. 브라우저가 DNS 서버를 통해 IP 주소 조회***
- 웹 브라우저가 사용자가 요청한 도메인의 IP 주소를 알아내기 위해서 우선 캐시에서 DNS 기록을 확인.
-> 캐시에 존재하지 않는다면 루트 DNS 서버에게 해당 위치를 요청, 이후 DNS 서버를 통해 주소를 알아냄
-> 캐시 데이터가 존재한다면 바로 ISP 서버가 브라우저에게 IP 주소를 안내해준다.

이후 브라우저가 해당 IP주소를 가지고 있는 호스팅 서버에게 웹페이지 출력을 요청. DNS 서버가 해당 도메인에 대응하는 IP 주소(예: 192.168.1.100)를 반환한다.

***3. 라우터를 통해 IP 주소로 서버에 연결***
- 웹 브라우저는 반환된 IP 주소로 TCP/IP 프로토콜을 사용해 너디너리 서버에 연결을 시도.
-> 라우터에서 라우팅 테이블을 통해 해당 요청이 어떤 경로를 통해 가야할지 경로를 지정해주고 해당 경로를 찾아간다.
-> 이후 ARP를 통해 IP주소를 MAC 주소로 변환

***4. 해당 서버와 TCP 연결 시작 (TCP 3-way Handshake)***
- 웹 브라우저와 너디너리 서버가 TCP 연결을 설정하기 위해 3-way handshake (클라이언트가 서버와 SYN(연결 요청),ACK(연결 승인) 메세지를 교환하여 연결을 성립하는 3단계의 프로세스) 절차를 진행.

클라이언트(웹 브라우저)가 서버로 SYN 패킷을 보냄 ->
서버는 SYN-ACK 패킷으로 응답 ->
클라이언트는 ACK 패킷으로 응답을 완료하면서 연결이 성립.

***5. HTTP/HTTPS 요청 전송***
- 연결이 성립되고 난 후, 웹 브라우저는 너디너리 서버로 웹페이지를 요청하는 HTTP/HTTPS 요청 (EX. GET 요청)을 보냄.
이 요청에는 사용자가 접속하려는 페이지 정보(예: 홈페이지)가 포함되고 서버는 해당 요청을 받고 이 요청을 수락할 수 있는지 검사한 후 요청에 대한 응답을 생성하여 브라우저에게 전달.

-> 이때 응답 코드의 정보는 다음과 같다.
1xx (Information Response): 정보 메시지. 서버가 요청을 받았으며 서버에 연결된 클라이언트는 계속해서 작업을 하라는 뜻.
2xx (Successful Response): 서버와의 요청이 성공함.
3xx (Redirection Message) : 요청 완료를 위해 추가 작업 조치가 필요함.
301(Moved Permantly)는 요청한 리소스의 URI가 변경 되었음.
4xx (Client Error Response) : 클라이언트의 Request에 에러가 있음.
5xx (Server Error) : 서버 측의 오류.

***6. 서버 응답***
- 너디너리 서버는 요청을 처리하고, 응답을 만들어 (서버에서 응답하는 내용은 HTML, CSS, Javascript로 이루어짐) 웹 서버가 해당하는 정적 파일(HTML, CSS, JavaScript 등)을 클라이언트에게 반환.

만약 동적인 데이터가 필요하다면, WAS(Web Application Server)에서 해당 요청을 처리한 후 응답을 생성하여 반환.


***7. 웹 브라우저가 응답 처리***
- 웹 브라우저가 서버로부터 받은 데이터를 해석하고, 이것을 정해진 형식으로 해석해 사용자가 볼 수 있도록 화면에 홈페이지를 렌더링.

---


- (2) 깃허브 clone 받아서 실행하고 나온 페이지 스크린 샷 찍기

![screen](./화면%20캡처%202024-09-17%20173554.png)

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.