Q. 네이버.com 을 사용자가 브라우저에 입력했을 때 일어나는 일에 대해 설명하라. (웹 동작 방식에 대해 설명하시오.)
- 사용자가 웹 브라우저에 url을 입력한다.
- DNS 시스템을 통해 domain과 매핑된 ip 주소를 찾는다.
- HTTP 프로토콜을 사용하여 HTTP 요청 메세지를 생성한다.
- HTTP 요청 메세지가 TCP/IP 연결을 통해 웹서버로 전송된다.
- 웹서버는 HTTP 프로토콜을 활용해 HTTP 응답 메세지를 생성한다.
- TCP/IP 연결을 통해 요청한 컴퓨터로 HTTP 응답 메세지를 전송한다.
- 컴퓨터에 도착한 HTTP 응답 메세지는 웹페이지 데이터로 변환되고, 브라우저에 의해 출력된다.
- 사용자는 출력된 화면을 확인할 수 있다.
Q.GET 방식과 POST 방식을 비교하시오.
1) GET 방식 - 데이터를 조회하기 위해 사용되는 방식. 데이터를 헤더에 추가하여 전송하는 방식. URL에 데이터가 노출되므로 보안적으로 중요한 데이터를 포함해서는 안된다.
데이터의 위치 : Header
캐싱 가능 여부 : O
URL 예시 : http://localhost:8080/boardList?name=제목&contents=내용
2) POST 방식 - 데이터를 추가 및 수정하기 위한 방식. 데이터를 바디에 추가하여 전송하는 방식. URL에 데이터가 노출되지 않아 GET보다 안전하다.
데이터의 위치 : Body
캐싱 가능 여부 : X
URL 예시 : http://localhost:8080/addContents
Q. DNS 란 무엇인가
Domain Name System 으로, 사람이 알아 볼 수 있는 도메인 주소를 ip주소로 매핑하는 시스템이다. DNS는 도메인 주소와 ip주소를 매핑하고 있는 전화번호부라고 이해하면 쉽다. 웹은 통신을 할 때, 숫자 (Ip주소)를 사용하여 서로를 찾고 통신한다. 이러한 ip 주소 대신 도메인 이름을 입력해도 원하는 웹 사이트에 갈 수 있다.
* 참고 페이지: https://aws.amazon.com/ko/route53/what-is-dns/
Q. 캐싱이란 무엇인가? / 캐싱을 사용하는 이유는 무엇인가?
컴퓨팅에서 캐싱을 사용하는 이유는, 이전에 검색하거나 계산한 데이터를 효율적으로 빠르게 재사용할 수 있기 때문이다. 일반적으로 RAM과 같이 빠르게 액세스 할 수 있는 하드웨어에 저장된다. 따라서 더 느린 기본 스토리지 계층에 액세스해야 할 필요를 줄여서 데이터 검색 성능을 높인다. 영구적으로 데이터를 저장하는 데이터베이스와 다르게, 캐시는 데이터의 하위 집합을 일시적으로 저장한다.
https://aws.amazon.com/ko/caching/
Q. HTTP Protocol 이란 ?
Hyper Text Transfer Protocol HTML 파일을 전송하는 프로토콜이라는 의미를 가진다.
서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다.
어플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다.
HTTP는 상태를 가지고 있지 않은 Stateless 프로토콜이다. Stateless하다는 것은 서버가 요청 간의 클라이언트의 데이터를 저장하지 않는다는 특징이 있다.
Path, Version, Method, Headers로 구성된다. 클라이언트의 요청이 있을 때 서버가 응답하는 단방향 통신이다.
Q. HTTP와 HTTPS의 차이점 ?
HTTP는 평문 데이터를 전송하는 프로토콜이다.당연히 민감한 개인정보를 주고 받으면 데이터 유출 위험 가능성이 존재한다.
이를 해결 하기 위해 HTTP에 암호화가 추가된 것이 HTTPS이다. 대칭키 암호화와 비대칭키 암호화가 모두 사용된다.
Q. TCP vs UDP
TCP는 TCP는 3-way-handshaking 과정을 통해 연결을 설정한다. 그렇기 때문에 높은 신뢰성을 보장한다. 하지만 비교적 속도가 느리다. 반면 UDP는 비연결형 서비스로 3-way-handshaking 과정을 거치지 않아서 신뢰성은 떨어지지만, 비교적 속도가 빠르다. 또한 TCP는 전송 순서를 보장하며 수신 여부를 확인한다. 그리고 1:1 통신 방식이다. 반면 UDP는 전송 순서를 보장하지 않으며 수신 여부를 확인하지 않는다. 그리고 1:1 통신 방식 뿐만 아니라 1:N 또는 N:M 통신에 사용된다.
따라서 TCP는 신뢰성이 중요한 파일 교환에 사용되며, UDP는 실시간성이 중요한 스트리밍에 자주 사용된다.
TCP 는 가상회선 방식으로 패킷을 교환하고, UDP는 데이터그램 방식으로 패킷을 교환한다.
Q. UDP의 ‘데이터 그램 패킷 교환 방식’ 이란 ?
데이터를 전송하기 전에 논리적 연결이 설정되지 않으며, 패킷(데이터그램)이 독립적으로 전송된다. 패킷을 수신한 라우터는 최적의 경로를 선택하여 패킷을 전송한다. 즉, 패킷들은 서로 다른 경로로 전송될 수 있어서, 송신측에서 전송한 순서와 수신측에 도착한 순서가 다를 수 있다.
Q. '가상회선 패킷 교환 방식' 이란?
데이터를 전송하기 이전에 논리적 연결이 설정된다. 각 패킷에는 가상 회선 식별 번호가 포함된다. 모든 패킷을 전송하면 가상회선은 해제되고 패킷은 전송한 순서대로 도착한다.
Q. 3-way-handshaking 이란 ?
Client와 Server가 서로 연결이 잘 되었는지 확인하는 방법이다. 송신자와 수신자는 총 3번에 걸쳐서 data를 주고 받으며 통신이 가능한 상태입을 확인한다. 먼저 클라이언트가 난수인 SYN 를 서버에 보내고, 서버는 클라이언트에 SYN과 ACK를 보낸다. 클라이언트는 서버가 응답한 것을 확인하면 ACK를 서버로 보낸다. 세 단계를 모두 거친 후에 연결이 성립된다.
Q. SYN를 난수로 사용하는 이유?
난수가 아니라 순차적인 번호를 보내면, 서버에서 SYN을 이전의 connection으로부터 있는 패킷으로 인식할 가능성이 있기 때문이다.
Q. Socket 통신과 HTTP 통신의 차이점은 ?
HTTP 통신은 Client의 요청이 있을 때 Server가 응답하는 단방향 통신이다. 반면, Socket통신은 Client가 Server에 메세지를 전송하고, Server 도 Client에 메세지를 전송하는 양방향 통신으로, 실시간 스트리밍이나 채팅에 주로 사용된다.
Q. API 란 ?
API(Application Protocol Interface)에서 어플리케이션이라는 것은 고유한 기능을 가진 모든 소프트웨어를 나타냄. 인터페이스는 두 어플리케이션 간의 서비스 계약이라고 할 수 있다. 즉, 요청과 응답을 이용하여 두 어플리케이션이 서로 통신하는 방법을 정의한다. 대표적인 API로, HTTP 통신을 위한 RESTful API가 있음.
Q. 클라이언트 - 서버 모델 이란?
i) Client : 서버와 이어진 모든 단말기와 단말기에서 이용하는 웹에 접근하는 소프트웨어를 지칭. 사용자의 입력을 주로 처리하며 이를 서버에 요청
ii) Server : 웹페이지, 사이트, 앱을 저장하는 컴퓨터 클라이언트의 요청을 받아서 처리하고, 다시 클라이언트에 응답을 보낸다.
iii) 메세지 패턴 : 클라이언트는 서버의 API라는 인터페이스를 바탕으로 서버에 정보를 요청하고, 서버로부터 응답을 받으면 이를 처리하여 리소스를 출력함
'개발일기 > 개발자 취준생' 카테고리의 다른 글
[개발자 취준생] 오픽 벼락치기 하는 법 (이틀..만에..IH 따기) (0) | 2023.03.13 |
---|---|
졸업을 앞두고 있는 개발자 취준생의 2022년의 회고 (1) | 2022.12.21 |
[개발자 취준생] - 취준일기(3) 돌아보기 (0) | 2022.11.29 |