본문 바로가기

면접준비

[면접을 위한 CS 전공지식노트] 네트워크

<네트워크의 정의>

네트워크: 노드와 링크가 서로 연결되어 있으며 리소스를 공유하는 집합

노드: 서버, 라우터, 스위치 등등의 네트워크 장치 

링크: 유선 / 무선

 

 


<처리량과 지연시간>

처리량: 링크 내에서 성공적으로 전달된 데이터의 양. 얼마만큼의 트래픽을 처리했는가.

단위: bps. bits per second

트래픽: 특정 시점에 링크 내에 흐르는 데이터의 양

대역폭: 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수

 

트래픽 증가 = 링크 내에 흐르는 데이터가 많아짐

처리량 증가 = 처리되는 트래픽이 많아짐

 

지연시간: 요청이 처리되는 시간. 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간.

 


<네트워크 토폴로지>

노드와 링크 배치 방식. 연결 형태.

ex: 버트링성 (버스형/트리형/링형/성형)

 

1) 버스형 구조: 하나의 네트워크 회선에 여러 대의 노드가 멀티 포인트로 연결되어 있는 구조

 

출처: 수제비 정보처리기사 3분 특강

-장점: 설치 쉽다. 저비용

-단점: 회선 특정 부분 고장시 전체에 영향

 

 

2) 트리형 구조: 각 노드가 계층적으로 연결되어 있는 구성 형태. 

-장점: 많은 단말 노드를 쉽게 연결 가능. 노드의 추가 삭제가 쉽다

-단점: 상위 노드 장애-> 하위 노드 통신에 영향

 

 

3) 링형 구조: 인접해 있는 양 옆의 두 노드를 연결하는 단방향 전송 형태. 

-장점: 하나의 회선에 장애가 발생해도 다른 방향의 통신 회선 사용 가능. c자 형태의 구조가 되어 신뢰성 확보 가능

노드 연결 최소화. 고장 쉽게 발견 가능.

-단점: 새 노드 추가, 제거 어렵

링에 연결된 노드 고립 우려

모든 노드들이 중계기능 수행해야 함-> 전송 속도 지연

 

 

4) 성(Star)형 구조

모든 노드가 중앙에 있는 노드에 연결된 형태. 

-장점: 노드 추가 쉽다. 에러 탐지 쉽다. 패킷의 충돌 발생 가능성 적다. 문제 발생 노드 쉽게 탐색 가능. 

-단점: 중앙 노드에 장애가 발생하면-> 전체 사용 불가. 설치 비용 비쌈!


 

병목 현상

전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상

 


네트워크 분류

LAN, MAN, WAN

-LAN: Local Area. 근거리 통신망. 같은 건물 내 같은 좁은 공간. 전송 속도 빠르다. 혼잡하지 않다.

-MAN: Metropolitan Area. 대도시 지역 네트워크. 전송 속도 평균, LAN보다는 더 혼잡.

-WAN: Wide Area. 광역. 전송 속도 낮고 매우 혼잡.


네트워크 프로토콜

다른 장치들끼리 데이터를 주고 받기 위해 설정된 인터페이스. 

IEEE802.3 : 유선 LAN 프로토콜.

HTTP: 웹 접속 프로토콜.

 


 

+) 추가: 신입 개발자 기술 면접- 네트워크 질문 예시

-OSI 7계층에 대해 설명해주세요. 

컴퓨터 사이에서 통신할 때 표준 프로토콜을 사용할 수 있도록 ISO에서 개발한 모델.

물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용 계층

 

=> 계층 나눈 이유: 통신이 일어나는 과정을 단계별로 파악하고. 이상이 생기면 해당 계층만 수정할 수 있도록. 

 

-TCP와 UDP에 대해 설명하세요.

-TCP: 연결형 서비스. 3-way handshaking과정을 통해 연결을 진행. 4-way handshaking과정을 통해 연결 해제.

흐름 제어-> 데이터 처리 속도 조절

혼잡 제어-> 네트워크 내의 패킷 수가 과도하게 증가하지 않도록 방지. 

신뢰성 높지만 속도 느림

 

-UDP: 비연결형. 3-way사용 X -> 신뢰성 낮다. 수신여부 확인안함-> 속도 빠름.

TCP는 신뢰성이 중요한 파일 전송 같은 경우에 사용.

UDP는 실시간성 속도가 중요한 스트리밍에 자주 사용. 

 

-흐름제어와 혼잡제어란 무엇인가요?

★흐름제어: 데이터 받는 속도보다 보내는 속도가 빠를 경우, 받는 쪽 저장용량이 넘쳤는데도 패킷이 도착할 수 있다.

그럼 패킷 손실됨. 손실된만큼 추가 패킷을 보내야함. 

송신 측과 수신 측의 TCP 버퍼 크기 차이로 인해 생기는 데이터 처리 속도 차이를 해결하기 위한 기법.

stop and wait : 매 패킷 확인 응답 받고 다음 패킷 전송

sliding window: 수신측에서 윈도우 크기를 설정

 

 

★혼잡제어: 데이터양이 라우터의 처리량을 넘으면-> 라우터가 처리하지 못함.

송신 측에서는 라우터가 처리하지 못한 데이터를 손실 데이터로 간주하고 계속 던짐. 네트워크 혼잡해짐.

이런 상황이 일어나지 않도록 송신 측의 전송 속도를 적절히 조절하여 예방 = 혼잡제어.

AIMD: 처음에 패킷을 하나씩 보내고 이것이 문제없이 도착하면 윈도 크기를 1씩 증가. 단위 시간 내에 보내는 패킷의 수를 1씩 증가시켜가며 전송. 

 

slow start: 윈도 크기를 1,2,4,8과 같이 지수적으로 증가시키다가 혼잡 감지되면 윈도 크기를 1로 줄여버림.

Fast Decovery: 혼잡 상태 되면 윈도크기를 반으로 줄이고 선형증가시키자. 

 

-Restful API . 현대 웹 애플리케이션의 필수 요소.

API의 일관성과 확장성을 높이고, 개발자들에게 편의성을 제공하기 위함.

 

자원을 URI로 표시. 자원(리소스) 기반 URI는 RESTful API의 핵심.

자원은 고유한 URI(Uniform Resource Identifier)를 가지며, 이를 통해 자원을 식별.

자원 기반 URI는 설계의 일관성을 유지 & 의미 명확 전달에 도움.

 

주로 JSON이나 XML과 같은 데이터 포맷을 사용.

https://velog.io/@gun_123/RESTful-API-설계-원칙과-예시

 

-GET 메서드 vs POST 메서드

GET: 데이터 조회.

POST: 데이터 생성.