하드웨어란 : 직접 보고 조작할 수 있는 기기나 장비컴퓨터 장치의 시작은 천문 계산 계산장치 같은 계산기로 시작계산을 손수 하기 싫은 사람들의 결과이후 기계장치가 전자장비로 대체되면서 점차 우리가 아는 컴퓨터의 모습을 보임.컴퓨터의 하드웨어 : 논리적 구성(자동차는 바
프로세서, 명령어와 데이터를 담는 네모리와 저장장치, 입출력 장치로 이루어진 기본 컴퓨터 구조프로세서 = CPU 중앙 처리 장치컴퓨터의 두뇌에 해당, 초당 수십억 회 연산함2.2GHz 듀얼 코어 인텔 corei7인텔 : 제조사 이름corei7 : 제품 이름듀얼코어 :
주 기억 장치는 휘발성을 띤다. 즉 전원이 꺼지면 내용이 사라진다. 그래서 우리는 보조기억 장치를 가지고 있다.HDD (Hard disk drive), SSD(solid state drive)라고 한다. 두 드라이브 모두 메모리보다 많은 정보를 저장하고, 휘발성을 띠지
컴퓨터의 전자 회로는 기몇가지 기본소자가 매우 많이 모여 만들어진다. 가장 중요한 것으로는 논리게이트를 들 수 있다.논리게이트는 한개나 두개의 입력값을 바탕으로 단일 출력값을 계산해낸다. 또 전압이나 전류같은 입력 신호를 이용해 전압이나 전류인 출력 신호를 제어한다.
업로드중..무어의 법칙은 기술이 향상되면서 컴퓨팅 성능도 향상된다고 이야기한다. 기술 향상 -> 더 많은 트랜지스터 -> 더 좋은 컴퓨팅 성능 -> 반복2년마다 2배 이므로 20년이면 1,000 배 증가하는 셈이다. 근데 이게 실제로 60년동안 진행됐다.1965년에 비
요약 컴퓨터 하드웨어는 모든 종류에 있어 기하 급수적으로 작아지고, 저렴해지고, 성능이 좋아졌다(무어의 법칙) 이 변화는 디지털 혁명의 주 원인이다. 성능과 용량의 증가는 컴퓨터의 용도도 바꾸게 됐다. 탄도 계산, 무기 설계에서 현재의 오락 목적의 컴퓨터 컴퓨터의
연속과 불연속 컴퓨터는 세가지 개념을 바탕으로 정보를 표현한다. 컴퓨터는 디지털 처리장치다. 불연속적인 덩어리를 입력받고, 불연속적인 값을 갖는 정보를 저장하고 처리한다. 반대로 아날로그 정보는 연속적으로 변하는 값을 뜻한다. 컴퓨터는 정보를 비트로 표현한다. 비트는
최초의 SF 영화: 달세계 여행 (1902) 아날로그 정보를 디지털 형태로 변환하는 부분을 더 자세히 이야기해야할 필요가 있다. 여기선 사진과 음악을 예시로 든다.필름 카메라는 필름 화학물질에 다른 빛을 노출시키고 인화한다. 디지털 카메라는 렌즈가 적녹청 필터 위에 놓
디지털 세계에는 모든 것이 이진수 , 0과 1로 이루어져 있다. 비트는 이진 숫자라는 bineary digit을 축약한 것이다. 이진이라는 뜻은 두 개의 값을 가졌고(bi 부분) 이는 비트도 같다. 둘 중 하나의 값을 선택하는 정보면 1비트면 충분하다. 꺼짐-켜짐, 참
이렇게 비트를 모으면 어떤 수든 나타낼 수 있다.우리가 일상적으로 사용하는 십진법과는 다르지만, 원리는 10진법은 10이되면 다음자리, 이진법은 2가되면 다음자리로 넘어가는 것이다.연산은??연산도 마찬가지다 십진 연산 컴퓨터보다 간단하다.모든 최신 컴퓨터에서 데이터 처
폰 노이만의 컴퓨터벅스, 골드스타인 폰 노이만의 논문에서 : 기계는 특성상 완전히 자동이 되어야 한다. 즉, 계산이 시작된 후에는 완전히 자동이 되어야 한다. 즉, 계산이 시작된 후에는 운영자에 독립적이어야 한다.물리적인 장치를 만들 때 켜짐과 꺼짐이라는 두가지 상태(
(Wembley Kids Computer Toy Baby Laptops for Kids 1 2 3-6 Years Activity Electronics Number)물리적으로 존재하지 않는 컴퓨터가 프로세서를 통해서 어떻게 작동하는지 알아보자. 시뮬레이션 속의 모형 컴퓨
앞서 본 간단한 프로세서를 통해서 초기 컴퓨터의 모습을 볼 수 있었다. 하지만 오늘낭의 프로세서는 훨씬 복잡하다. 기본 명령어의 유형은 같지만, 훨씬 더 많은 명령어를 통해서 데이터를 옮기고 산술 연산을 수행하거나 비교, 분기, 다른 부분을 제어한다. 누산기의 경우에도
캐싱은 컴퓨팅 외에도 여러 분야게 폭넓게 적용 가능한 아이디어다. 프로세서에서 캐시는 용량이 작고 속도가 빠른 메모리로, 용량이 크지만 훨씬 느린 주 기억 장치에 매번 접근하는 것을 피하고자 최근데 사용된 정보를 저장하는 데 사용된다. 일반적인 프로세서에는 캐시가 2-
컴퓨터하면 우리는 데스크탑이나 노트북을 떠올리겠지만 그밖에도 크고 작은 컴퓨터가 있으며 이러한 컴퓨터는 모두 같은 논리적 구조, 비슷한 아키텍처를 가지고 있다.차이점은 가격, 소모전력, 크기, 속도 면에서 필요에 따라 다른 트레이드오프를 보인다. 그 면에서는 슈퍼 컴퓨
요약 컴퓨터는 범용 기계이며 메모미에서 명령어를 가져오고, 사용자는 메모리에 다른 명령어를 넣음으로써 컴퓨터가 수행하는 계산을 바꿀 수 있다. 명령어와 데이터는 맥락에 따라서만 구별할 수 있다. 즉, 어떤 이의 명령어는 다른이의 데이터이다. 최신 컴퓨터는 코어가 여
파인만 알고리즘문제를 적는다골똘히 생각한다.답을 적는다.소프트웨어를 설명할 때 음식에 만드는 레시피에 자주 비유하곤 한다. 레시피는 요리에 필요한 재료, 작업순서, 예상되는 결과를 열거한다. 이와 비슷하게 어떤 과제를 수행하는 프로그램은 연산에 필요한 데이터를 명시하고
출처반에서 가장 키 큰 사람이 누구인지 알고싶다고 해보자. 사람인 우리는 그냥 딱 보고 알 수 있겠지만, 알고리즘은 어떤 바보같은 컴퓨터라도 이해할 수 있을 정도로 실행단계를 명확하고 상세하게 설명해야한다.기본적인 방식은 한 명 한 명 차례로 키가 몇인지 묻고, 지금까
선형 시간 알고리즘보다 더 나은 방법은 없을까?종이로 된 옛날 전화번호부를 생각해보자. 만약 찾는 이름이 알파벳순으로 뒤에 있다면 그에 해당하는 알파벳 부분을 넘겨서 확인할 것이다.이런 검색 알고리즘을 이진 검색(binary search)라고 한다. 각 확인 또는 비교
정렬(sorting)은 핵심적인 알고리즘 중 하나이다. 정렬은 항목을 순서대로 배열해서 검색이 빨리 실행될 수 있도록 도와준다. 이름을 알파벳순으로 정렬할때는 선택 정렬(selection sort)를 사용한다. 이렇게 불리는 까닭은 아직 정렬되지 않은 항목 중에서 다음
실제 여행하는 외판원의 알고리즘 모습 지금까지 이짐 검색과 퀵정렬 등을 알아봤는데 보통은 선형(N)의 복잡도, 일의 양이 데이터 양에 정비례하며 퀵 정렬 같은 경우는 NlogN의 복잡도를 갖는데 N보다는 효율이 낮지만 일의 양이 정비례하지 않으므로 효과적이다.N의 2승
컴퓨터 과학 분야에서는 오랜기간 "얼마나 빨리 계산할 수 있는가"에 관한 개념을 정리ㅎ왔다.N, logN, N의 2승, NlogN과 같이 데이터의 양과 관련해서 실행시간을 표현하는 아이디어는 그 고민의 결과다. 알고리듬과 복잡도 연구는 컴퓨터과학의 주요 영역으로, 이론
"여생의 대부분을 내가 작성한 프로그램의 에러를 찾아내는 데 쓰게 될 것 같다는 깨달음이 강하게 밀려왔다"\-모리스 윌크스, 1985알고리즙은 추상적이고 이상적인 절차를 기술한 것으로, 구현에 필요한 세부 사항과 현실적인 고려 사항을 무시한다. 알고리즘은 정확하고 명료
1950년대 말, 1960년대 초에 컴퓨터가 프로그래머를 대신해서 더 많은 일을 수행하게 되는 또 다른 움직임이 있어났는데, 프로그래밍 역사에서 가장 중요한 발걸음이었을 것이다.바로 특정 프로세서 아키텍쳐에 독립적인 고수준 프로그래밍 언어(high level progr
포트랑, 코볼, 베이직이 성공했던 이유 중 하나는 특정 응용 분야에 집중했기 때문이다. 이후 2970년대에 모든 프로그래밍 과제를 처리하려고 하는 언어들이 만들어졌다. 대표적으로 C언어를 예로 들 수 있다. C는 1973년에 벨 연구소에서 일하던 데니스 리치가 개발했
하버드 마크 II의 벌레현실에서 프로그래밍은 대규모로 이루어지는 경향이 있다. 이를 만드는 과정은 다른 큰 프로젝트에 착수할 때와 같다.무엇을 할지 파악하고, 넓은 명세부터 시작해서 점차 작은 부분으로 적절히 나누고, 각 부분을 작업하면서 전체적으로 일관되어 있는지 확
업로드중..지적 재산권(Intellectual property)라는 용어는 발명이나 저작같은 개인의 창작 활동에서 생겨난 다양한 종류의 무형 자산을 일컫는다. 소프트웨어는 지적 재산권의 중한 예다. 실제 형체가 없고, 가치가 높고, 지속적으로 관리해야하지만 무제한으로
표준이란 어떤 기술적 산물이 어떻게 만들어지고 어떻게 작동하도록 되어있는지 명확하고 상세하게 기술한 것이다. 워드의 .doc, .docs파일 포맷 같은 어떤 표준은 "사실상의" 표준으로, 공식적으로 정해지지는 않았어도 모든 이들이 사용하는 경우도 있다. 보통은 정부나
프로그래머가 작성하는 코드는 소스코드라고 한다. 소스 코드를 프로세서에서 실행하기에 적합한 형태로 컴파일한 결과는 오브젝트 코드라고 한다. 소스코드의 경우는 프로그래머가 읽을 수 있는 형태라서 코드를 연구하여 상황에 맞춰 수정할 수 있고 코드에 포함된 혁신적인 기법이나
프로그래밍 언어는 컴퓨터에 무엇을 해야 할지 알려 줄 때 쓰는 언어다. 코드를 작성하기 쉽게 하고자 발명한 인공 언어와 자연 언어 간에는 유사점이 있다. 대표적으로는 그동안 수천 가지의 프로그래밍 언어가 등장했지만, 몇가지 언어만이 사용되고 있다는 것이다.물론 프로그래
업로드중..소프트웨어의 주요한 유형인 운영체제와 애플리케이션을 살펴보려고 한다. 운영체제는 컴퓨터 하드웨어를 관리하고 다른 프로그램을 실행할 수 있게 하는 소프트웨어의 기초 구조물이며 그 위에서 실행되는 프로그램을 애플리케이션이라고 한다. 우리는 일상에서 다양한 프로그
운영체제도 수 합산하기 같은 간단한 프로그램과 마찬가지로 그저 하나의 프로그램이다. 초기 운영체제의 경우는 크기가 작았는데, 메모리도 더 작고 작업이 더 단순했기 때문이다. 초창기의 운영체제는 한 번에 한 개의 프로그램만 실행했다. 메모리도 100KB로 오늘날의 프로그
운영체제가 일하는 법 컴퓨터가 켜졌을 때 프로세서는 영구 기억 장치에 저장된 약간의 명령어를 실행해서 작동을 시작하도록 구성되어 있다. 그런 다음 이 명령어로 작은 플래시 메모리에서 명령어를 읽는데, 여기에는 디스크상의 알려진 위치, USB 메모리, 네트워크 연결을 통
파일 시스템은 운영체제에서 하드 디스킈, CD, 등등의 다른 이동식 메모리 장치같은 물리적인 저장 매체를 파일과 폴더의 계층 구조처럼 보이게 하는 부분이다. 파일 시스템은 논리적 구성과 물리적 구현 간의 분리를 보여 주는 좋은 사례이다. 즉 다양한 종류의 장치에 정보를
파일이 제거될 때는 파일의 블록이 미사용 목록으로 돌아가고 파일의 폴더 엔트리는 삭제돼서 파일이 사라진 것처럼 보인다. 하지만 우리가 아는 것과 실제는 많이 다르다.파일이 윈도우나 맥OS에 제거되면 휴지통으로 간다. 휴지통은 사실 또 다른 폴더처럼 보인다. 휴지통이라는
소프트웨어에도 지층처럼 계층이 존재하며 이렇게 나눔으로써 프로그래머가 복잡성을 처리하는 데 도움이 되는 방법 중 하나이다.하드웨어 - 시스템이 실행중이더라고 버스를 이용하여 장치를 추가하고 제거할 수 있다는 점을 제외하면 하드웨어는 거의 변경할 수 없다.운영체제 - 엄
"스마트폰을 갖고 놀지만 말고 프로그램을 만들어 보세요!" \-버락 오바마, 2013프로그래밍 언어는 엄청나게 많다. 오바마 대통령이 권유한 것처럼 스마트폰 앱을 만들고 싶자면 자바, 스위프트가 운영체제에 따라 필요하다. 책에서는 자바스크립트와 파이썬에 대해서 다룬다.
프로그래밍 언어는 모두 계산을 일련의 단계로 풀어서 상세히 설명하기 위한 표기법이다. 그래서 기본 아이디어는 같은데, 모든 프로그래밍 언어는 입력 데이터를 읽고, 산술 연산을 하고, 계산이 진행됨에 따라 중간 값을 저장하고 가져오며, 이전에 계산한 값을 기반으로 어떻게
자바스크립트 프로그램은 크기가 정말 작다. html을 사용하여 띄워보겠다. html에서 자바스크립트는 script 태그 안에 넣으면 된다.이렇게 작성하면알림창으로 hello, world가 출력된다. 여기서 alert는 자바스크립트 라이브러리의 일부로 확인이나 닫기를 누
두 번째 자바스크립트 프로그램은 사용자가 이름을 입력하도록 요청하고, 맞춤형 인삿말을 표시한다.여기서는 새로운 개념이 등장한다. let 이라는 변수를 선언하는 부분이다. 변수는 프로그램이 실행되는 동안 값을 저장할 수 있는 주기억 장치상의 공간을 뜻한다. 프로그램이 무
수 합산하기 자바스크립트0이 입력되기 전까지 사용자가 입력한 수를 읽은 다음에 전체를 합산해 출력하는 프로그램이다. 앞에서 이미 prompt를 보았고 변수 선언 부분도 보았다. 아직 살펴보지 않은 부분은 while루프문이다. 컴퓨터는 일련의 명령어를 몇 번이고 반복해서
자바스크립트는 정교한 웹 애플리케이션을 만들기 위한 확장 메커니즘으로 중요한 역할을 한다. 구글 지도는 좋은 예시로 구글 지도는 마우스 클릭뿐만 아니라 자바스크립트 프로그램을 통해 지도 이용을 제어할 수 있도록 라이브러리와 API를 제공한다. 따라서 이 API를 이용하
자바스크립트는 어떻게 작동할까? 자바스크립트는 브라우저가 웹페이지에서 자바스크립트를 발견하면(script 태그를 발견하는 예시)프로그램의 텍스트를 자바스크립트 컴파일러로 전달한다. 컴파일러는 프로그램에 에러가 있는지 검사하고, 프로그램을 모형 컴퓨터처럼 만들어 낸 컴
더하기 프로그램 만들기 자바스크립트와 마찬가지로 파이썬으로 만들면 어떨까? 간단하다!
파이썬은 컴파일러, 어셈블러, 자바스크립트와 유사항 방법을 거쳐 실행 가능한 형태로 변환되지만, 세부사항은 다르다.파이썬을 실행할때는 프로그램의 텍스트가 파이썬 컴파일러로 전달된다. 컴파일러는 프로그램에 에러가 있는지 검사하고, 프로그램을 모형 컴퓨터처럼 만들어 낸 컴
통신은 4부 구성 중 하드웨어와 소프트웨어 다음으로 나오는 세번 째 주제다. 통신이랑 온갖 유형의 컴퓨팅 장치가 우리 대신 대화하는 것을 뜻한다. 이 대화에는 좋지 않은 목적의 대화도 포함되어, 프라이버시, 보안, 권리 경쟁 등 복잡한 문제와도 연결되어있다.사람들은 여
업로드중..전화망은 대규모로 성공을 거둔 전 세계적 네트워크다. 처음에는 음성 트래픽 전달하는 것이 시작이었지만, 상당량의 데이터 트래픽까지 전송하는 방향으로 진화했다. 초창기 가정용 컴퓨터는 대부분 전화선을 통해 온라인에 연결했다. 주택용 유선 전화 시스템은 여전히
업로드중..아날로그 전화선의 56kKbps 제한은 설계단계에 지정된 것이다. 이후 나온 두 가지 기술은 전화망보다 최소 100배 더 높은 대역폭으로 대안을 제공한다.케이블TV 방송을 전송하는 케이블을 사용한다. 보통 수백Mbps정도다. 이 속도가 빠르다는 것은 어떻게
업로드중..전화와 케이블은 컴퓨터를 상당히 먼 거리에 있는 대형 시스템과 연결하는 네트워크 기술이다. 이는 또 다른 발전으로 이루어졌는데, 이것이 이더넷이다.1970년대 초, 제록스의 팔로알토 연구소에서 알토라는 컴퓨터를 개발했다. 최초의 윈도 시스템과 텍스트보다 더