Computer Science Illuminated

Computer Science Illuminated

2010년 9월 26일 일요일

과제 02. IBM의 역사

IBM

          이번 단원에서는 제가 다름이 아닌 IBM에 대해서 조사를 하였습니다. IBM이 어떻게 2단원에서 나오는 2진법이랑 관련이 돼있는지 궁금해 하실지도 모르겠지만 제 생각에 IBM이 생산하는 컴퓨터와 같은 생산품들은 전부 2진법과 관련이 있다고 생각합니다. 즉, 컴퓨터에서 사용하는 2진법이 IBM의 기본 토대이기 때문에 2단원에서는 IBM의 역사에 대해서 설명해 보도록 하겠습니다.

             IBM은 1896년에 TMC(Tabulating Machine Company)에서 시작했습니다. TMC는 Herman Hollerith(당시 미국 국세청 통계학자)가 설립한 회사로 세무 데이터를 수집하고 도표화하는 자동화 시스템 판매로 사업을 시작했습니다. 이 자동화 시스템으로 한마디로 ‘대박’을 친 Herman Hollerith는 회사의 이름을 CTR(Calculating Tabulating Recording)으로 바꾸고 결국 1924년에 IBM(International Business Machine)으로 최종 변경을 합니다.

             여기서 흥미로운 점은 IBM이 한국 전쟁 이후로 컴퓨터 시장을 장악했다는 점입니다. 당시, 한국 전쟁에서는 군사용으로 개발된 Defense Calculator를 IBM이 1953년 IMB 701이라는 이름으로 최초로 컴퓨터를 판매하기 시작합니다. 이후로 IBM 700 시리즈(702, 704, 705, 709)가 인기를 끌면서 IBM은 전세계 컴퓨터 시장을 선점하기 시작했습니다. 당시, 컴퓨터는 대기업 혹은 연구소만을 위한 것이었습니다. 이때, IBM에서 1954년에 최초의 대량 생산 컴퓨터인 IBM 650을 출시했고, 출시한지 1년도 안돼서 450대가 팔렸습니다. 이후에도 IBM은 세계 최초의 하드디스크, 최초의 실용적 고급 프로그래밍 언어, 데이터베이스 프로그래밍 언어, SQL(Structured Query Language)를 개발하는 등, 컴퓨터 업계에서 기술적인 혁신을 주도해갔습니다. 하지만, 주목해야 할만한 점은 다름이 아닌 하드디스크의 발명 이후입니다. 하드디스크의 발명 이전까지는 모든 데이터는 테이프 위에 ‘일직선으로 늘어놓아야’ 했기 때문에, 이처럼 저장된 데이터를 분류, 구조화, 검색할 수 있는 기능을 하게 된 것은 정보를 컴퓨터로 인해 쉽게 나눠지고, 세분화되고, 추려지고, 합쳐져서 다양한 목적에 쓰여지기 시작합니다. 이후로, 컴퓨터는 ‘정보화 시대’에 들어서기 시작합니다.

            이 후에 관계형 데이터베이스라는 중요한 개념이 등장합니다. 이는 1970년에 IBM의 연구원이 쓴 논문에 나오는 내용입니다. 그는 논문에서 코드는 원하는 데이터를 보다 효율적으로 찾기 위해서는 사용자 스스로 질문을 통해서 원하는 데이터를 찾을 수 있어야 된다고 주장했습니다. 그로 인해 오늘날 관계형 데이터베이스라고 알려진 프로그래밍 모델이 당시 SQL(Structured Query Language)로 탄생했습니다. 하지만, 1979년 Oracle Corporation에 의해 처음 상업화, ‘대박’을 쳤습니다. 이뿐만이 아니라, 1964년에 IBM은 온라인 전자상거래 시스템을 구축했습니다. 이는 American Airlines 항공사를 위해 제작된 시스템으로서, 미국 65개 도시에 2000여개의 터미널을 전화선으로 연결하고 IBM 7090 메인 프레임이 중앙에서 데이터를 관리해 모든 항공기 예약을 3초안에 처리할 수 있는 것이었습니다.

            이와 같이 IBM은 컴퓨터 시장에서 전술로 선택한 것은 다름이 아닌 표준화였습니다. IBM은 기술적으로 경쟁자들을 압도하려 드는 것 보다는 막강한 시장 장악력과 대량 생산 체제를 이용해 컴퓨터 시장의 표준을 유지하며 확고한 수익을 벌여 들였습니다. 또한, IBM은 장기적인 마케팅을 계산에 두고 호환성을 두어서 늦게 출시되었던 제품들도 이전의 제품에서 호환이 되도록 하였습니다.



주석
http://blog.naver.com/huschke1?Redirect=Log&logNo=10024599435
http://blog.paran.com/activman/35393047
http://blog.naver.com/san008?Redirect=Log&logNo=40013797727

2010년 9월 15일 수요일

박경락의 블로그: 과제 01. HTML의 역사

박경락의 블로그: 과제 01. HTML의 역사: "일단 HTML이란 개념을 설명하기 전에 먼저 설명을 하기 전에 인터넷의 개념에 대해 간단히 설명을 해야겠다.물론, 사람들이 인터넷이라고 하면 무엇인지 대충 내용을 알겠지만 사전적인 의미를 안다고 해서 나쁠 거는 없지 않을까?처음에 인터넷은 1969년 ..."

박경락의 블로그: 과제 00. 단원과 컴퓨터교육과 교육과정 사이에 연관성 찾기

박경락의 블로그: 과제 00. 단원과 컴퓨터교육과 교육과정 사이에 연관성 찾기: "/*처음 이 과목과 이 교제는 컴퓨터에만 집중해오던 저에게는 지루할 수도 있겠다는 생각을 심어 주었습니다. 하지만, 책 안에 있는 단원들을 얕게나마 읽고 이해를 하면서 이 수업을 들으면서 컴퓨터에 대한 전반적인 지식을 쌓을 수 있다는 생각에 이 수업..."

과제 01. HTML의 역사

일단 HTML이란 개념을 설명하기 전에 먼저 설명을 하기 전에 인터넷의 개념에 대해 간단히 설명을 해야겠다.
물론, 사람들이 인터넷이라고 하면 무엇인지 대충 내용을 알겠지만 사전적인 의미를 안다고 해서 나쁠 거는 없지 않을까?
처음에 인터넷은 1969년 미국 국방성의 지원으로 4개 대학을 연결하기 위해 구축한 ARPANET이 시작이다.
물론, 그 당시에는 지금처럼 사람들이 자유롭게 정보 공유나, 다양한 활동을 하기 보다는 군사적인 목적으로 구축되어 있었다.
이러한 상황들이 점차 시간이 지나면서 우리와 같이 평범 인들을 위한 인터넷 망과 군사적인 용도로 쓰이는 인터넷 망으로 나뉘어 졌다.

이러한 가운데 1969년 미국 국립과학재단(NSF)에서도 미국 내의 5개 슈퍼 컴퓨터 센터에 접속하기 위해 TCP/IP를 이용해서 NSFNET이라는 통신망을 구축하고 운영하게 되는데 이것이 1987년에기존의 알파넷을 대신하게 된다.
하지만 NSFNER은 그 목적을 교육과 연구용으로만 제한하였기 때문에 광고나 매매를 이용하려는 사업자 요구에 맞지 않았다.
그래서 인터넷 사업자가 1992CIX(Commercial Internet Exchange)라는 새로운 네트워크를 구축하여 최초로 상용 인터넷을 시작하게 되었다.

위에서와 같이 글을 인터넷이 어떻게 현대 사회에 까지 변하게 되었는지에 대해서 알아보았다.
여기서 중요한 점은 HTML이 어떻게 인터넷과 연관이 되어있는지에 관한 내용이 아닐까 하고 생각한다.
HTML과 인터넷 사이의 연관성을 말하자면 HTML로 인해서 우리가 지금 쓰고 있는 인터넷 홈페이지와 같은 것들을 만들 수 있다는 것이다.

HTML 예를 들어보자면,
<!doctype html>
<html>
  <head>
    <title>Hello HTML</title>
  </head>
  <body>
    <p>Hello World!</p>
  </body>
</html>

이런식으로 HTML을 쓰인다.  참고로 위에 있는 것은 HTML 5이다.



HTML에 대해서 조금 더 구체적인 내용을 말하자면 HTML은 하이퍼텍스트 마크업 언어(HyperText Markup Language, 문화어: 초본문표식달기언어, 하이퍼본문표식달기언어)라는 의미의 웹 페이지를 위한 지배적인 마크업 언어다. HTML은 제목, 단락, 목록 등과 같은 본문을 위한 구조적 의미를 나타내는 것뿐만 아니라 링크, 인용과 그 밖의 항목으로 구조적 문서를 만들 수 있는 방법을 제공한다. 그리고 이미지와 객체를 내장하고 대화형 양식을 생성하는 데 사용될 수 있다. HTML은 웹 페이지 콘텐츠 안의 꺾쇠 괄호에 둘러싸인 "태그"로 되어있는 HTML 요소 형태로 작성한다. HTML은 웹 브라우저와 같은 HTML 처리 장치의 행동에 영향을 주는 자바스크립트와 본문과 그 밖의 항목의 외관과 배치를 정의하는 CSS 같은 스크립트를 포함하거나 불러올 수 있다. HTML CSS 표준의 공동 책임자인 W3C는 명확하고 표상적인 마크업을 위하여 CSS의 사용을 권장한다.
또한, HTML의 역사와 시간이 지나면서 HTML의 버전의 변화에 대해서 설명을 해보도록 하겠다.

1995 11 24
HTML 2.0 IETF RFC 1866로 발표되었다. 추보의 RFC의 추가된 기능:
1995 11 25: RFC 1867 (양식 기반 파일 업로드)
1996 5: RFC 1942 (테이블)
1996 8: RFC 1980 (클라이언트 측 이미지맵)
1997 1: RFC 2070 (국제화)
2000 6, 이 모든 것들이 RFC 2854에 의하여 더 이상 쓰이지 않고 역사적인 것으로 선언됨.
1997 1
HTML 3.2 W3C 권고안으로 발표되었다. 이것은 1996 9월에 폐쇄한 HTML 작업 그룹인 IETF와 같이 W3C에 의하여 배타적으로 개발되고 표준화된 첫번재 버전이다.
HTML 3.2에서 여러 종류의 겹치는 확장 수학 수식을 완전히 제외 시키고 넷스케이프의 비주얼 마크업 태그의 대다수를 채택했다. 넷스케이프의 블링크 요소와 마이크로소프트의 마퀴 요소는 두 회사의 상호 협의 하에 누락시켰다. HTML에서 수학적 수식과 비슷한 마크업은 이후 MathML이 나올 때까지 14개월 동안 표준이 아니었다.
1997 12
HTML 4.0
W3C 권고안으로 출시되었다. HTML 4.0은 세 가지 문서 형태를 제공한다:
Strict(엄격): 사용이 중지된 요소를 금지한다.
Transitional(변이): 사용이 중지된 요소를 허용한다.
Frameset(프레임셋): 대부분 프레임 관련 요소에서만 허용한다.
처음에 코드네임 "쿠가"에서 HTML 4.0은 다양한 브라우저 특정 요소의 종류와 속성을 채택하였지만 동시에 스타일시트에 찬성하는 세력의 반대로 넷스케이프의 시각적 마크업 기능을 단계적으로 제거하기로 했다. HTML 4 ISO 8879 - SGML에 따른 SGML 응용 프로그래밍 언어다.
1998 4
HTML 4.0
이 버전이 증가되지 않고 조금 수정되어 재발표되었다.
1999 12
HTML 4.01[20]
W3C 권고안으로 출시되었다. HTML 4.0과 마찬가지로 세 가지 문서 형태를 제공한다. 그리고 2001 5 12일에 그것에 대한 최종 오류 수정 사항이 발표되었다.
2000 5
ISO/IEC 15445:2000
[22] ("ISO HTML", HTML 4.01 Strict 기반) ISO/IEC 국제 표준과 함께 출시되었다. ISO에서 이 표준안은 ISO/IEC JTC1/SC34 (ISO/IEC 공동 기술 위원회 1, 소위원회 34 - 문서 표현과 처리 언어)의 범위에서 떨어져 나왔다
2008년 중반, HTML 4.01 ISO/IEC 15445:2000 HTML의 대부분의 최근 버전이다. XML 기반 병렬 개발 언어인 XHTML을 통해 W3C HTML 작업 그룹은 2000년대 초중반에 성장하였다.
 HTML 초안 버전 스케줄
1991 10
HTML 태그[5]가 비공식적 CERN 문서에서 12개의 HTML 태그 목록이 대중에게 언급되었다.
1992 7
6단계 이후의 개정판과 함께 HTML DTD,의 첫 번째 비공식 초안
1992 11
HTML DTD 1.1 (1.0 대신에 1.1 RCS 체계를 기반으로 하는 첫 번째 버전 번호로 시작한다.), 비공식 초안
1993 6
하이퍼텍스트 마크업 언어는 인터넷 초안(표준에 대한 간략한 제안)과 함께IETFIIIR 작업 그룹에 의하여 발표되었다. 그것은 한 달 후 IETF에 의해 6가지 추가 초안을 더한 두 번째 버전으로 대체되었고 결국 HTML 2.0 RFC1866을 주도했다.
1993 11
HTML+가 인터넷 초안과 함께 IETF에 의하여 출시되었고, HTML 초안과의 경쟁을 제안하였다. 1994 5 HTML+는 만료되었다.
1995 4 (1995 3월에 저술)
HTML 3.0 IETF 표준안으로 제안되었지만 이 제안은 이후 5개월 동안 진전이 없어서 만료되었다. 여기에는 데이브 라겟의 HTML+ 제안의 표와 복잡한 수학적 수식을 표시를 지원하는 것과 같은 특성의 상당부분을 포함했다
W3C HTML3 CSS를 지원하는 시험하기 위하여 자체적으로 아레나 브라우저를 개발하기 시작했다. 하지만 HTML 3.0은 여러 이유로 성공하지 못했다.
2008 1
HTML 5 초안 작업은 W3C에 의해 발표되었다.
비록 문법은 SGML의 문법과 밀접하게 연관되어 있지만, HTML 5는 난해한 SGML 문법과 호환되지 않는다. 그리고 HTML 5 "html" 시리즈라고 명시적으로 정의되었다.

과제 00. 단원과 컴퓨터교육과 교육과정 사이에 연관성 찾기

/*처음 과목과 교제는 컴퓨터에만 집중해오던 저에게는 지루할 수도 있겠다는 생각을 심어 주었습니다.  하지만, 안에 있는 단원들을 얕게나마 읽고 이해를 하면서 수업을 들으면서 컴퓨터에 대한 전반적인 지식을 쌓을 있다는 생각에 수업이 더더욱 기대가 됩니다.*/


1.      The Big Picture
Big Picture라는 말대로 단원에서는 컴퓨터 과학에 대한 대략적인 내용을 배울 같습니다.  예를 들면, 프로그램이란 무엇인지 하드웨어는 무엇이고 운영체제 이런 것들을 대체적으로 그림을 그려줄 같습니다.  이와 같은 내용은 1학기에 C 프로그래밍에서 정재화 교수님과 유닉스 시간에 진성호 교수님이 대충 설명을 해주셨습니다.
2.      Binary Values and Number Systems
단원에서는 컴퓨터가 이용하는 이진법에 대해서 설명을 해줄 같습니다.  2진법이란 무엇인지, 우리가 평상시에 쓰는 10진법을 2진법으로 바꾸는 방법에 대해서 배울 같습니다.  이러한 주제들은 이미 C 프로그래밍에서 정재화 교수님과 배운바 있습니다.  따라서, 이번에는 조금 심화된 내용을 배우지 않을까 생각하고 있습니다.
3.      Data Representation
데이터에 관한 단원인 만큼 컴퓨터에서 데이터가 어떻게 표현 되는지, 데이터를 어떻게 성능이 좋게 만들지에 관한 단원인 같습니다.  데이터라고 하여서 그냥 문서와 같은 파일만이 아닌 우리가 평상시에 쓰는 음악 파일이라든지 동영상 파일에 관한 것도 배울 같아서 매우 흥미로울 단원 같습니다.  과목은 2학기때 전공 필수로 들어야 되는 데이터구조 실습에서 배울 같습니다.
4.      Gates and Circuits
단원에서는 컴퓨터와 컴퓨터에서 사용 하는 전기와 같은 데이터 전송시에 발생하는 과정 같은 것들을 배울 같습니다.  이러한 것은 2학년때 듣는 컴퓨터 구조에서 구체적으로 배울 같습니다. 
5.      Computing Components
단원의 제목과 같이 단원에서는 컴퓨터의 구조에 대해서 배울 같습니다.  예를 들면 컴퓨터에 어떠한 부품들이 있는지, 그리고 그러한 부품들이 어떠한 용도로 쓰이는 지에 관한 것을 배울 같습니다.  이것은 데이터구조 실습에서 배울 같습니다. 
6.      Low-Level Programming Languages and Pseudocode
여기서는 간단한 컴퓨터 용어에 대해서 배울 같습니다.  간단한 컴퓨터 용어와 실행에 필요한 용어 정도를 간단히 배울 같습니다.  이거는 간단한 내용이기 때문에 여러 가지 과목들을 얕게 배울 같습니다.  예를 들면, 알고리즘, 프로그래밍언어론(영강), C 언어, 등등을 얕게 배울 같습니다.
7.      Problem Solving and Algorithms
그대로 문제를 푸는 것과 알고리즘의 활용일거 같습니다.  단원에서 배운 언어를 이용하여 문제를 푸는 것과 그것을 응용하여 알고리즘에서 이용 하는 것입니다.  여기서는 2학년때 배울 알고리즘이 가장 많이 쓰일 같습니다. 
8.      Abstract Data Types and Subprograms
압축적인 데이터에 관한 내용이므로 파일 압축을 말하는 같습니다.  하지만, 따로 이거에 관한 내용을 다른 과목으로 배울 같지는 않고 수업인 컴퓨터과학개론에서 배울 같습니다.
9.      Object-Oriented Design and High-Level Programming Languages
단원에서는 단원에서 배운 낮은 프로그래밍 언어를 조금 고급스러운 방면으로 배울 같습니다.  또한, 언어를 어떠한 목적으로 쓸지에 대한 내용을 정확히 아는 것이 단원의 목적이라고 생각합니다.  이것은, 2학년때 배우는 프로그래밍 언어에서 배울 같습니다.
10.  Operating Systems
그대로 운영 체재에 대해서 배울 같습니다.  저희가 1학기에 유닉스라는 수업을 들으면서 윈도우랑은 다른 운영 체제를 이용하는 것도 배웠습니다.  하지만, 수업은 운영 체제가 어떻게 만들어져 있는지에 관한 것을 배울 같습니다.  물론, 3학년때 운영체제설계 계발이랑 관련 있는 같습니다. 
11.  File systems and Directories
단원에서는 파일이 어떻게 구성 되는지에 대해서 배울 같습니다.  또한, 파일을 어떻게 효과적으로 운영할지에 대해서도 배울 같습니다.  이러한 것은 2학년때 배우는 컴퓨터구조 조금 배울 같습니다.
12.  Information Systems
단원은 자료를 관리하는 시스템에 관해서 배우고 자료를 안전하게 지키는 것에 대해서 배우는 같습니다.  개인적으로 제가 매우 관심 있었던 배용이라서 흥미로울 같습니다.  이것은 소프트웨어공학에서 배울 같습니다.
13.  Artificial Intelligence
단원은 다름이 아닌 인공지능에 대해서 배울 같습니다.  인공지능이 어떻게 가능한지에 대해서 과정들을 배울 같습니다.  이것은 객체지향 수업에서 조금씩 배울 같습니다.
14.  Simulation, Graphics, Gaming, and Other Applications
어떠한 상황을 미리 돌려보는 시뮬레이션을 배울 같습니다.  개인적으로 평상시에 시뮬레이션에 관해서 매우 궁금해 하여서 매우 기대가 되는 단원이기도 합니다.  기후, 시뮬레이션에서 응용할 있는 컴퓨터 게임과 같은 것들을 배울 같습니다.  이것은 4학년때 배우는 게임프로그래밍에서 배울 같습니다.
15.  Networks
단원은 그래도 네트워크에 관해서 배울 같습니다.  네트워크에서 어떠한 것들이 사용되는지 주소, 프로토콜 등과 같이 평상시에 모르고 있었던 것들을 배울 같습니다.  단원은 나중에 있는 컴퓨터네트워크에서 배울 같습니다.
16.  The World Wide Web
요즘 인터넷에서 쓰이는 인터넷인 WWW 배울 같습니다.  또한, 인터넷 사용을 하면서 홈페이지를 만드는데 가장 필요한 HTML, Java 관해서 배울 같습니다.  이것은 지금 배우는 컴퓨터프로그래밍에서 배우는 Java 언어가 쓰일 같습니다.
17.  Limitations of Computing
이것은 컴퓨터로 제한된 부분을 알게 해주는 부분일거 같습니다.  컴퓨터로 많은 것이 표현 가능해도 어디까지나 한계점이 있다는 말입니다.  이것은 저희 컴퓨터교육과 교육과정에는 없지만 모든 수업에서 조금씩 들을 같습니다.