외부활동/CS 면접 끝장내기 - 컴퓨터 네트워크 4기

컴퓨터 네트워크 5주차 스터디 정리

dohyeon2 2024. 2. 8. 13:55

4주차 면접 스터디에서 받았던 피드백은 다음과 같습니다.

 

좋았던 점

  • 답변을 짧고 간결하게 해서 듣기 좋았습니다.

 

부족했던 점

  • "TCP 빠른 재전송이 기존 방법대비 왜 빠른가?" 라는 질문에 답변하지 못했습니다.
    : TCP 빠른 재전송은 타임아웃을 기다리지 않고 ACK을 3번 받으면 곧바로 재전송을 실시하기 때문에 기존 방식보다 빠르게 데이터를 재전송 할 수 있습니다.
  • "3way, 4way의 3과 4가 무엇을 뜻하는 건가요?"라는 질문에 답변하지 못했습니다.
    : 3과 4는 각각 주고받은 패킷의 횟수를 말합니다. 

IP주소에 대해서 설명해주세요.

더보기

IP 주소란 네트워크에서 호스트와 라우터의 각 인터페이스마다 할당되어 있는 식별번호를 말합니다.

 

인터페이스란? 

: 호스트와 물리 링크 사이의 경계

IPV4와 IPV6는 어떤 차이점이 있을까요?

더보기

가장 큰 차이점은 IPv4는 32비트로 IPv6는 128비트로 구성되어 있다는 점입니다. 기존 IPv4 프로토콜은 약 42억(2^32)개의 서로다른 주소를 부여할 수 있었지만 기하급수적으로 늘어나는 사용자에 대응하기 위해 (2^128)개의 서로다른 주소를 부여할 수 있는 IPv6를 도입하였습니다.

서브넷과 서브넷 마스크에 대해 설명해주세요.

더보기
서브넷 모식도

 

 서브넷 마스크란 IP 주소를 네트워크 부분/호스트 부분으로 나누는데 사용되는 숫자 조합을 말합니다. 서브넷 마스크는 IP주소와 같은 길이의 비트로 구성되며, 이진수로 표현했을 때 네트워크 부분은 1로, 호스트 부분은 0으로 설정합니다.

예를들어 IP주소는 210.100.100.1이고 서브넷 마스크가 255.255.255.0(십진수)이라고 가정해보겠습니다.

여기서 1인 부분은 네트워크, 0인 부분은 호스트를 나타내므로 IP 주소와 서브넷 마스크를 논리적 AND 연산한 결과 값이 바로 서브넷 입니다. 하나의 주소를 서브넷 마스크를 씌워서 작은 네트워크로 분할하는 것을 서브넷팅이라고 하고, 분할된 작은 네트워크를 서브넷이라고 합니다.

210.100.100.1	=	1101 0010. 0110 0100. 0110 0100. 0000 0001	=	IP주소
255.255.255.0	=	1111 1111. 1111 1111. 1111 1111. 0000 0000	=	서브넷 마스크
210.100.100.0	=	1101 0010. 0110 0100. 0110 0100. 0000 0000	=	서브넷 (AND 연산 결과)

 

예상질문 1. 서브넷을 사용하는 이유가 뭔가요?

: 네트워크를 더 작은 단위로 분할하여 IP 주소의 낭비를 방지하고 브로드캐스트 도메인 크기를 줄여서 네트워킹 성능을 향상시키기 위해서 입니다.

라우팅이 뭘까요?

더보기

라우팅이란 네트워크에서 프로토콜에 기반하여 목적지로 향하는 최적의 경로를 찾는 프로세스를 말합니다.

Public IP와 Private IP 차이는 뭘까요?

더보기

Public IP란 외부에 공개된 IP를 말하고, Private IP는 외부에 공개되지 않은 IP 주소를 말합니다. Public IP와 달리 Private IP는 외부에서 검색이나 접근이 불가능하고, 주로 인터넷 공유기를 사용할 때 접하게 됩니다. 

라우팅 프로토콜에 대해서 설명해주세요.

더보기
라우팅 프로토콜

라우팅 프로토콜은 제어 범위에 따라 IGP(Interior Gateway Protocol, 내부 게이트웨이 프로토콜)과 EGP(Exterior Gateway Protocol, 외부 게이트웨이 프로토콜) 2가지로 나눌 수 있습니다. 이 두가지를 나누는 개념이 AS(Autonnomous System, 자율시스템)입니다.

 

AS 안에서 사용하는 라우팅 프로토콜을 IGP라고 합니다. 대표적으로 RIP,OSPF,EIGRP 등이 있습니다. 이들을 이해하기 위한 핵심은 '라우팅 알고리즘'과 '메트릭'입니다.

라우팅 알고리즘 - IGP

: 라우팅 알고리즘은 라우팅 테이블을 만드는 규칙입니다. IGP의 라우팅 테이블 알고리즘은 디스턴스 벡터 타입 or 링크 스테이트 타입입니다. 디스턴스 벡터는 거리(수신지까지 경유하는 라우터의 수)와 방향(출력 인터페이스)에 기반하여 경로를 계산하는 라우팅 프로토콜을 말하고, 링크 스테이트는 링크 상태에 기반하여 경로를 계산하는 라우팅 프로토콜을 말합니다.

메트릭

: 메트릭은 수신지 네트워크까지의 논리적 거리를 말합니다.

 

AS 사이에서 사용하는 라우팅 프로토콜을 EGP라고 합니다. 대표적으로 BGP 등이 있습니다. 이들을 이해하기 위한 핵심은 'AS 번호', '라우팅 알고리즘', '최선 경로 선택 알고리즘이 있습니다.

AS 번호

: 각 AS를 식별하는 번호

라우팅 알고리즘 - EGP

: EGP의 라우팅 테이블 알고리즘은 경로벡터타입 입니다. 경로(경유하는 AS)와 방향(BGP 피어, 경로정보를 교환하는 상대)에 기반하여 경로를 계산합니다.

최선 경로 선택 알고리즘

: 어떤 경로를 최선 경로로 판단하는가에 관한 규칙

 

IP는 어떻게 할당될까요?

더보기

IP가 할당되는 방법에는 정적 할당과 동적 할당이 있습니다.

정적 하당(고정 IP)은 IP 주소를 수동으로 설정하는 방법을 말합니다. 예를들어, 웹서버나 프린터와 같이 항상 같은 IP 주소로 접속해야하는 경우 정적 할당을 사용합니다.

동적 할당(유동 IP)은 IP 주소를 자동으로 설정하는 방법을 말합니다. 예를들어, 노트북이나 스마트폰과 같이 다양한 네트워크에 연결할 수 있는 장치에 동적 할당을 사용합니다. 

 

Reference

NAT가 뭘까요?

더보기

NAT(Network Address Translation)이란 Public IP와 Private IP를 변환해주는 기술을 말합니다. 

사설 네트워크에 속한 여러개의 호스트가 하나의 Public IP를 사용해서 인터넷에 접속하기 위해 사용합니다.

 

Reference

ICMP가 뭘까요?

더보기

ICMP(Internet Control Message Protocol)이란 네트워크 장치에서 네트워크 통신 문제를 전단하기 위해 사용하는 프로토콜입니다. 주로 데이터가 올바른 대상에게 도달했는지, 도달 시간이 적절한지 여부를 확인합니다.

 

Reference


인성 질문

프론트 개발자와 백엔드 개발자가 협업해야하는 상황에서 요구사항을 전달 받았을때 업무를 어떻게 시작하실 건지 설명해주세요.

더보기

저는 가장먼저 요구사항을 전달해준 개발자와 회의를 열고 다음 내용을 확인합니다.

  • 요청한 요구사항이 정확히 무엇인지 확인
  • 요청한 요구사항이 무엇을 위한건지 확인
  • 요구사항의 우선순위 결정

이러한 과정을 거치면 서로의 생각을 하나로 맞출 수 있고 향후 수정하는 상황을 최소화 할 수 있기 때문입니다. 

프로젝트를 진행하면서 동료가 기술적으로 성숙도가 낮을경우 어떻게 협업하시겠어요?

더보기

프로젝트를 진행하면서 동료가 기술적으로 성숙도가 낮다고 느낄 수 있는 상황은 내가 말하는 개념을 동료가 이해하지 못할 경우라고 생각합니다. 여기서 말하는 개념은 단순히 분야가 달라서 알지 못하는 내용이 아니라 프로젝트 협업을 위해 꼭 알아야하는 개념을 말합니다. 이때, 저는 해당 내용에 대해서 하나하나 동료에게 설명해주기 보다는 프로젝트 진행에 앞서 꼭 알아야 할 사전지식 이라는 여러 링크를 프로젝트 채널에 공유하여 서로 알고 시작하자고 제안할 것입니다. 

프로그래밍 언어, 라이브러리, 프레임워크를 사용하면서 느껴졌던 기술적 한계, 단점, 잘못된 설계 등이 있었다면 공유해주세요.

더보기

저는 3D 카메라 제어 소프트웨어를 개발할때, python을 사용하면서 인터프리터 언어의 한계를 느꼈습니다. 구조적으로 컴파일 언어보다 실행 속도가 느렸기 때문에 실시간으로 데이터를 처리해야하는 서비스에서 사용하기 부적합 하다는 느낌을 많이 느꼈습니다.