네트워크 CS 인터뷰

똘맹·2025년 5월 15일

CS 스터디

목록 보기
17/20

인증/인가에 Session을 사용할 때의 장단점에 대해 설명해주세요

세션 정보는 서버가 직접 간리하기 때문에, 보안 제어력이 높다는 것이 장점입니다. 주요 인증 정보가 서버에만 존재하기 때문에 토큰 탈취로 인한 정보 노출 위험이 상대적으로 낮고, 인증 갱신과 관리가 용이합니다.

단점이라면 스케일링에 불리하다는 점과 stateful을 위해 리소스 사용량이 증가한다는 점입니다. 그리고 세션 ID를 쿠키에 저장하기 때문에, 쿠키가 차단되면 인증이 작동하지 않는다는 문제도 있습니다.



세션 하이재킹이 무엇인가요

사용자의 세션 ID를 공격자가 탈취하여, 정상 사용자인 것처럼 서버에 접근하는 공격입니다. 서버는 세션 ID만 보고 인증된 사용자로 오인하기 때문에, 인증/인가 우회를 허용하게 되는 보안 문제 입니다.



TCP가 연결을 종료하는 방식에 대해 설명해보세요

4 way handshake가 수행됩니다.
클라이언트가 서버에 fin flag를 보냅니다.
서버는 ack을 보내고 자신의 통신이 끝날 때까지 close_wait 상태에 돌입합니다.
서버 통신이 끝나면 클라이언트에게 fin flag를 보냅니다
클라이언트는 ack을 보내고 time_wait 상태에 돌입합니다.

close_wait
fin 패킷 보다 늦게 도착하는 데이터 패킷이 존재할 수 있기 때문에, 데이터 유실을 대비하고자 fin을 수신하더라도 일정 시간(디폴트 240초) 동안 세션을 남겨놓고 잉여 패킷을 기다립니다.



프록시 서버가 필요한 이유가 무엇인가요

프록시 서버는 사용자의 요청을 목적지 서버에 대신 전달하고, 응답을 사용자에게 중계해주는 중간 서버입니다.

보안 측면에서는 진짜 서버의 주소를 숨겨서 외부 공격을 막을 수 있고,
속도 면에서는 자주 사용하는 데이터를 미리 저장해서 더 빠르게 전달할 수 있으며,
트래픽 처리 측면에서는 여러 서버에 요청을 나눠서 부하를 줄이는 역할도 합니다.

프록시 서버
연예인 팬레터를 보내고 싶을 때, 연예인 집으로 직접 보내지 않고 소속사를 통해 보내는 것과 같다. 소속사는 연예인의 주소를 외부에 노출시키지 않으면서, 편지를 대신 전달해주고, 연예인으로부터 온 답장도 중간에서 다시 전달해준다.



Keep-Alive에 대해 설명해주세요

Keep-Alive는 HTTP 요청 이후에도 TCP 연결을 끊지 않고 유지하여, 여러 요청을 같은 연결로 처리할 수 있도록 해주는 기능입니다. 정적 자원이 많은 웹 페이지나 API 요청이 많은 시스템에서 유리합니다. HTTP/1.1에서는 기본적으로 Keep-Alive가 활성화되어 있습니다.

HTTP/2
하나의 연결로 다중 요청/응답을 처리해 Keep-Alive 부담 감소

커넥션 슬롯
서버가 하나의 TCP 연결을 위해 확보해 놓은 자원(소켓, 메모리, 포트)의 자리

커넥션 풀
DB나 외부 시스템과 연결할 때, 매번 새로 연결하지 않고 미리 만들어둔 연결 객체를 재사용하는 풀 구조



요새 자주 사용되는 HTTP 버전이 무엇이고 특징이 무엇인지 말해보세요

1.1버전과 2버전이 대부분을 차지한다. 2버전도 나온지 그렇게 오래되지 않았기 때문에 1.1을 쓰는 경우도 아직 많고, 3 버전은 점유율이 높진 않다.

1.1은 앞 요청의 응답을 기다리지 않고 순차적인 여러 요청을 연속적으로 보내고 그 순서에 맞춰 응답을 받는 방식인 파이프라이닝이 추가되었다. 앞 요청의 응답이 너무 오래걸리면 뒤 요청은 Blocking 되어버리는 Head of Line Blocking 문제가 발생할 수 있다.

2는 일반 텍스트 형식이던 기존 메시지 전송 방식을 개선하여 내는 메시지를 프레임이라는 단위로 분할하며 추가적으로 바이너리로 인코딩하는 Binary Framing 계층이 추가되었다. 프레임이 각 요청의 스트림을 통해 전달되며, 하나의 커넥션 안에 여러개의 스트림을 가질 수 있게되어 multiplexing이 가능해졌다. 동시에 여러 요청을 처리할 수 있게 되었다는 뜻이며, 각 요청의 응답의 순서의 의미가 없어져서(bcs stream) HOL Blocking 문제가 해결되었다.

참고



CORS가 무엇인가요?

원래는 다른 도메인의 API에 접근이 브라우저 보안 정책(SOP)에 의해 차단되지만, 서버가 명시적으로 허용하면 예외적으로 허용하는 방식입니다.

Same-Origin Policy는 브라우저 보안 정책 중 하나로, 프로토콜, 도메인, 포트 번호가 모두 같아야 동일 출처(Same-Origin)로 간주합니다. 브라우저는 이 정책에 따라 다른 출처의 스크립트나 자원이 현재 웹 페이지의 데이터에 접근하는 것을 차단합니다.

하지만 실제 서비스에서는 다른 출처의 API나 리소스를 사용하는 경우가 많기 때문에, CORS(Cross-Origin Resource Sharing) 같은 예외 정책을 통해 제한적으로 접근을 허용할 수 있습니다.



UDP란 무엇이고 어떤 장점이 있나요?

UDP는 전송 속도를 우선시하는 비연결성 전송 프로토콜로, TCP와 달리 연결 설정 없이 데이터를 바로 전송할 수 있어 오버헤드가 낮고 빠릅니다. 다만 수신 확인이나 순서 보장이 없어 신뢰성이 낮기 때문에, 일부 패킷 손실을 감수하더라도 실시간성이 중요한 환경(스트리밍, 게임 등)에서 주로 사용됩니다.



OPTIONS란 무엇인가요?

OPTIONS는 HTTP 메서드 중 하나로, 클라이언트가 서버에 해당 리소스에 대해 어떤 요청이 가능한지를 물어보는 용도로 사용됩니다. 특히 브라우저가 본 요청 전에 먼저 OPTIONS 요청을 보내서,서버가 허용하는 메서드, 헤더, 출처 등을 확인합니다. 이를 프리플라이트 요청이라고 하며, 서버가 OPTIONS 요청에 적절히 응답하지 않으면 CORS 오류가 발생하게 됩니다.



OSI 7계층 중 2, 3 Layer에 대해 설명해주세요

Layer 2는 데이터 링크 레이어로, MAC 주소를 기반으로 같은 네트워크 내 장치들 간의 프레임 전송과 오류 검출을 담당합니다. 대표적인 장비로는 스위치가 있습니다.

Layer 3는 네트워크 레이어로, IP 주소를 이용하여 서로 다른 네트워크 간에 패킷을 전달하고, 최적의 경로를 선택하는 라우팅 기능을 수행합니다.

추가 질문: 그럼 MAC 주소는 언제 사용되고, IP 주소는 언제 사용되나요?

IP 주소는 네트워크 계층에서 논리적인 위치를 식별하고, 라우팅을 결정할 때 사용됩니다. 반면 MAC 주소는 데이터 링크 계층에서 같은 네트워크(LAN) 내에서 실제로 데이터를 전달할 대상을 식별할 때 사용됩니다.

profile
척척학사가 되고 싶은 똘맹

0개의 댓글