- toc {:toc}
----[ 예상문제 ]----
중간
[1] OSI 7계층을 하위 계층부터 상위 계층의 순서로 나열하고, 각각의 계층의 주요 기능을 설명합니다.
순서 : Physical - Data Link - Network - Transport - Session - Presentation - Application
- Physical : 비트스트림을 하나의 유무선 연결을 통해 주고 받는 역할을 한다.
- Data Link : 1계층에서 비트스트림을 주고 받으면서 발생하는 오류를 검출하고 정보가 잘 전달될 수 있도록 흐름 제어의 역할을 한다.
- Network : 2개 이상의 medium, 3개 이상의 기기들끼리 통신할 수 있도록 주소를 설정하거나 목적지까지 안전하고 빠르게 전달하는 역할을 한다.
- Transport : 양 끝단의 사용자가 신뢰성 있게 데이터를 주고 받을 수 있도록 조정하는 역할을 한다.
- Session : 비용 지불을 통한 서비스 이용과 같은 Authentication, 비용한 지불마다 서로 다른 서비스를 제공하는 Permission, 영화를 예로 들었을 때 영상, 자막, 소리 등이 일치하지 않을 때 조정하는 Session Restoration과 같이 응용 프로그램의 논리적 연결을 다룬다.
- Presentation : 암호화/복호화, 데이터 압축과 같이 데이터에 대한 공통적인 형식을 지정하는 역할을 한다.
- Application : Human-Machine 인터페이스를 제공하고 메시지 포멧을 지정하는 등의 응용 서비스를 수행한다.
[2] 오픈소스 하드웨어가 무엇인지 정의합니다. 그리고 대표적인 오픈소스 하드웨어 두가지를 나열하고, 각각 무엇인지 설명합니다.
오픈소스 하드웨어는 동일한 제품을 만들 수 있는 하드웨어 설계 도면, 회로도 등을 공개한 것을 말한다. 대표적 오픈소스 하드웨어 : 아두이노, 페이스북의 오픈소스 데이터센터 아두이노 : 단일 보드 마이크로 컨트롤러로, 물체를 제어할 수 있는 오픈소스 하드웨어이다. 오픈소스 데이터센터 : 페이스북에서 서버, 스토리지, 네트워크 등 데이터 센터의 기술을 공개한 오픈소스 하드웨어 이다.
[3] 컴퓨터 네트워크의 물리적인 topology 4가지를 나열하고, 각각을 간단한 그림으로 작성합니다 (설명 필요 없음).
Mesh : 별모양 + 양옆 연결 Star or Tree : 허브와 연결 Bus : 하나의 줄에 여러 개의 Station이 끼어들어 연결된 모양 Ring : Bus의 양끝을 붙인 모양
[4] 컴퓨터 네트워크를 크기적인 측면에서 정의하는 LAN, MAN, WAN이 무엇인지 간단하게 설명합니다.
LAN : Local Area Network로, 주로 private owned하고 단일 사무실, 빌딩, 캠퍼스 내의 장치들을 연결하는 규모이다. MAN : Metropolitan Area Network로, 전체 도시 규모의 네트워크를 말한다. WAN : Wide Area Network로, 나라, 대륙, 세계와 같은 큰 범위에 대해 전용선을 통해 장거리 데이터 통신을 하는 규모이다.
[5] Slotted Aloha 방식이 Aloha 방식의 문제점을 어떻게 개선했는지 설명합니다.
Aloha 방식은 random access protocol을 사용해 전송이 겹쳐 충돌이 발생하는 경우가 생기고, 연속해서 충돌하는 경우 충돌시간이 증가하는 문제가 발생했는데, Slotted Aloha 방식은 일정 시간의 슬롯을 만들어 슬롯 안에서만 전송하도록 만들었다. 이를 통해 충돌이 발생하더라도 슬롯 안에서만 충돌이 발생해 충돌 시간을 줄일 수 있도록 만들었다.
[6] CSMA/CD가 Slotted Aloha 방식의 문제점을 어떻게 개선했는지 설명합니다.
Slotted Aloha 방식은 슬롯 안에서만 전송이 이루어져야 하므로 시간 동기화가 정확히 이루어져야 하나, 동기화가 어렵다는 점이 문제였다. 이를 CSMA/CD의 경우 전송하기 전에 medium을 확인해 다른 곳에서 전송이 이루어지고 있는지를 확인하고 전송되고 있지 않는 경우 전송한다.
[7] 무선 통신의 대표적인 문제점은 무엇이고, 이 문제점을 CSMA/CA가 어떻게 개선했는지 설명합니다.
무선 통신은 하나의 medium으로 연결되어 있지 않아 전송 여부를 알 수 없다는 점과 장애물로 인해 통신이 되지 않아 발생하는 hidden station problem으로 인한 전송 여부를 알 수 없다는 점이 대표적인 문제점이고, CSMA/CA는 전송 가능 여부를 알기 위해 RTS를 보내고 CTS를 받아 전송하고, ACK를 받아 데이터 수신이 완료됐는지 확인하는 Acknowledgement 방식과 전송이 가능하더라도 일정 시간 대기하고, 일정 시간으로 구성된 슬롯을 선택해 전송하는 Inter-frame Space, Contention Window 방식을 통해 개선했다.
[8] Go Back N이 개선한 Stop and Wait의 문제점은 무엇이며, 어떤 기술을 통해서 개선한 것인지 설명합니다.
Stop and Wait 방식은 프레임 하나를 보낼 경우 응답을 기다림으로써 전송 성능이 느리고 채널의 활용도가 낮은 문제점이 있는데, 이를 버퍼를 이용하여 ACK를 기다리지 않고 전송하며, ACK를 받지 못한 경우 버퍼 안에 있는 이전 프레임을 재전송함으로써 개선했다.
[9] Selective Repeat이 개선한 Go Back N의 문제점은 무엇이며, 어떤 기술을 통해서 개선한 것인지 설명합니다.
Go Back N의 경우 하나의 프레임에 오류가 발생할 경우 올바르게 전송된 프레임이라도 재전송하는 경우가 발생하는데, Selective Repeat의 경우에는 올바르게 수신하지 않은 프레임은 NAK를 보내 해당 프레임만 재전송하도록 개선했다.
[10] PPP 프로토콜은 어떤 이유로 필요한지를, PPP의 3가지 중요 상태를 기준으로 설명합니다.
Establish 상태에서 Link Control Protocol의 명령에 따라 1계층을 연결하고, Authenticate 상태에서는 사용자의 합법적 사용 유무를 판단한다. 이후, Network 상태에서는 네트워크를 설정해 네트워크 프로토콜로 통신할 수 있도록 만든다. 즉, PPP는 사용자의 합법적 사용 유무를 판단하거나 IP와 같은 특정 프로토콜로 통신할 수 있도록 만들기 위해 사용한다.
[11] IEEE 802.3 기술인 이더넷은 현재 다양한 형태로 발전하였습니다. 간단하게 저속으로 발전한 기술의 주 활용 분야와 저속화된 이유, 고속으로 발전한 기술의 주 활용 분야와 고속화된 수요자 측면의 이유를 설명합니다.
저속으로 발전한 기술은 공장, 카메라, 로봇 등에 활용된다. 0과 1을 여러 번 전송해 재전송 요구 없이 스스로 오류를 검출하고 수정하는 FEC방식을 이용함으로써 안정적이면서 빠른 통신을 위해 사용된다. 고속으로 발전한 기술은 주로 데이터 센터에서 활용된다. 데이터 센터에서는 많고, 고성능의 CPU가 있는 만큼 많은 노드와 연결하기 위해서는 고속 이더넷이 필요하기 때문에 많이 사용한다.
[12] Bluetooth와 BLE의 차이점을 3가지 설명합니다. (음성, BLE Mesh, 메시지 전달 시간, 배터리 등)
음성 측면에서 블루투스는 음성을 보낼 수 있는 반면 BLE는 보낼 수 없고, 메시지 전달 속도 측면에서는 블루투스가 100ms, BLE는 6ms로 BLE의 속도가 많이 감소했다. 또한, 배터리 소모도 블루투스가 1이라 하면 BLE는 0.01~0.5 정도로 소모가 줄어들었다. 블루투스는 1대1로 연결되는 반면 BLE는 여러 기기들과 연결되어 자신에게 필요한 정보가 아니라면 다른 기기로 정보를 전달하는 Mesh 네트워크를 사용한다.
[13] Datagram 방식과 Virtual-Circuit 방식의 차이점을 간단하게 설명합니다.
Datagram 방식은 Connectless 방식으로 미리 연결 설정을 하지 않고 정보를 전송해 목적지까지 전달하는 반면, Virtual-Circuit 방식은 Connection-oriented 방식으로 전송할 경로에 대한 연결 설정을 하고 전송을 하는 방식이다.
[14] 네트워크의 성능에서 Delay를 구성하는 4가지 요소를 나열하고, 각각을 설명합니다.
Transmission Delay : 하나의 프레임을 완전히 전송하는데 걸리는 시간 Propagation Delay : 매체의 속성에 따라 한 노드에서 다른 노드로 전파될 때 걸리는 시간 Processing Delay : 입력 링크에서 출력 링크로 내보내기 위해 사용하는 소프트웨어 처리 혹은 하드웨어 처리에서 발생하는 지연 시간 Queuing Delay : 한 곳에 동시에 패킷이 몰렸을 때 버퍼에 위치하다 전송되는데, 이때 발생하는 지연시간
[15] DHCP와 NAT는 IP주소의 부족을 해소하는 용도로 활용할 수 있습니다. 이유와 각각의 동작 원리를 설명합니다.
네트워크 통신을 하는 기기들의 수가 엄청나게 많아지면서 IPv4의 42억 개 주소로는 전 세계의 기기들에 주소를 제공하기 어려운 상황이 됐다. 때문에 이를 해소하기 위한 방식으로 DHCP, NAT이 나왔다. DHCP는 클라이언트가 IP 주소를 필요로 할 때 서버에게 요청하고, 서버가 IP 주소를 할당해주면 일정 시간동안 사용하는 방식이다. NAT는 NAT 라우터를 통해 Private 주소를 할당해 제공하고, 통신 시에는 Private 주소를 Public 주소로 변환해 통신하는 방식이다.
[16] 컴퓨터 네트워크의 기술 발전이 과거의 NE 중심에서 현재 Function Oriented로 바뀌었다는 것이 어떤 의미인지 설명합니다.
기존의 Network Element, 네트워크 장치 중심의 표준화된 기술에서 네트워킹을 할 수 있는 소프트웨어를 호출하기 위한 함수 API 중심인 Function Oriented 방식으로 바뀌었다.
[17] OpenFlow 프로토콜은 무엇이며, 왜 출현하게 되었는지 설명합니다.
Rule, Action, Stats 3가지 정보를 컨트롤러에서 스위치로 전달하는 프로토콜이다.
[18] SDN과 NFV가 각각 무엇이고, 서로 어떤 관계인지 설명합니다.
SDN은 장치들을 연결해 네트워크 트래픽 전달 동작을 소프트웨어 기반 컨트롤러를 통해 제어하는 방식이다. NFV는 장치 안에서 가상화된 소프트웨어를 내려 네트워크 기능을 설치, 제어하는 방식이다. SDN와 NFV는 네트워크의 프로그램화를 이루기 위한 상호보완적인 도구들이다.
[19] 5G 이동통신이 과거 이동통신과 가장 다른 특징을 네트워크와 서비스 측면에서 설명합니다.
5G 이동통신은 과거와 다르게 네트워크를 SDN과 NFV로 구축함으로써 각각 필요로 하는 요구사항에 알맞는 서비스를 제공한다.
기말
[1] Transport Layer의 Process-to-Process 전송이 어떤 의미인지 설명합니다.
컴퓨터와 컴퓨터 사이의 전송에서 더 나아가 컴퓨터 안의 프로세스, 프로그램에 포트 번호를 부여하고, Source 프로그램부터 Destination 프로그램으로 데이터를 전송하는 것을 말한다.
[2] TCP/UDP의 헤더 정보에서 Process-to-Process 전송이 가능하게 하는 필드는 무엇이고, 어떤 용도로 사용하는지 설명합니다.
Source port address, Destination port address 필드에서 각각 포트 주소를 지정해 해당 프로세스를 지정해 데이터를 전달할 수 있도록 한다.
[3] OSI 2계층에서 에러 검출 및 복구를 하지만, 4계층에서도 에러 검출 및 복구를 해야하는 이유를 설명합니다.
네트워크 계층의 전달에서 한 곳에 너무 많은 패킷이 몰릴 경우 한 번에 전송할 수 없고 버퍼에 보관하다 일정 시간이 지나면 데이터를 비우는 방식을 사용하므로 데이터 손실이 발생한다. 즉, 장치 안에서 발생가능한 손실이 있을 수 있기 때문에 신뢰성을 최대한 보장하고자 4계층에서도 에러 검출, 복구를 해야 한다.
[4] UDP는 에러 검출 및 복구를 하지 않지만, 그럼에도 불구하고 사용을 하는 이유를 설명합니다.
작은 메시지 하나를 전송하기 위해 TCP를 사용해 연결 설정을 하는 비용을 사용하기 보다는 신뢰성을 보장하지 않아도 되는 작은 메시지는 UDP를 사용해 연결 설정 없이 빠르게 전송하는 방식을 사용한다.
[5] TCP의 에러 검출과 복구 동작을 TCP의 헤더 필드를 사용하여 설명합니다.
클라이언트가 전송한 세그먼트는 sequence 번호를 갖는다. seq번호는 랜덤하게 설정되어 일정 크기로 전송한다. 서버는 세그먼트를 전송받았다는 의미로 ACK를 클라이언트로 전송하는데, ACK는 다음 세그먼트 번호로 전송한다. 클라이언트가 전송한 세그먼트가 손실됐을 때 ACK를 전송받지 못하는 경우 → 타이머가 끝나고 ACK를 받지 못한 세그먼트를 재전송한다. 혹은 400번 세그먼트를 전송받지 못한 채 500번 세그먼트를 전송받은 경우 401번 ACK를 전송해 재전송 요청을 보낸다.
서버가 보낸 ACK를 전송받지 못한 경우 → 세그먼트를 500~900까지 100단위로 전송할 때 중간 ACK를 전송 받지 못했지만 901의 ACK를 전송 받으면 올바르게 전송되었다는 의미이므로 중간 ACK의 손실이 상관없다. 하지만 ACK를 타이머가 끝날 때까지 전송받지 못한 경우 세그먼트를 재전송한다.
[6] TCP의 흐름 제어 동작을 TCP의 헤더 필드를 사용하여 설명합니다.
클라이언트와 서버는 각각 버퍼를 나타내는 cwnd, rwnd를 사용한다. 서버는 초기 연결 요청을 받은 경우 ACK에 서버의 버퍼 크기를 나타내는 rwnd를 설정해 전달한다. (rwnd를 1000으로 설정했다고 가정) 만약 클라이언트가 세그먼트를 200바이트 전송하면 cwnd는 200바이트 세그먼트를 저장한다. 세그먼트를 받은 서버의 버퍼는 200만큼 차지하고, 사용가능한 버퍼는 800이므로 ACK에 rwnd를 800으로 설정해 전송한다. 만약 200만큼의 세그먼트를 서버에서 처리했다면 rwnd를 1000으로 늘려 전송하는 방식을 사용한다. ACK를 받아 확인하고, 서버의 rwnd를 고려해 전송하는 방식을 통해서 흐름을 제어한다.
[7] TCP의 혼잡 제어 동작을 TCP의 cwnd 값을 관리하는 2가지 방식을 사용하여 설명합니다.
cwnd를 관리하는 방식은 작은 cwnd로 시작해서 지수적으로 cwnd를 늘리는 방식, cwnd를 선형적으로 증가시키는 방식 2가지 방식이 있다.
- 지수적으로 증가시키는 방식은 rwnd가 크더라도 물리적인 줄을 공유해서 사용할 경우 한 번에 많은 크기의 세그먼트를 전송할 경우 부하를 줄 수 있기 때문에 cwnd를 작게 설정해 전송하고 ACK가 전송될 경우 지수적으로 증가시켜 전송한다.
- 선형적으로 증가시키는 방식은 초기 rwnd의 중간 크기, 혹은 더 적은 크기의 cwnd를 설정하고 ACK를 잘 받으면 cwnd를 선형적으로 증가시키는 방식이다. 다음의 방식을 함께 사용하여 클라이언트의 전송이 서버에 너무 많은 부하를 주지 않고, 낭비는 하지 않도록 혼잡 제어 동작을 한다.
[8] Socket 프로그래밍에서 서버와 클라이언트의 동작 절차를 주요 함수 기준으로 설명합니다.
서버는 소켓을 만들고 listen을 통해 클라이언트의 요청을 대기한다. 클라이언트는 소켓을 만들고 서버로 connect, 연결 요청을 보내고 서버는 수락해 서로 연결한다. 클라이언트는 서버로 write를 통해 요청을 보내면 서버는 read를 통해 요청을 받고 write로 값을 넘겨주고 클라이언트는 read를 통해 서버에서 보낸 값을 받는다. 작업이 끝나면 클라이언트는 close 함수를 통해 연결을 닫고 서버도 이를 받아 연결을 닫는다.
[9] 사용자의 URL 입력 이후부터, HTTP Req가 HTTP Client에서 전송되기 전에 이뤄져야 하는 동작을 차례대로 설명합니다. (DNS Lookup, TCP 연결 설정)
URL을 입력하면 DNS Lookup을 통해 도메인을 IP주소로 변환한다. 해당 IP 주소를 통해서 클라이언트는 서버로 TCP 연결 요청을 보내고 서버는 수락하여 연결 설정을 한다. 이후 HTTP Req가 HTTP 클라이언트에서 전송된다.
[10] HTTP의 4대 메시지를 나열하고, 각각의 기능, 그리고 각각에 대해서 REQ/RES에 포함하는 정보가 무엇인지 설명합니다.
GET : 서버로부터 클라이언트에 해당 리소스를 전송하라. REQ : 서버에서 가져올 데이터 위치
RES : 요청받은 데이터에 대한 정보 (Content-type, length, content) PUT : 클라이언트로부터 해당 서버 리소스에 저장해라. REQ : 저장할 파일에 대한 정보(type, length)를 전달한다. RES : 저장한 위치, 위치에 대한 메타 정보 DELETE : 서버에서 해당 리소스를 제거하라. REQ : 삭제할 파일 위치 RES : 삭제 상태에 대한 내용, 메타 정보 POST : 입력 데이터를 서버 어플리케이션으로 전송한다. REQ : 입력 받은 데이터에 대한 정보, 서버 어플리케이션의 위치 RES : 서버 어플리케이션에서 처리한 결과에 대한 정보 공통적으로 status code, host를 갖는다. Start line : 메소드 이름과 URL이름이 있는 한 줄 Body : 파일이나 정보를 전송할 때 해당 데이터 Request Header : 텍스트 파일 전부를 소화 가능, 언어는 en, fr만. Response Header : Content-type, Content-length
[11] HTTP/2의 다중화 기술은 HTTP/1.1과 어떤 점이 다르며, 어떻게 다중화가 가능한지 설명합니다.
HTTP/2는 하나의 TCP연결에 여러 논리적인 줄, stream을 만들어 stream마다 개별적으로 작동해 다수의 요청/응답을 동시에 처리할 수 있도록 한다. 이전 HTTP/1.1의 경우 하나의 TCP연결에 하나의 논리적인 줄을 사용하는 구조로 요청을 순차적으로 받고 순차적으로 응답을 받아야 했지만, 다중화를 통해 동시에 처리할 수 있도록 변화했다.
[12] HTTP/2에서 HTTP Req/Res 메시지를 어떻게 압축하는지 설명합니다.
처음 요청 시 헤더 내용을 테이블에 저장하고 다음 요청 시에 동일한 헤더를 사용하는 경우 숫자를 전송해 압축된 데이터를 전송한다. 또한, 허프만 코드를 만들어 전송함으로써 압축된 데이터를 전송한다.
[13] HTTP/3는 HTTP/2가 (TCP를 사용하기 때문에 해결하지 못하는) 어떤 문제점을 해결하고 있는지, 네트워크에서의 에러 발생과 초기 연결 관점에서 설명합니다.
TCP를 사용함으로써 발생하는 초기 연결 설정에서의 속도가 느리다는 단점, 스트림 하나에서 프레임 손실이 발생할 경우 다른 스트림도 모두 성능이 저하된다는 단점을 갖는다. 이 점을 HTTP/3에서는 QUIC과 UDP를 사용하여 각각의 스트림이 독립적으로 작용하도록 만들어 다른 스트림에 영향을 주지 않는 방식으로 해결했다.
[14] SIP 프로토콜을 사용하여 음성 전화를 하는 경우, 발신자와 착신자 간의 연결 설정과 해제 과정을 주요 메시지를 사용하여 설명합니다.
연결요청을 하고 싶은 경우 SIP INVITE를 서버를 통해 발신자가 착신자에게 전송한다. 연결음이 전송되고 착신자가 연결 요청을 받으면 200 OK를 발신자에게 전송해 표시한다. 연결 확인도 받았다는 SIP ACK를 다시 발신자가 착신자에게 전달하면서 연결요청이 완료되고 통신을 한다. 이후 통신이 완료되면 SIP BYE 메시지를 전송해 연결 요청을 해제한다.
[15] WebRTC에서 STUN 서버와 TURN 서버의 역할에 대해서 설명합니다.
STUN 서버는 유무선 공유기에서 나온 Private IP 주소를 Public IP 주소로 변경해 알려주는 역할을 한다.
TURN 서버는 인원이 많아져 세션 방이 많아짐에 따라 증가함으로써 증가하는 음성, 영상 등 미디어 등의 트래픽을 받아 여러 명에게 뿌리는 역할을 한다.
[16] Cloud Computing이 시작하게된 계기를 Public Cloud 사업자와 사업을 시작하는 벤처 회사 입장에서 설명합니다.
아마존은 쇼핑몰 회사로서, 주고객 층인 자국민이 쇼핑하는 시간 외의 경우 활용도가 낮은 인프라를 다른 국가 혹은 인프라가 필요한 사용자에게 대여하는 방식으로 추가적인 수익을 확보할 수 있었다.
벤처 회사는 서비스에 대한 정확한 예측이 불가능한 상황에서 인프라를 필요한 만큼 임대하는 방식으로 투자비를 줄일 수 있었다. 그리고 고객의 수요에 맞춰 동적으로 인프라를 줄이고 늘리는 방식으로 운영비를 최적화할 수 있었다는 점에서 클라우드 컴퓨팅이 시작하게 되었다.
[17] Public Computing의 3대 모델을 나열하고, 각각 어떤 사항을 제공하는지 설명합니다.
IaaS : Infrastructure as a Service로, CPU 디스크, 네트워크 등 필요한 하드웨어, 필요하다면 운영체제까지 제공하는 서비스를 말한다. PaaS : Platform as a Service로, 개발자들이 편리하게 개발할 수 있는 API, 라이브러리 등을 제공하는 서비스를 말한다. SaaS : Software as a Service로, g메일, 구글 독스와 같이 사용자들이 사용하고 활용할 수 있는 소프트웨어 자체 제공하는 것을 말한다.
[18] EC2와 S3가 무엇인지 설명합니다.
EC2는 Amazon Elastic Compute Cloud로, 가상 머신을 제공한다. S3는 Amazon Simple Storage Service로, 웹 서비스 인터페이스를 통해 스토리지를 제공한다. 웹서비스를 통해 확장 가능한 배포, 스토리지 관리를 할 수 있도록 한다.
[20] Virtual Machine 기반의 Computing의 Guest OS over Host OS이 문제로 작용한 사용자는 누구이며, 왜 문제인지 설명합니다.
Private Cloud를 사용하는 사용자의 경우 조직이 조직원들에게 자원을 공유하는 방식이고, 대부분 Host OS와 Guest OS가 동일한 경우가 일반적이다. 동일한 OS를 사용해 쌓는 방식은 하나의 OS만 사용하는 것에 비해 컴퓨팅 리소스를 낭비하는 것과 같기 때문에 더 많은 비용이 든다는 점에서 문제이다.
[21] Container 기술이 Guest OS over Host OS 문제를 해결할 수 있는 이유와, Container에 포함되는 내용물은 무엇인지 설명합니다.
컨테이너 기술은 Host OS 위에 Guest OS를 올리는 것이 아닌, Host OS를 공유한다. 컨테이너는 바이너리, 라이브러리, 어플리케이션으로 이루어져 Host OS 위에 올라가 작동하기 때문에 Guest OS over Host OS 문제를 해결한다.
[22] Microservice 개념에 의해서 만들어지는 프로그래밍(들)이 과거 하나의 강력한 프로그램으로 만드는 경우 대비 가질 수 있는 장점들을 기술적/비기술적인 측면에서 설명해 봅니다.
과거 하나의 강력한 프로그램으로 만드는 경우 하나의 언어로 통일해 개발하고 하나의 구조로 함께 작동하고 협업해야 했으나, Microservice를 통해 하나의 강력한 프로그램이 작은 여러 개로 쪼개짐으로써 비기술적으로는 7~10명의 소규모로 운영되어 빠르게 수정, 보완이 이루어지고, 기술적으로는 각자가 특화된 개발 언어, 도구를 사용하여 제작할 수 있다. 또한, 컨테이너를 자동화, 통합하는 DevOps 개념을 사용하여 빠르게 유지 보수, 배포를 할 수 있도록 변했다.
[23] Game 서버 중, Master Server와 Game (Logic) Server의 역할에 대해서 설명합니다.
Master Server는 모든 것이 연결되는 서버로, 로그인, 인증, 게임 서버 작동 확인 및 유저에게 게임 서버 할당 등의 역할을 한다. Game Server는 실질적으로 게임 로직을 구현하여 큰 네트워크 트래픽을 다루고 높은 CPU 연산을 다룬다. 또한, 중앙 서버를 경유하지 않고 트래픽을 전송하는 P2P도 지원한다.
[24] Game 서버가 제공하는 실시간 성 서비스는 어떤 것들이 있는지 설명합니다. (네트워크 기능, 콘텐츠 생성 기능 등 측면을 강의노트의 서버 예제들을 참조하여 답변함)
Photon의 경우 멀티 플레이어들이 만드는 데이터를 서로 주고 받을 수 있도록 하는 기능, 120FPS와 같이 1초에 60~120개의 이미지를 생성해 제공하는 기능 등을 통해 여러 유저가 실시간으로 데이터를 주고 받고 움직임을 생동감있게 표현하는 서비스를 제공한다.
[25] Physical Computing 이란 무엇인지, Environment와 System 간의 상호작용을 중심으로 설명합니다.
Physical Computing은 센서를 통한 아날로그 입력을 받아 모터 등의 하드웨어 전자 기계 장치들을 조종하는 것을 말한다.
[26] CPS란 무엇인지, digital twin의 개념과, (CPS를 구성하는) Computation / Communication / Control을 중심으로 설명합니다.
Digital twin은 실세계의 환경을 사이버에 똑같이 구현하는 것을 말한다. CPS는 digital twin을 만들어 실세계의 정보를 받아들이고 사이버 상에서 computation을 진행하고 실세계와 사이버의 communication을 통해 정보를 전달해 실세계의 기계들을 control하는 기술을 말한다.