logo

소프트웨어의 정의

Network · 5월 18일 · 15 min read
poster

소프트웨어는 컴퓨터 프로그램, 관련 문서 및 데이터의 집합이다. 이는 시스템이 구축되고 실제로 작업을 실행하는 하드웨어와 대조된다.

가장 낮은 프로그래밍 수준에서 실행 가능한 코드는 개별 프로세서 일반적으로 중앙처리장치(CPU) 또는 그래픽처리장치(GPU)가 지원하는 기계어 명령어로 구성된다. 기계어는 컴퓨터의 상태를 직전 상태에서 변화시키는 프로세서 명령을 의미하는 이진 값의 그룹으로 구성된다. 예를 들어, 명령어는 컴퓨터의 특정 저장소에 저장된 값을 변경할 수 있다. 예를 들어, 컴퓨터 화면에 텍스트를 표시하는 것과 같은 것이다. 프로세서는 다른 명령어로 "점프"하도록 지시받거나 운영 체제에 의해 중단되지 않는 한 제공된 순서대로 명령을 실행한다.2023년 현재 대부분의 컴퓨터, 스마트 폰 단말기 및 서버는 여러 개의 실행 유닛을 가진 프로세서, 즉 여러 프로세서가 함께 계산을 수행하는 프로세서를 탑재하고 있기 때문에 컴퓨팅은 이전보다 훨씬 더 동시적인 활동이 되고 있다.

대부분의 소프트웨어는 고급 프로그래밍 언어로 작성된다. 고급 언어는 컴파일러, 인터프리터 또는 이 두 가지의 조합을 통해 기계어로 번역된다. 소프트웨어는 컴퓨터의 기계어 명령어에 강하게 대응하는 저수준 어셈블리 언어로 쓰여지기도 하며, 어셈블러를 통해 기계어로 번역된다.

역사

최초의 소프트웨어가 될 알고리즘은 19세기에 Ada Lovelace에 의해 계획된 분석 엔진을 위해 작성되었다. 그녀는 엔진이 베르누이 수를 계산하는 방법을 보여주는 증명을 작성했다.

오늘날과 같은 컴퓨터가 탄생하기 전 소프트웨어에 대한 최초의 이론은 앨런 튜링이 1936년 발표한 'On Computable Numbers, with an Application to the Entscheidungsproblem(결정문제에의 응용)'이라는 에세이에서 시작되었다. (On Computable Numbers, with an Application to the Entscheidungsproblem)"에서 제시된 것으로, 이는 결국 컴퓨터 과학과 소프트웨어 공학이라는 학문 분야의 창설로 이어진다.

2000년 예일대 로스쿨의 사서인 프레드 샤필로는 JSTOR의 전자 아카이브를 검색한 결과, 존 와일더 츄키의 1958년 논문 "The Teaching of Concrete Mathematics"를 발견했다, 옥스퍼드 영어사전의 인용보다 2년 앞서 '소프트웨어'라는 용어의 가장 오래된 용법을 포함하고 있음을 밝혀낸 서신을 발표하였다.1995년 폴 니켓(Paul Niquette)은 1953년 10월에 이 용어를 처음 만들었다고 주장했지만, 그의 주장을 뒷받침하는 문서를 찾을 수 없었다. 의 주장을 뒷받침하는 문서를 찾을 수 없었다. 공학적인 맥락에서 '소프트웨어'라는 용어가 발표된 가장 오래된 문헌은 1953년 8월 Richard R. Carhart(Richard R. Carhart)가 랜드 코퍼레이션(Rand Corporation)의 Research Memorandum(Research Memorandum)에 발표한 것이다.

설계와 구현

소프트웨어의 설계와 구현은 소프트웨어의 복잡성에 따라 다르다. 예를 들어, 마이크로소프트 워드(Microsoft Word)를 설계하고 만드는 데는 마이크로소프트 메모장(Microsoft Notepad)을 설계하고 개발하는 것보다 훨씬 더 많은 시간이 걸렸다.

소프트웨어는 일반적으로 Eclipse, IntelliJ, Microsoft Visual Studio와 같은 통합 개발 환경(IDE)에서 개발되며, 프로세스를 단순화하여 소프트웨어를 컴파일할 수 있다. 다른 섹션에서 언급했듯이, 소프트웨어는 일반적으로 기존 소프트웨어와 GTK+, JavaBeans, Swing과 같은 기반 소프트웨어가 제공하는 애플리케이션 프로그래밍 인터페이스(API) 위에 만들어진다. 예를 들어, 스프링 프레임워크는 엔터프라이즈 애플리케이션 구현에 사용되며, 윈도우 폼스 라이브러리는 마이크로소프트 워드 같은 GUI 애플리케이션 설계에, 윈도우 커뮤니케이션 파운데이션은 웹 서비스 설계에 사용된다. 웹 서비스 설계에 사용된다. 예를 들어, Microsoft Windows 데스크톱 애플리케이션은 애플리케이션을 닫거나 열기 위해 .NET Windows Forms 라이브러리의 Form1.Close() 또는 Form1.Show()와 같은 API 함수를 호출할 수 있다. 없다. 이러한 API가 없으면 프로그래머는 이러한 기능을 모두 직접 작성해야 하는데, 오라클이나 마이크로소프트와 같은 회사는 자체 API를 제공하기 때문에 많은 애플리케이션은 일반적으로 수많은 API를 가진 소프트웨어 라이브러리를 사용하여 작성된다.

해시 테이블, 배열, 바이너리 트리와 같은 데이터 구조와 빠른 정렬과 같은 알고리즘은 소프트웨어를 만드는 데 편리하다.

컴퓨터 소프트웨어는 그 설계, 제작, 유통을 다른 대부분의 경제 상품과 다른 특별한 경제적 특징을 가지고 있다.

소프트웨어를 만드는 사람을 프로그래머, 소프트웨어 엔지니어, 소프트웨어 개발자라고 한다. 프로그래머에는 '코더', '해커'와 같은 비공식적인 용어도 존재하지만, 후자의 용어는 종종 컴퓨터 시스템에 불법적으로 침입하는 사람의 의미로 사용되기 때문에 혼란을 야기할 수 있다.

관련 포스트
post image
플랫폼으로서 웹
# 웹 2.0 웹 페이지는 처음에는 HTML을 기반으로 한 구조화된 문서로 생각했다. 이미지, 동영상 및 기타 콘텐츠를 포함할 수 있었지만 초기에는 미디어 사용이 비교적 제한적이었고 콘텐츠는 주로 정적이었다.2000년대 중반에 이르러 블로그, RSS 등 콘텐츠 공유
Network·5월 11일·19 min read
post image
웹의 대중화와 역사
1991년 1월, CERN 외부의 첫 번째 웹 서버가 가동되었고, 1991년 8월 6일 버너스-리(Berners-Lee)는 뉴스 그룹 alt.hypertext에 월드와이드웹 프로젝트 개요를 발표하고 협력자를 모집했다. 스탠포드 선형가속기센터(SLAC)의 폴 쿤츠(P
Network·5월 8일·27 min read
post image
CERN이란?
# 개요 1989년 3월 12일, CERN에서 근무하던 Tim Berners-Lee는 서로 다른 컴퓨터에 저장된 정보를 찾는 데 있어 비효율성과 어려움에 대해 불만을 갖게 되었고, '제안'이라는 제목의 각서를 CERN 경영진에 제출했다. 이 제안은 '웹'이라는 용어
Network·5월 6일·14 min read
post image
인터넷에 대해 톺아보기
월드 와이드 웹("WWW", "W3", 또는 단순히 "웹")은 인터넷에 연결된 컴퓨터를 통해 사용자가 액세스할 수 있는 글로벌 정보 매체이다. 이 단어는 종종 인터넷의 동의어로 잘못 사용되지만, 웹은 이메일이나 유즈넷과 마찬가지로 인터넷에서 운영되는 서비스이다. 인터
Network·4월 5일·15 min read
post image
네트워크 온 칩
네트워크 온 칩 또는 네트워크 온 칩(NoC /ɛˌ en-oh-SEE 또는 /nɒk/ knock)은 집적 회로("마이크로칩")의 네트워크 기반 통신 서브시스템으로, 가장 일반적인 것은 시스템 온 칩(SoC)의 모듈 간이다. IC의 모듈은 일반적으로 컴퓨터 시스템의 다
Network·3월 4일·16 min read