#오픈소스소프트웨어개발방법및도구 #오픈 #컴퓨터네트워크 #컴넷

제목[공지] 오픈소스SW개발방법및도구 중간고사 예상문제2023-10-31 10:18
작성자 Level 10

[1] 자유 소프트웨어의 정의에서 언급되는 5가지 특징을 나열하고, 각각에 대해서 간략하게 설명합니다.


[2] Copyleft 라는 단어가 어떤 의미인지 설명합니다.


[3] GNU 단체가 탄생하게 된 배경과 핵심 인물이 누구인지 설명합니다.


[4] 오픈소스 하드웨어가 무엇인지 정의합니다. 그리고 대표적인 오픈소스 하드웨어 두가지 이상을 나열하고, 각각 무엇인지 설명합니다.


[5] 개발하고자 하는 소프트웨어의 특성을 System 소프트웨어와 Application 소프트웨어로 구분하기 위한, 소프트웨어의 계층적 구분에 대해서, 상위 계층 부터 하위 계층까지 어떤 계층이 있는지 나열합니다. 각 계층에 대한 설명은 필요하지 않습니다.


[6] Reverse Engineering (역공학)이라는 것은 무엇이며, 어떤 경우에 필요한 것인지 설명합니다.


[7] Refactoring 이라는 것은 무엇이며, 어떤 목적으로 수행하는지 설명합니다.


[8] KPI란 무엇이며, 소프트웨어의 개발을 시작하는 측면에서 어떻게 활용할 수 있는지, KPI 중 하나를 임의로 선정한 후, 예를 들어서 설명합니다.


[9] C/C++ 언어에서 하드웨어를 제어하기 위하여 개발된 기능 두가지가 무엇인지 나열하고, 해당 기능이 왜 하드웨어를 제어할 수 있다는 것인지 설명합니다.


[10] Python 프로그래밍 언어의 주된 용도 중, Rapid 개발과 Glue 역할에 대해서, Python 언어 개발자의 주장을 기반으로 설명합니다.


[11] 통상 분야가 정해지면 해당 분야에서 선호하는 프로그래밍 언어가 있는 반면, 마이크로서비스 분야에서의 프로그래밍 언어 선택은 제한이 많지 않은 것에 대해서 이유를 설명합니다.


[12] Agile Manifesto의 4가지 항목을 나열하고, 간단하게 기존 개발 방식과 비교하여 설명합니다.


[13] Agile Manifesto의 4가지 각 항목에 대해서, 12 principle 중 대응하는 하나의 항목을 선택하여 설명합니다.


[14] CI/CD가 무엇인지 간단하게 설명합니다.


[15] DevOps의 단계를 나열하고, 각각이 어떤 의미인지 간단하게 설명합니다.


[16] 자료구조와 알고리즘 과목이 탄생하게된 이유와, 현재 두 과목의 존립 혹은 변경에 대한 논의가 전공자들 사이에서 발생하는 이유를 설명합니다.


[17] 메시지 시퀀스 차트(Message Sequence Chart)란 무엇이며, 어떤 경우에 사용하는지 예를 들어 설명합니다.


[18] 상태 천이도(State Transition Diagram)이란 무엇이며, 어떤 경우에 사용하는지 예를 들어 설명합니다.


[19] Trusted Computing이 무엇인지, ARM의 TrustZone을 예를 들어 설명합니다.


[20] Coding is FUN 수업에서 언급한 사항 중 본인의 진로/적성 등에 부합하는 한 가지를 기술하고, 이유를 설명합니다.


[21] 중앙집중형 VCS와 분산형 VCS의 차이점을 설명합니다. 그리고 Git는 어디에 속하는지 설명합니다.


[22] 버전 관리에서 trunk (main line), branch, merge 무엇인지 설명합니다.

댓글