소프트웨어융합개론/시험 예시문제

## 2017년 2학기 기말고사

1. Bluetooth 통신 기술의 버전별 속도에 대해서 설명하고, Classic 버전과 Low-energy 버전의 주요 차이점을 기술적으로 설명하시오.

 4.0
 5

 언제나 켜져있음
 레이턴시 100ms
 데이터 전송에 필요한 최소 시간
(배터리 수명 결정)
100ms

2. 무선랜(WiFi) 기술인 IEEE 802.11 기술이 주파수와 전송속도의 차이에 따라 어떤 세부 종류로 나뉘어 지는지 이름을 나열하여 각각을 간단히 설명하시오

3. 이동통신에서 Cellular Networking의 개념 (왜, 어떤 구조로 만들고 동작하는지)을 설명하시오.

왜 : 넓은 지역을 커버하는 Network를 통해 고정되어있지 않고 움직여다니는 통신기기, 특히 핸드폰 등을 통신이 가능하게 만들기 위함

구조 : 하나의 기지국이 커버하는 구역을 Cell이라고 부른다. 이러한 Cell들이 벌집처럼 맞물려있는데, 이를 통해 광범위한지역을 커버한다. 이 때 이웃하는 셀의 주파수는 서로 달라야한다.

4. 인터넷의 설계 철학(왜, 어떤 목적으로 만들어 졌는지)을 설명하시오

처음에 미국 국방부 산하의 연구소에서 냉전 당시 핵전쟁 하에서도 안정적으로 정보 교환을 할 수 있도록 ‘튼튼하고’, ‘연결이 망가지는 것에 관용적인’ 네트워크를 만드는 연구에 착수했다.

그리고 이를 통해 미국 본토 내의 대학들을 중심으로 네트워크를 연결한 ARPANET이 탄생하게 되는데 나중에 ARPANET은 일반인 용으로, 군사용은 MILNET으로 분리되었다.

후에 기업들 간의 상업적 용도의 네트워크가 현대 인터넷의 시발점이 되었다.

5. WWW(World Wide Web)이 만들어 진 이유와, HTML이 이 이유에 부합되어 사용되어진 이유를 설명하시오.

유럽 입자 물리 연구소(CERN)의 소프트웨어 공학자 팀 버너스리 경이 전 세계의 대학 및 연구소들끼리 상호 연구를 위해 정보를 신속하게 교환할 수 있게 하기 위해, 문서, 음성, 동영상 등을 전부 포함하는 데이터베이스를 구축하고, 이를 전문 열람 소프트웨어로 열람하는 방식을 생각해 내게 되었고, 이것이 WWW이다.

팀 버너스리가 만든 이 정보 관리 시스템은 하이퍼텍스트 중심으로 구성이 되었다. 왜냐면 애초에 정보 교환을 위해 만들어졌기에, 하이퍼링크로 문서를 넘나드는 것이었기 때문이다. 그렇기에 WWW는 기본적으로 하이퍼텍스트 기반으로 연결된 문서들의 집합체이며, 이 문서들은 하이퍼텍스트를 다루는 언어인 HTML(HyperText Mark-up Language)를 통해 작성된다.

6. HTTP에서의 Static Content와 Dynamic Content의 개념을 설명하고, 실세계에서의 예제를 기술하시오.

Static Content :

요약: 누가 어느 때에 보든 고정되어 있는 콘텐츠를 말한다. 예를 들어 페이지 레이아웃 등이 있다.

유저에게 데이터를 수정, 생성 등을 하지 않고 바로 제공할 수 있는 데이터. 모든 유저들에게 같은 데이터를 제공하기에 제일 간단하고 효율적으로 제공할 수 있는 데이터이다. (메뉴, 웹사이트 로고 등)

Dynamic Content :

요약: 보는 사람이나 시간에 따라 다른 내용이 표시되는 콘텐츠를 말한다. 예를 들어 아마존의 상품 추천란이 있다.

시간이나 유저의 입력 등과 같은 특정 조건에 따라 응답데이터가 달라지는 자원 (쇼핑몰에서 제품 정보의 경우 모든 제품들의 정보들, 이름, 가격, 수량 등은 데이터베이스에 저장되어있을 것이고, 유저가 제품을 열람할 때 이 데이터가 불려져 올 것. 그러므로 이 content는 CMS에 의해 생성되는 동적 content.)

7. HTTP 통신 서비스를 위하여 DNS 서버를 경유해야 하는 이유를 설명하시오.

DNS는 도메인 이름에 대한 IP 주소를 갖고 있는 서버이다. 이 서버는 도메인 이름에 대해 IP 주소를 알려주는 일을 한다. 우리가 보통 웹서핑을 할 때 URL로 도메인 이름을 이용하는데 컴퓨터는 IP 주소를 통해 통신한다. 따라서 어떤 도메인 이름에 해당하는 IP 주소를 찾아야하는데, 이를 위해 필요한 것이 바로 DNS 서버이다.

8. Copy-right과 Copy-left의 개념을 비교하여 설명하시오.

Copy-left란 소프트웨어를 다른 프로그래머들이 자유롭게 사용할 수 있게 해주는 것이다. 모든 사람이 사용하고, 수정하고, 배포 형태가 바뀌지 않는 이상 프로그램을 재배포하거나 코드 자체를 재배포할 수 있는 법적 권한을 모두에게 주는 것이다.

Copy-right는 저작권을 의미한다. 저작권이 존재하는 소프트웨어는 함부로 사용하거나, 복사할 수 없다. 만약 이용하고 싶다면 원작자에게 허락을 맡거나 돈을 지불해서 법적 권한을 취득해야한다.

9. Linux Foundation의 설립 이유와 대표적인 프로젝트를 설명하시오.

리눅스 재단은 기술의 발전과 상업적 이용을 위한 오픈소스 프로젝트들의 지속 가능한 생태계를 만들기 위해 설립되었다. 대표적인 프로젝트는 리눅스 운영체제로, 리누스 토발즈가 제작을 처음 하여 오픈소스라는 특징 덕분에 여러 가지 형태로 수정되어는 현재 상당수의 웹 서버와 모바일 장치를 구동하는 운영체제가 되었다.

10. Open Source Hardware란 무엇인지 개념을 설명하고, 실제 사례를 예를 들어 설명하시오.

오픈소스 하드웨어는 하드웨어의 설계 결과물 뿐만 아니라 그것을 목적에 맞게 구동하는 소프트웨의 소스 결과물까지도 무료로 공개함으로써 생성된 오픈소스 문화와 그 결과물을 얘기한다.

대표적인 예시로 아두이노가 있다. 아두이노는 오픈소스 하드웨어의 철학을 처음으로 담은 것으로, 임베디드 시스템 개발 경험이 없더라도 쉽게 개발할 수 있게 펌웨어를 쉽게 만들어 탑재하도록 지원하는 통합개발환경(IDE)과 다양한 코드소스, 회로도 등을 무상으로 제공한다. 게다가 보드 자체도 가격이 저렴하고 각종 센서, 엑츄에이터들 및 통신 모듈 등을 탑재한 다양한 호환보드들에 의해 쉽게 확장될 수 있기에 아두이노 열풍을 불기에 충분했다.

11. Open Compute Project가 무엇인지 개념을 설명하고, 실제 프로젝트에 속한 사례를 간단하게 설명하시오.

OCP는 효율적인 인프라 구축 및 운영을 위해 서버, 스토리지, 데이터센터 등 하드웨어에 대한 기술과 아이디어를 공유한다. 실제로 페이스북이 OCP를 사용하고 있다. 페이스북은 자신의 데이터센터 구축 기술을 공개하였고, 공개 사이트에 들어가면 서버 전체 디자인부터 세부 스펙, 컴퓨터 설계 도면까지 열람 가능하다.

12. Cloud Computing이 탄생하게 된 배경을 아마존과 같은 Public Cloud 제공 업자의 입장에서 설명하시오.

서버 이용량은 시간에 따라 차이가 있고 항상 피크치를 유지하는 것이 아니다. 하지만 업체 입장에서는 항상 피크치 이상의 서버를 유지해야 하고 시간대에 따라 쓰이지 않는 컴퓨터가 생기게 된다. 이런 idle 컴퓨터를 놀리기 보다는 필요한 유저에게 제공해 돈을 벌 수 있도록 한 것이다.

13. Cloud Computing이 탄생하게 된 배경을 벤처 회사의 입장에서 설명하시오.

데이터 센터를 구축하고 유지하는데는 굉장히 많은 자본이 들어간다. 이를 Cloud Computing의 등장 덕분에 클라우드 서비스 제공회사로부터 필요한 만큼 빌려쓸 수 이게 된 것이다.

14. Cloud Computing이 탄생하게 된 배경을 삼성전자 혹은 현대자동차와 같은 일반 사설 업체 입장에서 설명하시오.

일반 사설회사도 회사내에 있는 수많은 컴퓨터 중 쓰이지 않는 컴퓨팅 자원을 다른 부서에 쉽게 빌려줄 수 있게 되었다.

15. Cloud Computing의 동작 원리를 사용자, cloud computing 자원 (computing, storage)을 대상으로 간단하게 설명하시오.

사용자가 작업을 시작하면 cloud의 computing 자원을 이용하게 되고, 작업의 결과를 storage나 통신을 통해 반환받게 된다.

16. S3와 EC2란 무엇이며, 어떤 작업을 하는 것에 쓰이는지 설명하시오.

S3 : 원하는 양의 데이터를 저장하고 검색할 수 있도록 구축된 객체 스토리지이다. S3를 통해 비용 최적화, 액세스 제어 및 규정 준수 데이터를 유연하게 관리할 수 있다. 스토리지 플랫폼.

EC2 : 사용자가 가상 컴퓨터를 임대받아, 그 위에 자신이 원하는 컴퓨터 애플리케이션을 실행할 수 있게 한다. 이 가상의 컴퓨터는 인스턴스라는 이름을 갖는 가상 머신이며, 이는 가상 사설 서버의 기능을 한다. 즉, 서버를 돌리는 데 사용된다.

17. IaaS, PaaS, SaaS란 무엇인지 개념을 설명하고, 어떤 용도로 사용되는지 실제 사례를 이용하여 설명하시오.

IaaS~~레고공장~~ (Infrastructure as a Service): 클라우드로 IT 인프라 자원을 제공하는 서비스다. 서버, 데스크톱 컴퓨터, 스토리지와 같은 IT 하드웨어 자원을 클라우드 서비스를 통해 빌려 쓰는 형태를 의미한다. 그렇기에 사용자는 직접 데이터 센터를 구축할 필요 없이 클라우드 환경에서 필요한 인프라를 꺼내 쓰면 된다. 여기에 사용자는 OS를 설치하고 어플리케이션을 설치하기만 하면 원하는 서비스 운영 가능하다.

실제 사례 : AWS와 Gamevil / Netflix 등

아마존은 대량의 서버, 스토리지, 네트워크 장비가 있으며, 사용자는 이것을 대여하는 구조이다. 게임빌의 모바일 게임은 응답속도가 생명이기에, 국내에 데이터 센터를 두고 해외 서비스하는 것은 불가능하다고 여겼다. 게다가 모바일 게임은 사용량을 예측할 수 없고, 운영 중 갑작스럽게 성능 향상을 위한 상황이 생길 수도 있기 때문에, 아마존을 통해 게임 업데이트 및 패치 서비스를 구현하고 있고, AWS는 서버가 전 세계 각지에 있기에 해외 사용자들도 응답속도 문제 없이 사용할 수 있다.

PaaS~~레고블록~~ (Platform as a Service): 인터넷으로 컴퓨터 응용 프로그램 설계, 개발, 배포 등에 필요한 하드웨어와 소프트웨어를 제공하는 체계를 일컫는다. 여럿이 한 곳에 없더라도 인터넷을 통해 같이 개발할 수 있게한다. 이를 통해 앱의 개발 및 시작과 관련된 인프라를 만들고 유지보수하는 복잡함 없이 고객이 애플리케이션을 개발, 실행, 관리할 수 있는 플랫폼을 제공한다. SaaS의 개념을 개발 플랫폼에 확장한 방식이다. 개발을 위한 플랫폼 구축을 할 필요 없이 필요한 부분만 웹에서 쉽게 빌려쓸 수 있게 하는 모델이다. 구글, 네이버, 다음 등에서 제공하는 공개 API들이 PaaS의 일종이다.

PaaS 서비스 업체는 레고 블록(소프트웨어 개발 도구)을 개발자에게 제공한다. 개발자는 각 레고 블록을 바탕으로 자신만의 레고 모형(소프트웨어)을 만들기만 하면 된다. 그냥 블록 조각만 고르고 그 비용만 치루면 끝.

실제사례 : Microsoft Azure와 Frame / salesforce.com / 구글 앱 엔진

Azure는 마이크로소프트의 전 세계 데이터 센터 네트워크를 통해 응용 프로그램을 빌드, 배포 및 관리하는 데 사용하는 포괄적인 클라우드 서비스 집합이다. Frame이라는 회사는 고사양의 하드웨어가 필요한 3D 모델링 소프트웨어를 클라우드에 올려 고사양의 하드웨어가 아닌 태블릿이라 하더라도 이를 가능하게 했다.

SaaS~~레고모형~~ (Software-as-a-Service): 소프트웨어의 여러 기능 중 사용자가 필요한 서비스만 이용 가능하도록 한 소프트웨어이다. 공급업체는 하나의 플랫폼을 다수의 고객에게 소프트웨어 서비스를 제공하는 것이다. 소프트웨어 및 관련 데이터는 중앙에 호스팅되고, 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하는 형태의 소프트웨어 전달 모델이다. 따라서 소프트웨어를 구입해서 PC에서 설치하지 않아도 웹에서 소프트웨어를 빌려 쓸 수 있다.

실제 사례 : 네이버 클라우드 / ucloud / T cloud / Polaris Office / 넷피스 / 세일즈포스닷컴 CRM 솔루션

18. Hybrid Cloud가 필요한 이유와 용도에 대해서 설명하시오.

특정 기업이 데이터 저장소에 대한 권한을 갖고는 싶은데 추가적인 공간이 필요할 때

그들은 이미 그들이 갖고 있는 데이터 저장소에 대한 보안과 관리가 그들의 사적인 클라우드에 있겠으나, 추가적인 정보가 생긴다면, 이것을 원할 때 원하는 만큼 사용할 수 있는 공개 클라우드에 저장할 수 있게 된다.

19. Thin Client란 무엇인지 설명하고, 실제 응용 사례 혹은 관련 오픈소스를 설명하시오.

신 클라이언트란 CPU, 메모리 등의 필수적인 하드웨어 장치만 탑재해 네트워크로 연결된 중앙서버에서 모든 업무를 관리하도록 설계된 업무용 PC를 말한다.

관련 오픈소스 : POS 시스템

(alt)

웹 브라우저를 돌릴 수 있는 간단한 하드웨어가 있으면 웹을 통해 여러 서비스를 이용해 컴퓨터를 사용할 수 있다는 개념이다.

실제 이용 오픈소스 사례로 FireFox OS Project를 들 수 있다.

관련 오픈소스 : POS 시스템

20. Container 기술과 Cloud Computing 기술의 상관성 혹은 차이점에 대해서 설명하시오.

컨테이너 : 호스트의 운영체제를 공유하기에 무게가 더 가볍다. 컨테이너는 실행에 필요한 모든 파일들 등, 전체 런타임 환경에서 애플리케이션을 패키지화하고 격리할 수 있도록 하는 기술이다. 이를 통해 전체 기능을 유지하면서 컨테이너화된 애플리케이션을 환경(개발, 테스트, 생산 등) 간에 쉽게 이동할 수 있습니다. 이를 활용하면 담당 영역을 분리하여 개발 팀과 운영 팀간의 충돌을 줄일 수 있다.

차이점 : 컨테이너는 호스트와 운영체제가 같기에 가상의 운영체제가 따로 더 올라갈 필요가 없다.

21. DevOps가 무엇인지 설명하시오.

소프트웨어 개발 방법론의 하나로, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업, 통합을 강조하는 개발 환경이나 문화를 말한다. 데브옵스 문화의 주요 특징은 소프트웨어 설계를 개발, 테스트, 배포에서 인프라 관리까지의 자동화와 관리를 강력하게 지지한다는 것이다.

22. Micro Service가 무엇인지 설명하시오.

대규모 소프트웨어 개발에 적용하기 위한 것으로, 단독으로 실행 가능하고 독립적으로 배치될 수 있는 작은 단위로 기능을 분해하여 서비스할 때, 이 서비스를 마이크로 서비스라고 한다. 이 때 이 재료들은 서로 http API를 통해 통신한다.

23. CPS가 무엇인지와 실세계의 예를 간단하게 설명하시오.

인터넷과 통합된 컴퓨터 기반의 알고리즘(가상 세계)에 의해 제어되거나 관리되는 메커니즘(물리적 세계)이다.

다양한 기계와 이를 제어하기 위한 소프트웨어, 액추에이터, 센서, 전자 하드웨어, 임베딩 시스템 등을 포함한 각종 네트워크 시스템을 연결짓는다면, 사물인터넷의 개념과 일맥상통한다.

실세계의 예 : IoT / 스크린 골프 / 공장 자동화 등

24. Arduino와 RaspberryPi 보드의 유사한 부분과 차이점을 설명하시오

아두이노와 라즈베리파이는 IoT에 사용되는 초소형 컴퓨팅 보드이고, GPIO 등을 이용해 센서 입력이나 외부 출력이 가능하다.

아두이노는 우리가 통상적으로 생각하는 통상적인 컴퓨터가 아니다. OS를 위에 돌릴 수가 없다. 아두이노는 마이크로 컨트롤러다. 즉, 정보를 간단하게 처리할 수 있는 프로세서.

라즈베리파이는 컴퓨터다. 저장소 있고, 영상 출력 가능하고, OS 돌릴 수 있다. 연산 능력 자체도 아두이노보다 뛰어나다.

25. TrustZone의 개념과 동작원리를 설명하시오.

트러스트존이란 프로세서 안에 독립적인 보안 구역을 따로 두어 중요한 정보를 보호하는 하드웨어 기반의 보안 기술이다. 하나의 CPU를 2 개의 가상 공간, 즉 일반 구역과 보안 구역으로 분할하여 관리한다. 보안 구역에선 보안이 필요한 작업이 실행된다.