학습목표
제10장
컴퓨터 하드웨어와 소프트웨어
하드웨어와 소프트웨어의 발전 과정 및 종류에 대하여 설명한다.
하드웨어의 구성요소 및 운영원리를 파악한다.
소프트웨어의 발전 과정 및 종류에 대하여 설명한다.
클라우드 컴퓨팅의 발전 과정 및 종류에 대하여 설명한다.
프로그래밍 언어의 발전 과정을 설명한다.
목 차 _ 제10장
10-1 컴퓨터 하드웨어
10-2 소프트웨어와 프로그래밍 언어
10-3 차세대 컴퓨팅
정보 시스템 환경 (제도, 규정, 조직)
IT Provider
Applications Business Processes
경영목표 및 전략
User
DBMS System S/W Computer H/W
Network
주판 시대에서 디지털컴퓨터 시대로...동양권의 유일한 아날로그 계산기였던 주판
10-1 컴퓨터 하드웨어
컴퓨터 하드웨어의 발전 과정
초기의 계산 장치
– 최초 주판 → 1642년 파스칼의 톱니방식 계산기계 → 1690년 라이프니쯔의 계산 기 → 1822년 베비지의 차분기관(해석기관) → 19세기 후반 홀러리스의 기계
10-1 컴퓨터 하드웨어
컴퓨터 하드웨어의 발전 과정
<그림 10-3> 라이프니쯔의 계산기
<그림 10-7> 천공카드
세계 첫 디지털컴퓨터인 에니액 (ENIAC)
<그림 10-1> 주판 <그림 10-2> 최초의 기계식 계산기
초기의 컴퓨터
– 1942년 ABC → 1944년 MARK I → 1946년 ENIAC → 1946년 EDVAC → 1951년 UNIVAC I
– 1947년 벨 연구소에서 트랜지스터 개발로 ‘컴퓨팅의 제 2세대’ 개막
10-1 컴퓨터 하드웨어
컴퓨터 하드웨어의 발전 과정
<그림 10-8> ABC <그림 10-9> MARK Ⅰ <그림 10-10> ENIAC
마이크로컴퓨터의 개발
– 컴퓨터의 급격한 발전은 1970년대 마이크로컴퓨터의 개발 때문임
– 1971년 Intel 4004 마이크로 프로세서 칩 → 1974년 Intel 8080 마이크로 프로세 서 칩 출시
– 1975년 마이크로컴퓨터인 Altair 8800, IBM 5100 출시 – 1977년 잡스와 워즈니악, 애플 컴퓨터 사 설립
– 1982년 IBM은 PC(Personal Computer)의 단어로 개인용 컴퓨터 소개
10-1 컴퓨터 하드웨어
컴퓨터 하드웨어의 발전 과정
<그림 10-13> Intel 4004 <그림 10-14> Altair 8800 <그림 10-15> Apple Ⅱ
컴퓨터 하드웨어의 세대별 특징
– 1세대: 진공관 시스템(1951~1958)
• 데이터의 저장과 처리에 진공관을 사용함
• 기계어를 사용하여 작성하였기 때문에 규모가 크고, 속도가 느리며, 불안정함
– 2세대: 트랜지스터 시스템(1958~1964)
• 1세대 진공관이 트랜지스터로 대체되었음
• 크기가 작고, 사용이 쉽고 가격이 저렴함. 자기코어 형태의 자기테이 프, 종이카드가 사용됨
10-1 컴퓨터 하드웨어
컴퓨터 하드웨어의 발전 과정
컴퓨터 하드웨어의 세대별 특징 – 3세대: 직접회로(1964~1971)
• 실리콘 집에 광화학적 흠을 낸 트랜지스터들을 포함한 직접회로가 개발됨
• 빠른 속도 뿐만 아니라 기기의 소형화가 가능해 짐
• 디지털사의 PDP-1, IBM의 시스템/360 등 – 4세대: 초고밀도 직접회로(1971~현재)
• 고밀도 집적회로와 초고밀도 집적회로의 세대임
• 초고밀도 직접회로는 트랜지스터를 수집만 개에서 수백만 개 포함하고 있 는 칩임
10-1 컴퓨터 하드웨어
컴퓨터 하드웨어의 발전 과정
<그림 10-18> 집적회로 <그림 10-19> IBM System/360
컴퓨터 하드웨어의 세대별 특징 – 제5세대
• 제4대까지는 주로 하드웨어적인 발전만이 이어져 왔으나, 5세 대에는 상대적으로 소프트웨어의 비약적인 발전이 이루어짐
• 인간이 가지고 있는 생각을 컴퓨터에 적용하는 인공지능의 특 성을 갖게 될 것임
10-1 컴퓨터 하드웨어
컴퓨터 하드웨어의 발전 과정
<표 10-1> 하드웨어 세대
규모와 성능에 따른 분류
– 슈퍼컴퓨터: 초고속으로 복잡한 연산을 수행할 수 있는 능력을 가진 고성 능 컴퓨터
– 메인프레임 컴퓨터: 데이터 처리가 중앙 집중화되어 있으며, 대량 데이터 를 신속히 처리
– 서버컴퓨터: 어떠한 특화된 임무를 수행하기 위하여 설정된 컴퓨터 – 마이크로컴퓨터: 가장 작고, 가격이 저렴한 범주의 컴퓨터
– 그 외 데스크탑, 일체형 데스크탑, 이동식 컴퓨터, 태블릿 PC 등이 있음
10-1 컴퓨터 하드웨어
컴퓨터 하드웨어의 분류
<그림 10-21> 메인프레임 컴퓨터
10-1 컴퓨터 하드웨어
컴퓨터 하드웨어의 분류
IT기반구조의 활용추이
메인 프레임과 미니컴퓨터기반구조: 1960년대 초반~현재
독립적 개인 PC 기반구조: 1980년대 초반~현재
클라이언트-서버기반구조: 1980년대 중반~현재
인터넷중심의 기반구조: 1990년대 초반~현재
메인 프레임과 같은 오래된 기반 구조도 현재까지 사용되는 경우가 많이 있으며, 이를 래거시 시스템이라고 부른다.
• 메인 프레임
– 중앙 집중 처리
– 수백 개의 원격 터미널에 연결 후 공유 – 시분할 처리방식과 다중작업 방식이 필요 – 대기업, 은행 등에서 주로 이용
– 예: IBM 360 시리즈 (1965 년 출시)
• 미니 컴퓨터
– 중앙 집중 처리
– 수십 개의 원격 터미널에 연결 후 공유 – 가격이 비싸고 사용하기 어려운 메인 프레
임의 단점을 규모를 줄여서 보완 – 중소규모의 기업에서 주로 이용 – 예: DEC VAX, IBM AS/400
An HP Laptop’s Path to Market
10-1 컴퓨터 하드웨어
하드웨어의 구성요소 및 운영원리
하드웨어의 구성요소 및 운용원리
10-1 컴퓨터 하드웨어
하드웨어의 구성요소 및 운영원리
<그림 10-22> 컴퓨터시스템의 하드웨어 구성요소
중앙처리장치
– 컴퓨터의 두뇌라고 할 수 있으며 트랜지스터들이 내장된 실리콘칩으로 마이크로 프로세서라고 불림
– 가장 중요한 구성요소는 프로세서이며, 산술논리연산 장치, 제어 장치, 주기억장 치로 구성
10-1 컴퓨터 하드웨어
<그림 10-23> 중앙처리장치
하드웨어의 구성요소 및 운영원리
중앙처리장치 – 프로세서
• 산술연산을 수행하는 산술논리연산장치와 연산을 통제하는 제어장치 로 구성
• 2개 이상의 다중코어: 코어 개수만큼 실제 CPU를 장착한 것과 유사 한 성능
– 주기억장치: CPU를 위해 데이터와 프로그램을 저장함
– 램(RAM): 데이터를 읽고 쓰기 위한 주기억장치 또는 메모리를 의미함 – 롬(ROM): 데이터가 기록되고 나면 수정되거나 삭제될 수 없는 메모리를
의미함
10-1 컴퓨터 하드웨어
하드웨어의 구성요소 및 운영원리
10-1 컴퓨터 하드웨어
하드웨어의 구성요소 및 운영원리
무어의 법칙
– 마이크로칩 성능이 18개월마다 2배씩 증가
10-1 컴퓨터 하드웨어
하드웨어의 구성요소 및 운영원리
황의 법칙
– 반도체 메모리의 용량이 1년마다 2배씩 증가
10-1 컴퓨터 하드웨어
<그림 10-27> 플래터당 저장밀도 증가 추세
하드웨어의 구성요소 및 운영원리
보조기억장치 – 자기디스크
• 플로피 디스크(1.44MB), 하드디스크. 최근에는 USB 플래쉬 드라이브가 쓰임
• 전송방식: USB 3.0, Thunderbolt – 광디스크
• 광학저장기술이 집약된 디스크로 오염이나 성능 및 품질저하에 덜 민감함
• 첨단 광디스크는 블루레이 디스크로 25GB ~ 50GB의 대용량 저장 가능
• 종류: CD-ROM, CD-RW, DVD, HD-DVD, Blu-ray 등
10-1 컴퓨터 하드웨어
하드웨어의 구성요소 및 운영원리
입력장치
– 가장 대표적인 입력장치는 키보드이며, 입력방식에 따라 유형이 다양함
10-1 컴퓨터 하드웨어
<표 10-2> 대표적인 입력장치
하드웨어의 구성요소 및 운영원리
바코드 스캐너 POS
거래처리시스템 UPC
정보보고시스템 고객 영수증
예외보고서 UPC 가격
UPC 및 수량
품목, 수량, 날짜, 시간, 가격 수량,
날짜, 시간
POS(Point Of Sale) 거래처리시스템
품목 DB
매출 DB 재고
DB
<판매시점 터미널의 위치>
출력장치 – 모니터
• 입력과 출력을 동시에 확인할 수 있는 장치로 소프트카피의 형태로 보여줌
• 종류: 브라운관 기술의 CRT 모니터, 액정기술의 LCD 모니터 – 프린터
• 컴퓨터 출력물을 하드카프로 만들어내는데 사용됨
• 종류: 레이저 프린터, 열프린터, 잉크젯 프린터
• 레이저 프린터는 레이저빔이 닿은 부분에만 토너를 정착시키는 방식 임
• 열프린터는 감열지에 고열로 패턴을 만들어 태우는 방식임
• 잉크젯 프린터는 종이 위에 미세한 점을 분사하는 방식임
– 음성출력: 컴퓨터가 언어와 음성으로 출력데이터나 정보를 구사하는 것 을 의미함
10-1 컴퓨터 하드웨어
하드웨어의 구성요소 및 운영원리
10-2 소프트웨어와 프로그래밍 언어
소프트웨어
운영체제
– 운영체제는 CPU, 주변기기, 주기억장치, 보조기억장치 등의 컴퓨터 자원 을 관리하고 통제하는 프로그램의 집합을 의미
– 지금의 대부분 운영체제는 그래픽 유저 인터페이스(GUI)를 기반으로 함 – 대표적인 PC 운영체제로는 윈도우, OSX, UNIX, LINUX 등이 있음
10-2 소프트웨어와 프로그래밍 언어
시스템 소프트웨어
<표 10-3> 다양한 유형의 운영체제
• 윈도우즈임베디드 오토모티브 7
– 자동차용 인포테인먼트(infotainment) 운영체제(OS)
• 정의
– 임베디드(embedded)의 의미
• 사전적 의미: "~에 심어지다", "~에 파묻히다"
• 특정 장치나 기계에 '내장(內臟 )된다'는 의미
– 특정 장치나 기계 속에 내장되어 장치나 기계를 고성능으로 동작시키 기 위해 H/W와 S/W를 조합시킨 첨단 전자제어 시스템
기계식, 전자식 키 임베디드식(지문인식, 출입통제시스템)
임베디드 소프트웨어
2001년 세계 마이크로프로세서 생산량
47억3천만개중 97%가 컴퓨터 이외의
저전력화
고신뢰성
멀티미디어 지원
네트워크 지원 경량화 최적화
마이크로프로세서
스마트 서비스
멀티미디어 메세징
무선인터넷
무선 게임 VOD
LBS
M-커머스
임베디드 S/W 영상전화
임베디드 S/W
Embedded S/W makes things Smart !
시스템 유틸리티
– 컴퓨터 사용자, 연산, 관리 등을 지원하는 프로그램을 의미함
– 운영체제는 다양한 형태의 유틸리티를 포함하고 있으며 컴퓨터 활용을 위한 필 수적 기능
– 예) 디스크 오류 검사, 속도 최적화 유틸리티 – 언어처리기
• 프로그램 언어는 컴퓨터가 이해할 수 있는 기계어로 변환시켜 주는 과정이 필요함
• 이러한 역할을 하는 것이 언어처리기이며, 컴파일러나 번역기가 이에 해당 함
10-2 소프트웨어와 프로그래밍 언어
시스템 유틸리티
스프레드시트
– 전통적인 재무, 회계 연산 등과 같은 작업을 컴퓨터 모니터 상에서 자동화 시킴 – 각 좌표상의 셀에 숫자나 문자를 입력해 수리적 함수 및 공식을 통하여 계산 가
능
– 계산된 데이터를 선이나 막대그래프, 파이차트 같은 형태로 나타냄 – 예) Microsoft Excel, Apple Numbers 등
10-2 소프트웨어와 프로그래밍 언어
응용 소프트웨어
워드프로세서
– 문서 작성에 사용되며 글꼴의 모양, 색깔과 크기, 표, 그림까지 다양한 형 식의 문서 편집가능
– 그래픽, 이미지, 사운드, 동영상 포함 가능, HTML 편집 기능까지 추가됨 – 예) 한글, Microsoft Word, Apple iPage 등
10-2 소프트웨어와 프로그래밍 언어
응용 소프트웨어
데이터관리 소프트웨어
– 데이터관리시스템(Database Management System, DBMS)
• 데이터 관리 소프트웨어를 통하여 쉽게 데이터를 조작함으로 서 ,데이터관리의 효율성과 데이터 가공업무의 유연성을 확보 할 수 있음
• 예) Oracle, Infomix, Sybase, IBM DB2, Microsoft SQL Server, Microsoft Access 등
– 개인정보 관리시스템(Personal Information Management System, PIMS)
• 개인의 데이터를 효율적으로 관리하는데 사용되는 패키지
• 예) Organizer, Sidekick, Quicken, Microsoft Money 등
10-2 소프트웨어와 프로그래밍 언어
응용 소프트웨어
그래픽 소프트웨어
– 프리젠테이션 그래픽 소프트웨어
• 효과적인 회의나 발표를 목적으로 또는 워드프로세서나 스프레드시트에서 작 성할 수 없는 그림 등이 포함된 보고서 등을 작성하기 위한 목적으로 이용됨
• 예) Microsoft Powerpoint, Apple Keynote, Prezi 등 – 캐드 소프트웨어
• 생산제품의 설계에 주로 사용됨 – 캠 소프트웨어
• 생산장비를 제어하기 위하여 사용됨 – 컴퓨터 통합생산 소프트웨어
• 자동화 생산설비 및 기기에 내장됨 – 개인용 웹 그래픽 소프트웨어
• 예) Adobe Photoshop, Jasc Paintshop Pro, Microsoft Photo Editor – 동영상 파일의 제작과 편집 소프트웨어
10-2 소프트웨어와 프로그래밍 언어
응용 소프트웨어
통신 소프트웨어
– 원격지 간의 터미널 통신, 통t신장비와 통신회선의 감시, 통신망의 통신 량 관리, 통신체증의 분석, 통신문제의 진단 등 통신 관련 활동을 지위, 감독함
그룹웨어
– 협업활동을 지원하기 위한 기능과 서비스로 문서작성, 논평, 정보공유, 화상회의, 일정관리, 이메일 및 네트워크 기반의 협업 지원 소프트웨어 등을 포함함
서비스 지향 아키텍쳐(Service-Oriented architecture)
– 서비스 지향 개념을 기반으로 소프트웨어 시스템을 구축하고자 하는 노 력을 의미함
– 기업 프로세스와 애플리케이션을 ‘서비스’라는 단위로 구성하여 비즈니 스 환경의 변화를 반영하여 서비스의 연결 구성을 쉽고 빠르게 변화시켜 새로운 기능을 제공함
10-2 소프트웨어와 프로그래밍 언어
응용 소프트웨어
• 서비스지향 아키텍처(Service Oriented Architecture: SOA)
– 서비스란?
• 기업 비즈니스의 프로세스를 일정 단위의 서비스들로 분할
• 기능적인 의미를 지닌 소프트웨어 컴포넌트, 독립된 모듈
• 서비스 제공자는 서비스 명세를 통해 자신이 가진 서비스의 인터페이스를 공개
– 서비스가 제공하는 기능과 이를 이용하기 위해 사용자와 주고 받아야 하는 메시지의 형식 정의 – 하드웨어, 저장장치, 세부 구현 방식은 외부로 노출될 필요가 없음
• 네트워크상에서 서비스는 발견이 가능하고 동적으로 결합, 조립, 연동하여 대규모의 시 스템 전체를 이룸
– 여러 시스템에서 공유할 수 있는 공통의 서비스들을 추출하여 효율성 증대 – 급변하는 비즈니스 요구에 대하여 민첩하고 유연하고(agility) 효과적으로 대응
• 플랫폼에 독립적인 다양한 서비스를 상호 운영
• 웹 서비스를 활용
– 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프트 웨어 시스템
– 서비스 제공자가 웹 상에 자신의 서비스를 공개(출판)하고, 사용자로 하여금 쉽 게 이를 검색하고 사용할 수 있는 표준 (예, SOAP, UDDI) 제공
SOA예시
• 최근 기업의 전사적 관리 시스템 (ERP)은 서비스 지향 아키텍 처를 따르는 경우가 많다.
• 특히 인터넷 기술의 발전과 더불어 웹 서 비스의 활용이 활발 해 지면서, 이전에는 한 회사의 ERP 제품 을 패키지로 쓰던 형 태에서 벗어나, 서로 다른 회사의 개별 서 비스들이 서로 동적 으로 운영 될 수 있 다.
프로그래밍 언어의 발전과정
– 프로그래밍 언어의 진화단계에서 각 특징에 따라 서로 구분되는 개발 단 계를 세대라고 함
– 1세대, 2세대의 언어는 0과 1과 같은 코드 기록 형태이며, 3세대, 4세대 는 더 간결한 형태임
– 현재 자연어로 프로그램을 작성한 뒤, 기계어로 번역되어 사용됨
10-2 소프트웨어와 프로그래밍 언어
프로그래밍 언어
<표 10-4> 프로그래밍 언어의 진화과정
프로그래밍 언어의 발전과정
10-2 소프트웨어와 프로그래밍 언어
프로그래밍 언어
<표 10-5> ‘변수 y에 2와 5를 더한 값을 할당하기’의 언어세대별 표현
객체지향 프로그램 언어
– 객체를 표준화시킴으로써, 하나의 큰 프로그램을 객체로 구성된 프로그램으로 만 듦
– 모듈개념이 적용되며 소프트웨어가 간단하고 신속하게 조립되는 것을 가능하게 함
– 또한 객체지향 프로그래밍은 코드의 재사용성을 지향하여 많은 시간과 비용을 절 약시킴
– 예) C++, Visual Basic 등
10-2 소프트웨어와 프로그래밍 언어
프로그래밍 언어
<표 10-7> 고급프로그래밍 언어의 장점과 단점
웹을 위한 프로그래밍 언어 – JAVA
• 객체지향언어로 C, C++과 매우 유사하며, 인터넷과 같은 네트워크 환경에서 유용함
– HTML(Hypertext Markup Language)
• 웹페이지를 만들 때 사용되는 언어로써 문자나 그래픽, 비디오, 사운 드 등을 웹페이지에 나타내는 방법을 정의함
• 웹페이지 상의 객체들을 다른 웹페이지 객체와 연결시키는 기능을 함 – XML(eXtensible Markup Language)
• 데이터에 의한 표현, 처리, 저장 등 각 데이터를 사용자의 편의에 맞 도록 정리하여 줌
10-2 소프트웨어와 프로그래밍 언어
프로그래밍 언어
Steve Jobs and Wozniak
• 1976, Apple I, $ 666.66
– 쉬운 프로그람 언어 BASIC 사용
– 200개 생산
Apple Introduces the First Low
Cost Microcomputer System
with a Video Terminal and 8K
Bytes of RAM on a Single PC
Card.
Grid Computing
– 인터넷 상의 분산된 시스템 자원들을 공유하여 가상의 슈퍼 컴퓨팅과 같 이 사용하는 방식
Utility Computing
– 컴퓨팅 리소스를 구매하지 않고 전기등과 같이 유틸리티로 필요할 때마 다 사용하는 방식
Server Based Computing
– 서버에 애플리케이션과 데이터를 두고 필요할 때마다 접속해서 사용하는 방식
Network Computing
– 애플리케이션을 서버에 로드하여 로컬에서 수행하는 형태
Cloud Computing
– 언제 어디서나 편하게 컴퓨팅 자원들에 대한 네트워크 접근이 가능한 형 태의 시스템