[SW 기술 면접] 네트워크(전산 기본, TCP/UDP, HTTP, 웹, Spring)
딱지의겨울
·2021. 6. 9. 17:38
📌 전산 기본
🔹 OST 7계층에 대해서 설명해 주세요.
- OSI 7 계층은 통신 접속에서 완료까지의 과정을 7단계로 정의한 국제 통신 표준 규약입니다.
- 하위 계층: 물리 / 데이터링크 / 네트워크, 상위 계층: 전송 / 세션 / 표현 / 응용
- 물리 계층은 전송하는데 필요한 기능을 제공하고 장비로는 통신 케이블과 허브가 존재.
- 데이터 링크 계층은 송수신을 확인하고, MAC Address를 가지고 통신하며 장비로는 브릿지와 스위치가 존재.
- 네트워크 계층은 패킷을 네트워크 간의 IP를 통하여 데이터를 전달하고 경로 설정, 트레픽 제어 등을 수행합니다. 장비로는 라우터.
- 전송 계층은 상위 3계층과 하위 3계층의 인터페이스를 담당하고 두 호스트 시스템으로부터 발생하는 데이터의 흐름을 제공합니다.
- 세션 계층은 통신 시스템 간 사용자간의 연결을 유지 및 설정힙니다.
- 표현 계층은 세션 계층과 응용 계층 간의 데이터를 알맞게 변환하는 기능을 합니다.
- 응용 계층은 사용자가 네트워크에 접근할 수 있도록 서비스를 제공합니다.
🔹 TCP/IP 4계층에 대해서 설명해 주세요.
- LINK 계층
- 물리적인 영역의 표준화에 대한 결과. 가장 기본이 되는 영역으로 LAN, WAN, MAN 과 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역.
- IP 계층
- 경로 검색을 해주는 계층. IP 자체는 비연결지향적이며 신뢰할 수 없는 프로토콜이다. 데이터를 전송할 때마다 거쳐야 할 경로를 선택해 주지만, 그 경로는 일정치 않음. 경로 재설정 과정에서 데이터에 대한 오류 발생에 대한 대비가 되어있지 않은 프로토콜.
- TCP/UDP 계층
- 데이터의 실제 송 수신을 담당함. UDP는 TCP에 비해 상대적으로 간단하고, TCP는 신뢰성 있는 데이터의 전송을 담당함. TCP는 데이터가 순서에 맞게 전송이 갔는지 확인 절차를 걸쳐서 신뢰성을 부여한 프로토콜.
- APPLICATION 계층
- 프로그램의 성격에 따라 데이터 송수신에 대한 규칙들이 정해지기 마련인데 이를 가리켜 Application 프로토콜 이라고 함.
🔹 DNS가 무엇인가요?
- IP 주소를 사
🔹 도메인 이름으로 실제 IP를 어떻게 찾을 수 있는 지 흐름을 설명해 주세요.
- 웹 프라우
📌 TCP/UDP
🔹 TCP와 UDP의 차이에 대해서 설명해주세요.
- TCP: 연결형 서비스로 가상 회선 방식을 제공하고 3-way-handshaking 과정을 통해 연결을 설정하고 4-way-handshaking을 통해 해제합니다. TCP는 높은 신뢰성을 보장하기 위해 3-way-handshaking 기능 등을 하기 때문에 UDP 보다 속도가 느립니다. 그래서 연속성보다 신뢰성 있는 전송이 중요할 때 사용하는 프로토콜입니다.
- UDP: 비연결형 서비스로 데이터를 데이터그램 단위로 처리하는 프로토콜. 데이터를 주고받을 컴퓨터끼리 직접 연결하고자 할 때 UDP를 사용합니다. TCP에 비해 속도는 빠른 편이기 때문에 데이터 유실이 일어나도 큰 상관이 없는 스트리밍이나 화면 전송에 사용됩니다.
🔹 TCP 헤더에 대해 설명해주세요.
- 웹 프라우
🔹 MTU가 무엇인가요?
- 웹 프라우
🔹 3-way hand shake 가 무엇인가요?
- TCP에서 클라이언트와 서버가 데이터 전송 준비가 되었다는 것을 보장하고, 실제로 전달이 시작되기 전에 다른 쪽이 준비된 것을 알리는 역할.
- (1) 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보냄. 클라이언트는 응답을 기다리는 SYN_SENT 상태가 됨.
- (2) 서버는 SYN 요청을 받고 클라이언트에게 요청을 수락한다는 ACK 와 SYN flag 패킷을 발송. 서버는 SYN_RECIEVED 상태가 됨.
- (3) 클라이언트는 서버에게 ACK패킷을 보내 데이터 송수신 상태가 됨.
🔹 4-way hand shake 가 무엇인가요?
- TCP에서 세션을 종료하기 위해 수행되는 절차.
- (1) 클라이언트가 연결을 종료하겠다는 FIN플래그 전송.
- (2) 서버는 확인 메시지를 보내고 자신의 통신이 끝날때까지 기다림.
- (3) 서버가 통신이 끝났으면 연결이 종료되었다고 클라이언트에게 FIN 패킷을 전송.
- (4) 클라이언트는 확인 메시지를 보냄.
📌 HTTP
🔹 HTTP 프로토콜에 대해서 아는대로 말해주세요.
- Hyper Text Tranfer Protocol의 약자로 TCP/IP를 이용하는 응용 프로토콜.
- 연결 상태를 유지하지 않는 비연결성 프로토콜.
🔹 HTTP와 HTTPS 의 차이는 무엇인가요?
- HTTP는 암호화가 추가되지 않았기 때문에 보안에 취약한 반면, HTTPS는 안전하게 데이터를 주고받을 수 있도록 암호화/복호화 과정이 포함되어 속도가 HTTP 보다 느림.
🔹 HTTPS가 동작하는 방식에 대해서 설명해 주세요.
- d
🔹 HTTP 1.0과 1.1의 차이는 무엇인가요?
- d
🔹 HTTP 2와 그 특징에 대해서 설명해 주세요.
- d
🔹 HTTP 헤더의 구조에 대해서 설명해 주세요.
- d
🔹 keep-alive 헤더에 대해서 설명해 주세요.
- HTTP 기본 구조를 바탕으로 맺어진 소켓 연결이 종료된 시점부터 웹서버에 정의된 Keep alive Timeout까지 기존 연결을 유지하는 기능.
- 즉, 정의된 Timeout 내에 새로운 HTTP 요청이 발생한다면 연결을 유지하고 그렇지 않다면 연결을 끊는 기능.
🔹 HTTP GET과 POST의 차이는 무엇인가요?
- GET method는 웹 브라우저에서 웹 서버에 스트링 형태로 데이터를 전달하여 요청하는 방식이다.
- GET은 쿼리 스트링이 그대로 보여지기 때문에 보안성이 취약하지만 POST에 비해 상대적으로 속도가 빠른 장점이 있다.
- POST는 웹 브라우저가 웹 서버에 데이터를 전달할 때 사용하며, 주로 대용량 데이터 전달할 때 사용된다.
- 주소창에 전송하는 데이터의 정보가 노출되지 않아 보안성이 높고, 스트링 뿐만 아니라 객체들의 값도 전송할 수 있다는 장점이 있다.
🔹 쿠키와 세션에 대해서 설명해 주세요.
- HTTP의 비연결성이라는 특성 때문에 웹 페이지에 머물고 있는 사용자의 상태를 지속시키기 위해 쿠키와 세션을 사용한다.
- 세션은 사용자의
📌 WEB
🔹 웹 브라우저에서 서버로 요청했을 때, 흐름을 설명해 주세요.
- 웹 프라우저에서 요청을 보내면 DNS를 조회하여 ip와 port 정보를 가져오고 HTTP 요청 메시지를 생성함.
- SOCKET 라이브러리를 통해 TCP/IP로 3 way handshake를 실행해 서버와 연결함.
- 운영체제 TCP/IP 계층으로 데이터 전송을 하기 위해 데이터를 전달함.
- HTTP 메시지가 포함된 TCP/IP 패킷을 생성함.
- 패킷 정보가 인터넷으로 보내짐.
- 서버에 요청 패킷이 도착하여 패킷 껍데기는 버리고 HTTP 메시지를 서버가 해석.
- HTTP 응답 메시지를 마찬가지 방식으로 패킷을 생성하여 응답 패킷을 전달.
- 응답 패킷이 도착하면 웹 브라우저가 HTML 랜더링하여 화면에 보여줌.
🔹 CROS란 무엇인가요?
- 추가적인 HTTP header를 사용해서 애플리케이션이 다른 origin의 리소스에 접근할 수 있도록 하는 메커니즘을 말함. 하지만 다른 origin에서 내 리소스에 함부로 접근하지 못하게 하기 위해서 사용됨.
- 내가 서비스 하고 있지 않은 사이트에서 세션을 요청해 세션을 획득하는 요청을 막고 내가 허용한 origin들만 요청할 수 있도록하기 위해 필요함.
🔹 웹 서버와 웹 어플리케이션 서버(WAS)의 차이는 무엇인가요?
- 웹 서버는 정적인 컨텐츠를 제공하는 서버이고, 웹 어플리케이션 서버는 DB 조회 등 동적인 컨텐츠를 제공하는 서버입니다.
- 웹 어플리케이션 서버 앞에 웹 서버를 둬서 정적인 컨텐트를 처리하고, WAS는 애플리케이션의 로직만 수행하도록 기능을 분배하여 서버의 부담을 줄일 수 있습니다.
🔹 REST
- HTTP URI를 통해 자원을 명시하고, HTTP METHOD (POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD 연산을 적용하는 것을 의미함.
- HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하고, 별도의 인프라를 구축할 필요가 없다는 장점이 있다.
🔹 REST API
- REST 기반으로 서비스 API를 구현한 것.
- HTTP를 지원하는 프로그램 언어로 클라이언트와 서버를 구현할 수 있음.
🔹 RESTful 하게 API를 디자인 한다는 것.
- 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것.
- 동일한 URI의 행위에 맞게 POST, GET, DELETE, PATCH 등의 메소드를 사용.
- URI Path에 불필요한 파라미터를 넣지 않음. 단계를 심플하게 설계함.
🔹 API Gateway란 무엇인가요?
- 서비스로 전달되는 모든 API 요청의 관문 역할을 하는 서버로 시스템의 아키텍처를 내부로 숨기고 외부의 요청에 대한 응답만을 적절한 형태로 응답합니다.
- 클라이언트 요청을 일괄적으로 처리할 수 있고, 전체 시스템의 부하를 분산 시키는 로드 밸런서의 역할을 할 수 있다는 장점이 있습니다.
🔹 API Gateway가 다운되면 모든 API를 사용 못할지도 모르는데, 어떤 방안을 마련해야 할까요?
'취준 과정' 카테고리의 다른 글
[네트워크] REST / REST API / RESTful 개념 및 특징 (0) | 2021.08.19 |
---|---|
[SW 기술 면접] JAVA 편 (0) | 2021.08.17 |
[SW 기술 면접] 웹, JAVA 관련 Part (0) | 2021.06.08 |
2021 LG 온라인 인적성 검사 개요 및 정리 (에듀윌 참고) (1) | 2021.05.21 |