컴퓨터의 이해 6강 - 소프트웨어와 정보 시스템

2025. 4. 18. 20:19·방송통신대학교/⚙️컴퓨터의 이해

1. 소프트웨어의 종류

(1) 소프트웨어란?

 - 컴퓨터의 하드웨어가 다양한 목적의 작업을 수행할 수 있도록 지시하는 일련의 명렁어로 구성된 다양한 종류의 프로그램 및 관련 데이터를 의미

 - 사용자는 소프트웨어를 통하여 컴퓨터를 사용함

 

(2) 소프트웨어의 종류

 - 소프트웨어의 종류는 크게 "응용 소프트웨어" , "시스템 소프트웨어"가 있다.

 - 응용 소프트웨어와 시스템 소프트웨어는 아래 그림과 같이 동작을 한다.

 

(3) 시스템 소프트웨어

[1] 시스템 소프트웨어란?

 - 컴퓨터 하드웨어를 운영하고, 응용 소프트웨어가 동작하기 위한 기반 구조를 형성하는 소프트웨어를 의미한다.

 - 컴퓨터 사용자가 손쉽게 컴퓨터를 쓸 수 있도록 도와주는 프로그램이다.

 - 컴퓨터 시스템을 효율적으로 운영해 주는 기능을 갖춘 프로그램이다.

 - 종류로는 운영체제, 프로그래밍 언어번역기(컴파일러, 인터프리터), 유틸리티 소프트웨어 등이 있다.

 

(4) 시스템 소프트웨어 - 운영체제

 - 운영체제는 컴퓨터 하드웨어와 응용 소프트웨어를 관리하고, 사용자와 컴퓨터 간의 중재자 역할을 하는 시스템 소프트웨어이다.

 - 사용자가 컴퓨터를 손쉽게 이용할 수 있도록 도와준다.

 - 운영체제는 컴퓨터가 동작하는 동안 항상 실행이 되고 있다.

 

[1] 운영체제 실행 과정

 - 1. 컴퓨터 전원 버튼을 누르면 ROM에 들어있는 BIOS 프로그램이 실행이 된다.

 - 2. BIOS는 POST(Power-On Self-Test) 과정을 거친다. ( 하드웨어 시스템이 정상동작하는지 체크하는 과정 )

 - 3. 이후, Booting 작업을 하는데 이때, 하드디스크에 있는 운영체제를 RAM에 적재를 하게 된다.

 - 4. RAM에 올라간 운영체제가 실행이 되며, 모니터에 GUI 화면을 볼 수 있게 된다. ( 부팅 끝 )

 

[2] 운영체제의 역할

 - 사용자가 컴퓨터와 대화할 수 있도록 인터페이스를 제공한다. (GUI)

 - 컴퓨터의 하드웨어 장치를 관리해준다. ( 메모리, 보조기억장치, CPU 등을 관리 해줌 )

 - 파일시스템을 관리하고 보존한다.

 - 프로그램들이 원활하게 실행될 수 있도록 관리하고 지원함. ( 스케줄링 )

[ 사용자 인터페이스 GUI ]

 - 초기에는 CLI(Command-Line Interface) 명령어 인터페이스를 이용을 했음

 - 이후 운영체제 취지상 모든 사용자들이 사용하기 쉽게 GUI 형태로 만들어서 제공을 해줌.

[ 컴퓨터의 하드웨어 자원 관리 ]

 - 주기억장치의 관리 - 여러 프로그램들이 주기억장치의 공간을 활용하여 실행되기 위한 자원의 관리

 - 디스플레이, 키보드, 마우스, 오디오 장치, 프린터, 네트워크, 보조기억장치 등 주변 장치들의 관리

[ 파일시스템 관리 ]

 - 운영체제는 보조기억장치에 데이터들을 편리하고 안전하게 보관하고, 사용할 수 있도록 도와준다. ( 파일 시스템 )

 - 폴더 관리, 파일 생성, 복사, 삭제, 파일 검색, 백업 및 복구 등의 기능을 제공한다.

[ 프로그램 실행 관리 ]

 - 하나의 컴퓨터 내에서 여러개의 프로그램이 동작할 때, 서로간의 간섭을 일으키지 않게 도와주는 기능을 제공함.

 - 즉, 프로그램간 자원을 공유 할 수도 있으며, 충돌이 일어나지 않게 잘 관리를 해준다.

 

[3] 운영체제 종류

[ 마이크로소프트 Windows ]

 - 1995년에 개인용 컴퓨터를 위한 GUI 환경의 운영체제인 Windows 95를 출시함.

 - 이후 windows 98, Windows XP... 등을 거쳐 2015년 Windows 10, 2021년에는 Windows 11을 공개함.

 - 개인용 데스크탑이나 노트북 컴퓨터용 외에도 서버 및 모바일 용으로 사용하기 위한 버전들도 출시가 됨.

[ 유닉스(UNIX) ]

 - 멀티태스킹, 멀티유저를 지원하는 운영체제이다.

 - 1970년대에 벨 연구소에서 개발된 이후 소스를 공개하여 다양한 버전이 개발이 되었다.

 - 크게 AT & T UNIX System V 버전과 버클리 대학의 BSD 버전이 있다.

 - AT & T UNIX System V 버전 : IBM의 AIX, Oracle의 Aolaris, HP의 HP-UX 등

 - 버클리 대학 BSD(Berkeley Software Distribution) 버전

 - 1980년대 후반 이후 서로 다른 UNIX 사이의 호환성 및 이식성이 떨어지는 문제를 해결하기 위한 표준화를 시도함.

 - 현재는 특정 산업, 특히 금융, 항공, 통신처럼 안정성이 최우선인 기업용 시스템에서 즉, 특정 분야에서 많이 쓰임.

[ 리눅스(Linux) ]

 - 1991년 리누스 토발즈가 개발한 커널을 바탕으로 만들어진 운영체제이다. ( 커널은 운영체제의 핵심임 )

 - 자유 소프트웨어 및 오픈 소스 운영체제

 - 유사 유닉스(UNIX-like) 운영체제

 - 원래 인텔 x86(CPU) 기반 PC를 위해 개발이 되었으나, 이후 다양한 서버급 컴퓨터에서도 사용될 수 있도록 이식되고 있음.

 - 슬렉웨어, 레드햇, 데비안, 우분투, 페도라 등 다양한 배포판으로 개발되어 사용이 되고 있음.

[ macOS ]

 - 애플이 매킨토시용으로 개발한 운영체제이다.

 - 초기의 Mac OS : 1984년 개발된 애플 고유의 완전한 GUI 운영체제

 - 2001년에 UNIX를 바탕(BSD)으로 개발된 Mac OS X 출시

 - Mac OS X 10.0 Cheetah(2001)

 - OS X 10.8 Mountauin Lion(2012)

 - macOS 10.12 Sierra(2016)

 - macOS 15 Sequoia(2024)

 

(5) 시스템 소프트웨어 - 언어 번역기

 - 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 실행할 수 있는 기계어 코드로 변환하는 프로그램

 - 컴퓨터 내부의 응용프로그램을 만들기 위해 만든것이 프로그래밍 언어이다.

 - 해당 언어는 사람이 읽기 좋은 언어로 만들어져 있다. 하지만, 컴퓨터는 사람이 읽는 언어를 못알아본다.

 - 기계어(2진수)로 동작하는 컴퓨터는 사람이 사용하는 언어를 이해할 수 없기에 언어 번역기가 필요하다.

[1] 컴파일러

 - 원시 프로그램 전체를 기계어 명령으로 구성된 목적 프로그램으로 번역해주는 역할을 한다.

 - 인터프리터 방식에 비해 프로그램이 빠르게 실행이 된다.

 - 쉽게말해, 프로그램 전체를 번역해서 실행을 한다고 생각하면 된다.

[2] 인터프리터

 - 프로그램의 문장 단위로 명령을 해석하여 실행하며, 프로그램 번역을 기다리지 않고 즉시 실행할 수 있음.

 - 쉽게말해, 컴파일러는 전체를 번역해서 실행하지만 컴파일러는 하나씩 해석 실행을 함.

 - 반복되는 부분이 있다면, 컴파일러 방식은 이미 컴파일 되어있기 때문에 반복이 빠름

 - 반변, 인터프리터는 반복되는 부분 또한 해석하고 실행하고를 반복하기 때문에 느림

 

(4) 시스템 소프트웨어 - 유틸리티 소프트웨어

 - 프로그램을 작성하거나 컴퓨터를 운영하는데 도움이 될 수 있도록 제공되는 프로그램을 의미한다.

 - 파일 관리 유틸리티, 텍스트 에디터, 백업 소프트웨어, 디버깅 유틸리티, 디스크 관리 유틸리티 등이 있음.

 - 쉽게 말해, 하드웨어에 접근하며 연관이 큰 것은 시스템 소프트웨어라고 할 수 있고, 그 중 하나는 유틸리티이다.

 - 응용소프트웨어랑 헷갈릴 수 있지만, 엄연히 응용 소프트웨어는 운영체제를 거치기 때문에 다름.

 

(5) 응용 소프트웨어

[1] 응용 소프트웨어란?

 - 컴퓨터 사용자들이 특정 분야의 응용을 목적으로 사용할 수 있도록 개발되는 프로그램을 의미한다.

[2] 응용 소프트웨어의 분류

[ 사용자 프로그램 ]

 - 컴퓨터의 개별 사용자나 기업, 기관의 정보화 조직에서 그들의 필요에 따라 응용 목적을 달성하기 위해 만든 프로그램

 - 조직 또는 사용자에 맞게 특정 프로그램을 외주로 맡기거나 직접 만들 수 있다.

[ 응용 패키지 프로그램 ]

 - 표준화되고 특성화된 프로젝트에 대해서 사용자들이 쉽게 활용하도록 소프트웨어 개발 회사에서 제작된 프로그램을 의미한다.

 - 워드, 아래 한글, PPT 등 문서 편집기가 대표적인 예시이다.

[3] 응용 소프트웨어의 예시

[ 워드프로세서 ]

 - 마이크로소프트의 MS워드, 한글과 컴퓨터의 한글, 애플의 Pages 등이 있음.

[ 스프레드시트 ]

 - 마이크로소프트의 Excel, 애플의 Numbers 등이 있음.

[ 멀티미디어 소프트웨어 ]

 - 이미지 생성 및 편집 : 어도비 일러스트, 포토샵 등

 - 동영상 편집 : Windows의 비디오 편집기, 애플의 iMovie, 어도비 프리미엄 프로

 - 음악 편집 및 믹싱 : Goldwave, Sound Forge, 어도비 Audition 등

 


2. 소프트웨어의 개발

(1) 프로그래밍 언어

[1] 저급언어

[ 기계어 ]

 - 제1세대 프로그래밍 언어(First-Generation programming Languages - 1GL) - 기계중심의 언어

 - 컴퓨터가 직접 이해하고 실행할 수 있는 2진 코드 형태의 언어를 의미한다.

 - 2진수 기계어라 0과 1밖에 없어서 사람이 알아보기 매우 힘들었음. 그래서 나온것이 어셈블리어이다.

[ 어셈블리어 ]

 - 제2세대 프로그래밍 언어(2GL) - 기계중심의 언어

 - 기계어 명령을 알기 쉬운 기호로 표현을 함.

 - 밑의 사진은 16이라는 값을 AX위치의 값에 ADD 더해라 라는 의미임.

 - 기계 코드에 결국 단어를 붙혀놓은 것이기 때문에 기계중심의 언어인 저급언어에 포함이 됨.

 - CPU마다 명령어 체계가 다르기 떄문에 어셈블리어는 CPU마다 프로그래밍을 해줘야 한다.

[2] 고급언어

 - 제3세대 프로그래밍 언어(3GL) - 문제 중심의 언어

 - 사람에세 친숙한 문장 구조나 수식 표현을 사용을 한다.

 - 문제 해결 방식에 따라 다양한 패러다임이 존재한다.

 - 절차적 언어 : Fortran, Cobol, Pascal, C언어 등

 - 객체지향 언어 : C++, Java, C#, Objective-C, Swift 등

[3] 제4세대 프로그래밍 언어(4GL)

 - 기존 순차적 고급언어에 비해 보다 높은 수준의 기능을 제공함으로써 프로그래밍 노력이나 시간을 줄이기 위한 언어이다.

 - 데이터베이스의 검색, 리포트 생성, 데이터 조작 및 분석 등을 위한 언어 등1. 소프트웨어의 종류

[4] 프로그래밍 언어의 추상화 단계

[5] 제5세대 언어(5GL) - 잊혀진 존재임..

 - 1980년대에 인공지능의 구현이나 전문가 시스템을 만들기 위한 목적으로 개발된 프로그래밍 언어이다.

 - 주어진 문제에 대해 제공된 규칙, 제약사항 등을 이용하여 문제를 해결하는 방식의 언어이다.

 - 함수형 언어, 논리형 언어 등의 선언형 언어 등

 - LISP, Prolog, OPS5등

 - 실용적 응용에서 기대에 부응할 만한 결과를 만들어 내는데 실패했음.

 

(2) 알고리즘

[1] 프로그램이란?

 - 원하는 결과를 얻을 수 있도록 컴퓨터에게 일련의 일을 시키는 명령어의 집합체이다.

 - 필요로 하는 업무를 처리할 수 있도록 알고리즘을 설계하고, 프로그래밍 구현을 한다.

[2] 알고리즘이란?

 - 주어진 문제를 해결하기 위하여 유한한 개수의 잘 정의된 명령으로 표현된 처리 절차를 의미한다.

[3] 알고리즘의 표현

 - 필요한 처리를 하기 위한 프로그램을 작성하기 위해 먼저 알고리즘을 구성해야 함.

 - 알고리즘을 명확하게 나타내기 위한 표현 방법이 필요함. ( 순서도(flow chart) 또는 의사코드 등 )

 

(3) 소프트웨어 개발 방법론

 - 소프트웨어 개발 계획과 관리를 잘 하기 위한 목적으로 개발 업무를 구분된 활동 단계로 나누어 조직화한 것을 의미함.

 - 폭포수 모델, 애자일 모델, 반복 진화형 모델, 점증적 모델 등이 있다.

 


3. 소프트웨어의 사용권

(1) 소프트웨어의 사용권이란?

 - 소프트웨어의 사용이나 배포, 수정 등과 관련하여 허용된 법적인 권한을 정한 것

 - 사용자는 소프트웨어를 구매하거나 취득하는 과정에서 최종사용자 사용권 동의서(EULA)를 확인하고 동의함으로써 사용 권한을 갖음.

 

(2) 소프트웨어의 사용권의 유형

[1] 사유 소프트웨어(properietary software)

 - 저작권 소유자가 허가한 법적 권한의 범위에서 사용할 수 있는 컴퓨터 소프트웨어이다.

 - 소프트웨어를 분석 및 수정, 공유하는 행위를 제한함.

 - 판매를 목적으로 제작된 상용 소프트웨어의 경우 이에 상응하는 비용을 소프트웨어의 소유자에게 지불해야 함.

[2] 셰어웨어(shareware)

 - 판매를 위해 제작된 사유 소프트웨어지만,

 - 사용자에게 일정 기간 또는 정품에 비해 제한된 기능만을 사용할 수 있도록 무료로 제공되는 소프트웨어이다.

[3] 프리웨어(freeware, 공개판)

 - 사용권에 대한 비용이 없이 사용할 수 있도록 허용된 소프트웨어이다.

 - 사용권은 개인이나 기관, 기업에 다르게 적용될 수 있음.

 - 개인에게 무료로 제공되는 프리웨어를 직장의 컴퓨터에 설치하여 사용할 경우 저작권 침해가 될 수 있다는 의미임.

 

(3) 자유 소프트웨어 운동

 - 소프트웨어의 자요로운 활용을 장려해야 한다는 움직임( 즉, 운동을 의미함. )
 - 1983년 MIT의 리처드 스톨먼이 주도한 GNU("그뉴") 프로젝트

 - 사용자가 소프트웨어를 사용하고 공유(복제, 배포)하며 분석하고 수정할 수 있는 자유를 누리게 할 것을 주장함.

 - 1985년 자유 소프트웨어 재단(Free Software Foundation)을 설립함.

 - 소프트웨어 공유를 위해 핵심적인 부분인 운영체제 및 관련 유틸리티 소프트웨어가 필요함을 느낌

 - GNU 시스템이라고 부르는 유닉스(Unix)와 호환되는 소프트웨어 시스템 개발 ( 리눅스 )

 - 리눅스(Linux) : GNU 시스템의 해심이 되는 운영체제 커널

 - GNU GPL(일반 공증 사용권)을 따름

[1] GNU GPL의 자유

 - 다음의 네 가지 자유를 바탕으로 소프트웨어 사용의 제한을 받지 않게 함.

 - 1. 프로그램을 어떠한 목적으로든 사용할 수 있는 자유

 - 2. 프로그램의 소스 코드를 분석하고 수정할 수 있는 자유

 - 3 .소프트웨어를 타인에게 재배포할 수 있는 자유

 - 4. 사용자가 수정한 소프트웨어를 배포할 수 있는 자

[2] 자유 소프트웨어 사용권

 - GNU GPL

 - BSD 사용권

 - 모질라 공용 사용권

 - MIT 사용권

 - 아파치(Apache) 사용

 


4. 기업활동과 정보 시스템의 발전

(1) 경영정보 시스템(MIS)

 - 기업 경영에 관한 정보를 제공해 주는 컴퓨터 시스템

 - 초기에는 단순 전산처리 중심이었다가, 기업 경영에 도움을 주는 정보 제공을 해주는 기능을 추가함.

[1] 경영 정보 시스템의 범주

 - 거래처리 시스템(TPS)

 - 의사결정지원 시스템(DSS)

 - 전사적 자원관리(ERP)

 - 고객관계 관리(CRM)

 - 공급망 관리(SCM)

'방송통신대학교 > ⚙️컴퓨터의 이해' 카테고리의 다른 글

컴퓨터의 이해 8강 - 정보통신기술과 우리 사회  (0) 2025.04.25
컴퓨터의 이해 7강 - 데이터베이스  (0) 2025.04.24
컴퓨터의 이해 5강 - 보조기억장치와 데이터 저장  (0) 2025.04.15
컴퓨터의 이해 4강 - 컴퓨터의 입출력  (0) 2025.03.07
컴퓨터의 이해 3강 - 처리장치와 데이터 처리  (0) 2025.03.05
'방송통신대학교/⚙️컴퓨터의 이해' 카테고리의 다른 글
  • 컴퓨터의 이해 8강 - 정보통신기술과 우리 사회
  • 컴퓨터의 이해 7강 - 데이터베이스
  • 컴퓨터의 이해 5강 - 보조기억장치와 데이터 저장
  • 컴퓨터의 이해 4강 - 컴퓨터의 입출력
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    오늘
    어제
    • 전체보기 (233)
      • 방송통신대학교 (87)
        • ⚙️컴퓨터의 이해 (11)
        • 💻컴퓨터과학 개론 (15)
        • 🔢자료구조 (14)
        • 🧬알고리즘 (10)
        • ⚙️운영체제 (14)
        • 🕸️이산수학 (11)
        • 🌍유비쿼터스 컴퓨팅 (11)
        • 🖥️컴퓨터과학과 (1)
      • 공부 (72)
        • 📚백엔드 공부 (6)
        • ☕Java (23)
        • 🌳Spring (13)
        • ⚙️C (12)
        • ⚡Python (15)
        • JavaScript (1)
        • 🛢️Database (0)
        • Algorithm Problem Solving (2)
      • 네트워크 (7)
        • 📜HTTP (7)
      • 스파르타코딩클럽 (64)
      • 정보 (2)
      • 정리가 필요한 글 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    방송대
    운영체제
    컴퓨터과학과
    방송통신대학교
    이산수학
    컴퓨터의 이해
    Java
    컴퓨터과학 개론
    자료구조
    자바
    Python
    C언어
    방통대
    함수
    파이썬
    그래프
    알고리즘
    배열
    유비쿼터스
    spring
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
junbin2
컴퓨터의 이해 6강 - 소프트웨어와 정보 시스템
상단으로

티스토리툴바