Skip to content

Commit 9853a52

Browse files
committed
2 parents fcce19b + 3686e56 commit 9853a52

8 files changed

+113
-2
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,3 +197,9 @@
197197
- throw와 throws
198198
- try-catch-finally
199199
- exception 클래스
200+
201+
### 8️⃣ internet
202+
203+
- tcp와 udp
204+
- OSI 7계층
205+
- 디자인 패턴

자바(Java)/7. 예외 클래스/exception 클래스의 예시를 말해주세요.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@
3636

3737
- 예외 : 프로그램 실행 중 개발자의 실수로 예기치 않은 상황 발생할 때임.
3838

39-
- 체크 예외는 반드시 에러 처리(try/catch or throw) 해야 함
39+
- 체크 예외는 반드시 예외 처리(try/catch or throw) 해야 함
4040

41-
- 언체크 예외는 에러 처리를 강제하지 않음
41+
- 언체크 예외는 예외 처리를 강제하지 않음
4242
![image](https://github.com/user-attachments/assets/a8defc13-4c3f-46f2-8e19-7b3256c10593)
4343

4444
### 참고
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
## 301과 302 상태 코드의 의미와 차이는 무엇인가요?
2+
3+
- **301 Moved Permanently** : 리소스가 **영구적으로** 이동했음을 의미. 브라우저나 검색 엔진은 이 URL을 갱신해야 한다.
4+
5+
- **302 Found** : 리소스가 **임시로** 이동했음을 의미. 원래의 URL을 유지하고 임시로 다른 URL로 리디렉션한다.
6+
7+
### HTTP 상태 코드
8+
9+
| 상태 코드 | 의미 | 설명 |
10+
| --------- | --------------------- | ------------------------------------------------------------------------------------ |
11+
| 100 | Continue | 클라이언트가 요청을 계속해도 된다는 의미입니다. |
12+
| 200 | OK | 요청이 성공적으로 처리되었음을 의미합니다. |
13+
| 201 | Created | 요청이 성공적으로 처리되었으며, 새로운 리소스가 생성되었음을 의미합니다. |
14+
| 204 | No Content | 요청이 성공적으로 처리되었으나, 반환할 콘텐츠가 없음을 의미합니다. |
15+
| 301 | Moved Permanently | 리소스가 영구적으로 새로운 위치로 이동했음을 의미합니다. |
16+
| 302 | Found | 리소스가 임시로 새로운 위치로 이동했음을 의미합니다. |
17+
| 304 | Not Modified | 리소스가 변경되지 않았으므로 클라이언트는 캐시된 버전을 사용해야 함을 의미합니다. |
18+
| 400 | Bad Request | 클라이언트의 요청이 잘못되었음을 의미합니다. |
19+
| 401 | Unauthorized | 인증이 필요하거나 인증이 실패했음을 의미합니다. |
20+
| 403 | Forbidden | 서버가 요청을 거부했음을 의미합니다. |
21+
| 404 | Not Found | 요청한 리소스를 찾을 수 없음을 의미합니다. |
22+
| 405 | Method Not Allowed | 요청한 HTTP 메서드가 허용되지 않음을 의미합니다. |
23+
| 500 | Internal Server Error | 서버에서 요청을 처리하는 동안 오류가 발생했음을 의미합니다. |
24+
| 502 | Bad Gateway | 게이트웨이나 프록시 서버가 상위 서버로부터 유효하지 않은 응답을 받았음을 의미합니다. |
25+
| 503 | Service Unavailable | 서버가 현재 요청을 처리할 수 없음을 의미합니다. |
26+
| 504 | Gateway Timeout | 게이트웨이나 프록시 서버가 상위 서버로부터 응답을 기다리다 시간 초과됨을 의미합니다. |
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
## OSI 7계층에 대해서 설명해주세요.
2+
3+
- OSI 7계층(Open Systems Interconnection Reference Model 7 Layers) : **국제 표준화 기구에서 네트워크 통신이 이뤄지는 과정을 7단계로 나눈 네트워크 표준 모델**
4+
5+
- 각 계층은 독립적이며 데이터를 송신할 때 각 계층에서 필요한 정보를 추가해 데이터를 가공함. 이때 제어 정보를 담은 **헤더(header)****트레일러(trailer)** 가 붙는데 이 과정을 **데이터 캡슐화**라고 함. 데이터 캡슐화하는 이유는 수신부의 같은 계층에서 데이터 호환성을 높이고 오류의 영향을 최소화하기 위해서임. **수신부**에서는 헤더와 트레일러 분석해 제거하는 **역캡슐화**를 진행하며 각 계층에 필요한 제어 정보를 얻음.
6+
7+
### OSI 7계층 전체 구조
8+
9+
![alt text](https://miro.medium.com/v2/resize:fit:640/format:webp/1*7yPBGx_K8GymgeGfzhfznA.gif)
10+
11+
> 이미지 출처 : [📢OSI Model — 7 Layers — Dataflow example 📧](https://medium.com/@sreekanth.thummala/osi-model-7-layers-dataflow-example-b711dbca5eff)
12+
13+
1. **물리 계층** : 데이터를 비트 단위의 0과 1로 변환한 후 장비를 사용해 전송하거나 전기 신호를 데이터로 복원함. 리피터, 허브 등이 물리 계층에 해당하는 장비임.
14+
15+
2. **데이터 링크 계층** : 데이터 흐름을 관리하며 데이터의 오류 검출 및 복구 등을 수행함. 브리지, 스위치, 이더넷이 데이터 링크 계층의 장비에 해당됨.
16+
3. **네트워크 계층** : 데이터를 송신부에서 수신부까지 보내기 위한 최적 경로를 선택하는 라우팅을 수행함. 이때 선택한 최적 경로를 라우트라고 함. 네트워크 계층의 장비로는 라우터가 있음.
17+
4. **전송 계층** : 신뢰성 있는 데이터를 전달하기 위한 계층으로 TCP, UDP 같은 전송 방식과 포트 번호 등을 결정함.
18+
5. **세션 계층** : 세션의 유지 및 해제 등 응용 프로그램 간 통신 제어와 동기화를 함.
19+
6. **표현 계층** : 데이터를 표준화된 형식으로 변경함.
20+
7. **응용 계층** : HTTP, FTP 등의 프로토콜을 사용자가 직접적으로 접하는 응용 프로그램의 UI를 통해 제공함.
21+
22+
### 기존 네트워크 공부 내용 참고
23+
24+
[네트워크/1. 네트워크 레이어와 HTTP 프로토콜/OSI 7 layer란.md](https://github.com/YJ-ComputerScience-Study/CS-Study/blob/main/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/1.%20%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%EB%A0%88%EC%9D%B4%EC%96%B4%EC%99%80%20HTTP%20%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C/OSI%207%20layer%EB%9E%80.md)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
## TCP packet은 어떻게 생성되나요?
2+
3+
TCP 패킷은 **헤더****데이터**로 구성된다.
4+
5+
헤더는 출발지/목적지 포트, 시퀀스 넘버, 확인 응답(ACK) 번호, 플래그 비트, 창 크기, 체크섬 등의 필드를 포함하며, 이 헤더와 데이터를 묶어 패킷을 생성한다.
6+
7+
### TCP 헤더 구조
8+
9+
![image](https://github.com/user-attachments/assets/168e6174-f0cd-4817-9d94-c2ef384926e5)
10+
11+
### TCP/IP의 데이터 전송과 데이터 단위
12+
13+
![image (1)](https://github.com/user-attachments/assets/66284589-b897-45c4-93c7-156304fd8985)
14+
15+
송신할 때 계층 지날 때마다 각 계층에서 헤더가 붙게 되고, 수신 측은 역순으로 헤더를 분석하게 된다.
16+
17+
### 참고
18+
19+
[쉽게 이해하는 네트워크 11. 인터넷의 TCP/IP 프로토콜과 패킷 교환 방식](https://better-together.tistory.com/110)
20+
21+
[TCP/IP 정리](https://medium.com/@rlatla626/tcp-ip-정리-204e8a986d98)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
## TCP와 UDP의 차이점을 말해주세요.
2+
3+
- **TCP** : 연결 지향적 프로토콜로, 패킷을 하나의 가상 회선으로 전송하기 때문에 데이터 전송의 신뢰성 보장, 패킷 순서와 무결성을 유지함. 3-way handshake 과정이 필요함.
4+
5+
- **UDP** : 비연결 지향적 프로토콜로, 데이터그램 방식을 이용해 패킷을 교환하기 때문에 빠른 전송이 가능하지만, 신뢰성, 순서 보장이 없음. 주로 스트리밍, 게임 등에 사용됨.
6+
7+
### 기존 네트워크 공부 내용 참고
8+
9+
[네트워크/4. TCP & UDP/TCP와 UDP의 차이점을 설명해 보세요.md](https://github.com/YJ-ComputerScience-Study/CS-Study/blob/main/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/4.%20TCP%20%26%20UDP/TCP%EC%99%80%20UDP%EC%9D%98%20%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%84%20%EC%84%A4%EB%AA%85%ED%95%B4%20%EB%B3%B4%EC%84%B8%EC%9A%94.md)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## forward와 redirect의 차이는 무엇인가요?
2+
3+
- **forward** : 서버 내부에서 요청을 다른 자원으로 전달함. **클라이언트는 URL 변경을 인식하지 못함.**
4+
5+
사용 사례 :
6+
7+
- 동일한 데이터로 다른 리소스를 호출하여 처리해야 할 때.
8+
9+
- 데이터를 유지하면서 화면 전환이 필요할 때.
10+
11+
- **redirect** : 클라이언트에게 새로운 URL로 요청하도록 응답을 보냄. **클라이언트는 URL이 변경된 것을 인식함.**
12+
13+
사용 사례 :
14+
15+
- **PRG 패턴**(Post/Redirect/Get)에서, 폼 제출 후 새로고침에 따른 중복 요청을 방지하기 위해 사용.
16+
17+
- 클라이언트가 특정 URL로 이동하도록 안내해야 할 때.
18+
- 외부 리소스(다른 도메인 등)로 이동해야 할 때.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
## 왜 TCP는 3 handshakes를 필요로 하나요? 왜 2개가 아니죠?
2+
3+
3-way handshake는 연결을 설정하기 위해 클라이언트와 서버가 서로 준비 상태임을 확인하고, 데이터 전송을 안전하게 시작하기 위해 필요합니다. 2번의 핸드셰이크는 양쪽의 준비 상태를 충분히 확인하지 못해 신뢰성이 떨어질 수 있습니다.
4+
5+
### 기존 네트워크 공부 내용 참고
6+
7+
[네트워크/4. TCP & UDP/TCP의 연결 및 해제 과정을 설명해 보세요.md](https://github.com/YJ-ComputerScience-Study/CS-Study/blob/main/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/4.%20TCP%20%26%20UDP/TCP%EC%9D%98%20%EC%97%B0%EA%B2%B0%20%EB%B0%8F%20%ED%95%B4%EC%A0%9C%20%EA%B3%BC%EC%A0%95%EC%9D%84%20%EC%84%A4%EB%AA%85%ED%95%B4%20%EB%B3%B4%EC%84%B8%EC%9A%94.md)

0 commit comments

Comments
 (0)