본문 바로가기

쉽게 풀어본 IT 기술

스크립트로 서버 개발하는 node.js node.js는 javascript형태의 서버 사이드 언어이다. 서버를 개발할 수가 있다. 기존 대개는 javascript라고 하면 클라이언트 사이드 언어로 생각했다. 화면을 제어하는 정도 사실 javascript의 시초가 네츠케이프사 이젠 유물이 되어 버린 이 브라우저를 만들 당시에 간단한 화면 제어라든가 이미지 변경 정도 홈페이지에서 필요한 몇가지를 만들려고 제작을 했다고 한다. 그래서 자바스크립트는 매우 간단하였고, 사용이 쉬웠다. 그리고 클라이언트로 그 코드가 내려가고, 브라우저가 그 코드를 실행해서 수행되는 것을 사용자가 볼 수가 있었다. 클라이언트가 서버로부터 코드를 받아서 실행하는 것을 클라이언트에서 수행한다고 해서 클라이언트 사이드 언어이다. 대표적인 것이 javascript였다. 였다라고.. 더보기
파이썬이 나온지가 어언 20년? 파이썬이 나온지는 꽤 오래 되었다. 1991년에 귀도 반 로섬에 의해서 개발되어졌다고 한다. 그러면 20년도 넘게 흐른 것이다. 파이썬이 각광을 받은 것은 최근 10년일 것이다. 오래 되었지만, 어떤 언어들은 사라지거나 사용이 되지 않는 언어도 있는데 파이썬은 오히려 그 존재 가치가 더 인정받게 되었다. 파이썬이 개발이 굉장히 쉽다는 장점이 있다. 기존 C, Java등이 객체지향이고, 개발 로직이 복잡한 경우에 적합하고 개발이 어려웠다면 파이썬은 스크립트형 언어이다. 스크립트형 언어라고 하면 대표적으로 javascript가 있다. 스크립트형 언어와 대조되는 것이 컴파일형 언어이다. 컴파일형 언어는 미리 컴퓨터가 인지 할 수 있게 변환시키는 과정을 통해서 실행화일이라는 것이 만들어진다. 실행화일을 실행하면.. 더보기
Java언어의 장단점 프로그램 Java라는 것은 커피 이름에서 왔다고 한다. 어찌 이렇게 근사한 이름을 지었는지. C++이후에 개발이 되었고, C++개발 시 여러가지 어려운 점들을 쉽게 사용할 수 있게 바꾼 부분이 있다. 기본적으로 객체 지향이라는 관점은 동일하다. Java가 기존 언어와 극명한 차이가 있다면 메모리의 사용 방법에 있을 것이다. 기존 C나 C++은 메모리를 사용할 때 메모리 할당 개념이 있어야 했다. 개발자가 메모리가 필요한 만큼을 미리 생각하여 할당을 받아서 사용한다. 메모리를 필요한만큼 할당 받아서 사용한다라는 것이 생각보다는 어려운 과점이다. 덧셈, 뺄셈 수준의 계산 정도야 메모리가 얼마나 필요할지 예측이 되지만, 어려운 내용이 들어가면 점점 복잡해지고, 나중에는 메모리에 대한 예측이 틀릴 수가 있기 때.. 더보기
C++은 C언어와 무슨 차이예요? C++은 C에 ++이 더해졌으니 뭔가 더 좋아졌다고 볼 수 있는데, 이 좋아졌다는 점이 객체 지향이라는 개념이다. 객체 지향 개념은 객체를 지향했다는 것인데, C언어의 경우는 순차적인 프로그램을 만들었다. C++의 경우에는 객체가 중심이 된다. 객체라는 개념부터 이해를 해야 할텐데, 객체는 우리 주변에 모든 것이라고 할 정도로 모든 것이 객체로 되어 있다. 사람도 객체이다. 강아지도 객체이다. 컴퓨터도 객체라고 할 수 있다. 그것이 살아 있든 죽어 있든 모든 것은 객체이다. 그럼 순차적인 것과 객체 지향의 차이는 이렇다. 예를 들어 순차적인 것은 강아지에게 밥을 준다. 강아지를 목욕 시킨다. 강아지와 산책을 한다. 이런식으로 일어나는 일들에 대해서 순차적으로 진행을 했다고 하면 객체 지향은 강아지가 중심.. 더보기
C언어는 어떻게 만들어졌을까? C언어의 중요한 개념은? C언어는 개발자들이 접할 수 있는 처음 언어이거나 프로그램 개발의 기초가 되는 언어이다. B언어 다음으로 개발되어졌다고 하는데, B언어는 Bell 연구소에서 개발되었다고 한다. 켄 톰슨은 BCPL언어를 필요에 맞추어 개조해서 "B"언어(언어를 개발한 벨 연구소의 B를 따서)라 명명했고, 데니스 리치가 이것을 개선하여 C 언어가 탄생했다. 모든 명령에 대해서 코드로 되어 있다. C언어는 이 코드를 유닉스 운영 체제에서 사용하기 위해 개발한 프로그래밍 언어이다. 1972년 켄 톰슨과 데니스 리치가 벨 연구소에서 개발했다. 유닉스 시스템의 바탕 프로그램은 모두 C로 작성되었고, 수많은 운영 체제의 커널 또한 C로 만들어졌다. C언어가 유명한 이유는 아마도 개발자들에게 친화적이였기때문이다. 이렇게 말하면 C언어.. 더보기
정렬 알고리즘을 쉽게 개념만 가장 많이 쓰여지고, 기본적인 알고리즘이 정렬이다. 정렬은 순서대로 나열하는 것이다. 순서대로 나열하는 것은 많은 곳에서 의미있게 사용되어질 수 있다. 정렬을 엑셀로 데이터를 만들다가도 쇼핑몰에서 판매량순으로도 본다고 했을 때 이것들이 정렬에 해당된다. 프로그램 내부적으로도 어떤 자료들을 정렬하여 검색을 하기도 하고, 저장을 하기도 한다. 순차적으로 만드는 것은 알고리즘 상에서 필요로 하는 과정이기도 한다. 그래서 순서를 정하는 것에도 알고리즘이 필요하다. 정렬 알고리즘이라고 하는데, 이 정렬 알고리즘에는 몇가지 방법이 있다. 버블 정렬 - 물방울이 물밑에서 보글보글 올라온다고 해서 버블 정렬이라고 한다. 퀵 정렬 - 빨리 정렬을 할 수 있다고 해서 퀵정렬이라고 한다. 이 방법은 정렬을 하고자 하는 수들.. 더보기
알고리즘을 뭐라 말할까? 자료구조가 데이터를 다루는 구조였다고 하면 알고리즘은 어떤 기능을 동작시키기 위한 과정이다. 프로그램은 기본적으로 다루고자 하는 데이터와 알고리즘으로 이뤄진다. 기본적으로 무엇을 넣으면 어떤 결과가 나온다는 것이 알고리즘이다. 수학의 모든 공식이 알고리즘이고, 내가 미리 정해놓은 약속들이 알고리즘이다. 알고리즘은 문제를 풀어가는 방법이다. 어떤 식으로 풀면 된다라는 것도 알고리즘이다. 예를 들면 지금 있는 곳에서 서울 시청까지 가는 방법도 하나의 알고리즘이 될 수 있다. 길찾기 알고리즘에 해당된다. 알고리즘은 정해진 한가지만 있는 것이 아니다. 버스를 탈 수도 있고, 택시를 탈 수도 있고, 지하철을 타고 갈 수도 있다. 문제를 풀어가는 방법이라는 것이다. 문제를 풀어감에 있어서 최단 시간이 걸렸다든지 최.. 더보기
자료구조 꼭 알아야 할까? 자료 구조라는 것을 꼭 알아야 할까? 컴퓨터를 조금 공부한 상황이라면 자료구조라는 말에 먼저 머리가 아플수도 있다. 개발을 할 때 꼭 알아야 할까? 소프트웨어 개발에 있어서 필수적인 요소이긴 하다. 프로그램은 기본적으로 어떤 데이터를 다룬다. 회원 관리 프로그램이라고 하면 회원 데이터를 다룬다. 회원의 정보를 기억하고, 보여주기도 하고, 탈퇴할 수도 있다. 회원 정보는 이름도 있고, 어떤 경우는 나이도 있다. 어떤 경우는 가입일이 있을 수 있다. 이러한 정보를 자료라고 하고, 이것을 어떻게 관리할 것이가 어떤식으로 저장할 것이가가 자료 구조이다. 여기까지는 데이터 베이스까지의 얘기는 아니다. 데이터 베이스틑 저장에 관한 부분이다. 물론 데이터 베이스에서도 어떻게 저장하는가의 문제가 있다. 정보를 어떤식으.. 더보기
소프트웨어 왜 중요한가? 누가 잘할 수 있는가? 개발을 한다는 것은 무언가를 만드는 것이다. 건축물로 비교하면 아파트나 백화점을 건축하는 것이다. 그 건물의 목적이 있고, 디자인이 있고, 그 건물에 들어가는 각종 기능들이 있을 것이다. 소프트웨어로 개발을 하는 것의 대상은 무형의 것이다. 물론 결국 화면이 보여지기때문에 유형이라고도 할 수 있다. 무형이라고 말하는 이유는 그것이 최소 손에 잡히는 물건은 아니기 때문이다. IT세계에서 손에 잡히는 기기를 하드웨어라고 한다. 손에 보이지 않고, 안에서 그 하드웨어를 움직이는 것을 소프트웨어라고 한다. 사람으로 치면 몸 자체는 하드웨어이고, 뇌도 하드웨어이고 그 안에 돌아가고 있는 생각이 소프트웨어에 해당된다. 소프트웨어는 미리 정해놓은 약속이다. 사용자가 어떤 기능을 선택하면 그 기능이 동작되어진다. 소프.. 더보기
모바일앱 vs 모바일웹 vs 하이브리드앱 -안드로이드, 아이폰, 모바일웹, 모바일웹앱, 모바일앱 스마트폰 어플리케이션은 이제 실생활에 너무 많이 쓰여서 너무 익숙하다. 일상이 스마트폰으로 시장해서 스마트폰으로 끝난다고 볼 수도 있다. 아침 알람도 스마트폰이고, 신문도 스마트폰으로 보고, 대화도 스마트폰으로 하고 주식, 게임, SNS등 모든 것을 스마트폰으로 할 수 있다. 스마트폰의 활용이라든가 어떤 것인지에 대해서는 익숙하기에 가볍게 넘어가도 될거 같다. 스마트폰 앱에 대한 구분을 한번 다뤄보면 좋을거 같다. 모바일앱이 있고, 모바일웹이 있다. 하이브리드앱이라는 말도 존재한다. 모바일앱은 모바일에 설치를 하고 사용하는 앱이다. 앱이라는 말도 사실 어플리케이션의 준말이다. 윈도우도 설치해서 사용하는 PC어플리케이션이 있었다면 웹사이트를 접속하여 .. 더보기
응용프로그램 vs 웹어플리케이션 vs 서버프로그램 응용프로그램이라는 것은 우리가 사용할 수 있는 프로그램들을 모두 말한다. 워드도 그렇고, 인터넷 브라우저도 그렇고, 게임도 응용프로그램에 속한다. 응용하여 만들어진 모든 프로그램이 모두 응용 프로그램이다. 그것이 운영체제마다 조금씩 다른 형태로 제공이 된다. 윈도우 어플리케이션 윈도우는 우리가 일반적으로 사용하는 컴퓨터의 운영체제이다. 가장 많이 보게 되고, 흔히 접할 수 있다. 우리가 사용하고 있는 것들을 생각하면 된다. 윈도우 어플리케이션 대표적인 것은 MS Word, 인터넷 익스플로어, 크롬 브라우저 같은 것들이 있다. 네이버가 윈도우 어플리케이션은 아니다. 알집과 같은 유틸리티들이 윈도우 어플리케이션이다. 카카오톡도 PC버전이 있다. 이것이 윈도우 어플리케이션이다. 윈도우 어플리케이션은 어떻게 만.. 더보기
왜 소프트웨어를 강조할까? 누가 잘할 수 있나? 현재는 뭐랄까 다 할 수 있다. 그렇게 된지는 아주 오래전부터의 일이지만, 국방과학부터 시작해서 개인들의 취미 SNS, 음악 제작, 만화도 컴퓨터로 그린다. 이제 교육에도 초등학교까지 소프트웨어 교육 의무화를 하려고 한다. 소프트웨어에 대해서 중요성을 강조하고 있다. 세상은 왜 소프트웨어를 강조할까? 이미 몇십년전부터 미국을 중심으로 소프트웨어로 엄청난 부가가치를 창출하고 있다. 전세계에서 가장 영향력있는 산업은 역시 소프트웨어 산업이다. 최근들어 주가도 몇배 또는 초기부터 하면 몇십배의 상승을 보이고 있다. 소프트웨어는 그 가치가 끝이 없기때문이다. 마이크로소프트의 윈도우가 대표적이지만, 페이스북도 그러하고, 우리가 일상적으로 접하는 카카오톡이 그러하다. 모두 소프트웨어이다. 어쩌면 소프트웨어는 우리 .. 더보기
리눅스는 무엇일까요? 초보자분들만 리눅스는 유닉스를 모태로 한다. 유닉스에서 나왔다고 봐도 되지만, 리눅스는 사실 오픈소스 개념으로 출시되고, 리눅스 제단이 있지만, 누구가 소스를 수정하여 재컴파일할 수 있다. 리눅스로는 주로 서버를 운영한다. 서버라는 것을 잠시 설명하자면, 우리가 사용하는 스마트폰은 클라이언트에 해당된다. 클라이언트는 우리가 보는 화면에 떠 있는 프로그램 또는 기기를 말하고, 서버는 그 클라이언트의 요청에 응답해주는 것을 말한다. 대표적으로 카카오톡을 보면 우리가 사용하는 것은 클라이언트이다. 그리고 카카오톡을 다시 설치해도 로그인을 하면 데이터가 그대로 있는 것을 볼 수 있다. 그 데이터들은 서버에 저장이 되어 있던 것들이다. 일부 데이터가 지워진 것이 있다면 그것은 클라이언트 즉 내가 가진 단말에 저장이 되어 있던.. 더보기
운영체제와 스마트폰 운영체제는 시스템을 구동하고, 시스템 구동을 통해서 다양한 응용 프로그램을 수행할 수 있는 기본 프로그램이다. 운영체제도 소프트웨어이고, 누군가는 개발한 것이고, 그것도 수행이 되고 있는 것이다. 운영체제위에서 다른 프로그램들이 실행되는 것이다. 운영체제는 CPU에게 일을 가져다 주고 해당하는 일들을 수행 받아 다음 일들을 처리한다. 몇가지 대표적인 운영체제가 있다. 사용자들이 가장 많이 사용하는 윈도우 운영체제, 사용자들은 모를 수도 있지만, 서버개발자라면 모두 아는 리눅스, 개발자도 다 다뤄보지 않았을 수 있는 유닉스, 스마트폰을 구동 시키는 안드로이드 OS, 애플 OS등이 있다. 윈도우라는 운영체제는 UI를 가지며 사용자의 입력 및 요청을 받아 해당하는 일들을 수행한다. 윈도우는 우리가 일상적으로 .. 더보기
컴퓨터 주변 장치의 변화 입출력 장치는 입력 키보드, 출력 모니터이다. 사용자들이 가장 많이 접하는 부분이다. 컴퓨터의 구성에 대해서 빼놓은 수 없는 부분이다. 사실 어떻게 보면 컴퓨터 발전에 비해서 가장 바뀌지 않는 부분인지도 모른다. 물론 모니터야 CRT모니터라고 모니터 앞부분은 볼록하고 뒷부분은 더 뽈록한 모니터였었다. 지금과 같은 모니터가 나온 것은 그 CRT모니터 이후이다. 당연히 모니터가 평면이여야 아니냐고 하겠지만, TV도 그렇고 모니터도 그렇고, 예전에는 모두 뽈록했다. 앞뒤로, 평면TV라는 말도 사실 엄청난 광고 문구였다. 평면TV라는 말만으로 그 기술력을 평가 받았으니 말이다. 모니터는 화질도 좋아지고, 크기도 커졌는데, 제일 변하지 않은데, 키보드인거 같다. 최근 고가의 키보드를 보면 30만원을 호가한다. 그.. 더보기
세마포어는 언제 필요할까? CPU는 어떤 식으로 사용하느냐에 따라서 효율이 매우 달라질 수 있다. CPU가 매우 효율적으로 사용되어져야 하는데, 어떤 일을 얼마만큼의 시간을 하게끔 할 것인가가 중요하다. 세마포어, 세마포어라는 말은 철도나 해군의 수기 신호에서 나왔다고 한다. 정지 또는 출발을 가르켜준다. 컴퓨터에 보면 메모리에 접근이 때론 막을 필요가 있고, 여러개의 프로그램 엄밀히 말하면 쓰레드에서 접근을 하여 임의로 바꿀 수 있는데, 이것을 잠깐 또는 어떤 특정 조건에 의해서 막아주는 역할을 한다. 이것이 세마포어이다. 동시에 사용하지 말고, 특정 자원은 한 쓰레드가 사용하고 그 다음에 다음 쓰레드가 사용하고, 사실 사용에는 제어가 필요하진 않고, 업데이트를 하는 것에 대해서는 제어가 필요할 것이다. 한쪽에서 숫자를 바꾸는 .. 더보기
컴퓨터에서 인터럽트란? 인터럽트 걸지 말라는 표현을 쓰기도 한다. 한창 무언가에 집중을 하고 있는데, 옆에 친구가 말을 거는 것이다. 한참 일을 하고 있는데, 상사가 다른 일을 하라고 하는 것이다. 인터럽트는 하던 일 중간에 끼여 들어오는 일이다. 인터럽트를 걸 수 있고 걸린다는 것은 무시할 수 없는 상황이다. 무언가 더 빠른 우선순위를 가지고 해야되는 일로 바뀐다. 예를 들면 예전에는 ESC기능이 인터럽트에 해당됐다. 현재는 대표적으로 Ctrl-Alt-Del 키이다. 그 키가 3개가 동시에 눌리면 컴퓨터를 하던 모든 동작을 멈춘다. 그리고 어떤 특정 창을 보여준다. 프로그램 입장에서는 인터럽트가 걸린 것이다. 프로그램에서는 한창 무언가 명령을 처리 중이거나 다음 차례로 명령의 응답을 대기하고 있었을 것이다. 그런 것들 보다 .. 더보기
디스크 스케쥴링 디스크 스케쥴링도 다뤄볼만한 주제이다. CPU와 메모리 사이에서 메모리에 어떤 프로그램 일부를 올릴 것인가에 따라서 성능이 좌지 우지 되는 것처럼 디스크도 어떤 방식으로 검색하는 것이 성능이 좋을지에 대해서는 생각해볼만하다. 디스크 내에 정보가 저장되어 있는 구역을 섹터라고 하는데, 이 섹터를 헤드라는 것이 움직이면서 데이터를 찾아다닌다. 저장된 위치는 고정이기때문에 그 위치를 찾아서 섹터가 움직이는 것이다. 우리가 윈도우 탐색기에서 파일을 보고 폴더를 들어가보면 파일들이 여러개 있을 것이다. 우리가 윈도우가 제공해주는 아주 편리한 기능을 보는 것이다. 파일을 파일로 보고 어떤 특정 폴더에 저장되어 있다고 보여진다. 좀더 들여다보면 그 파일은 하드디스크에 저장이 되어 있는데, 물리적으로는 많은 조각으로 .. 더보기
디스크의 확장 RAID RAID는 보통 사람들에게는 익숙하지 않다. 그럴 수 있는 것은 보통 사람들은 하드디스크를 사용하고 과거 생각해보면 컴퓨터에 하드디스크를 2개 또는 그이상 달아서 사용했다. RAID라는 것은 이러한 하드디스크를 여러개 연결해서 쓰는 방식의 디스크를 말한다. 왜 여러개를 연결하려고 했을까? 과거 하나의 하드디스크의 용량에 한계가 있는데, 이러한 디스크를 한계보다 많은 대용량이 필요했을 것이다. 물론 진짜로 하드디스크를 여러개 붙혔다고 생각하면 안되고, 그러한 방식으로 연결 되어 있다고 이쯤해서 약어를 얘기하면 기억이 될 것으로 생각된다. redundant array of inexpensive disks 저렴한 디스크의 연결의 의미이다. 또는 redundant array of independent disks.. 더보기
컴퓨터 내 디스크란 디스크는 반영구적 저장 장소이다. 파일이 저장되어 있다. 사용자가 지우거나 고장 나지 않으면 파일은 계속 유지된다. 그리고 디스크는 일반적으로 하드디스크이다. 고전 방식의 하드디스크는 실런더라는 구조로 되어 있어서 여러개의 LP판이 위로 쌓여 있는 형태를 연상케 한다. LP판이 어렵다면 CD 여러장이라고 봐도 된다. 이곳에서 데이터를 찾기 위해서 열심히 돌아간다. 이 속도가 하드디스크의 속도이다. 빨리 돌아가면 성능이 빠르다. 디스크는 사실 속도도 중요하지만, 관점은 용량이다. 용량이 커야 많은 파일들을 저장할 수 있다. 하드디스크의 용량은 최근 100G수준도 모자라 1TB가 대중화 되었다. 사실 과거에 1G하드 디스크 사실 대학교 시절 최초 컴퓨터를 구입할 때 하드디스크가 128MB였다. 사실이다. 뻥.. 더보기
프로그램은 어떻게 여러개가 동작될까? CPU는 하나인데, 어떻게 여러개의 명령어를 실행할까? 멀티쓰레드 멀티프로세스라는 조금은 어려운 말이 나온다. 멀티 쓰레드를 설명하면 쓰레드라는 조그만 일단위가 여러개가 동시에 진행이 된다. 동시에 라는 말을 다시 한번 쪼개보면 시분할이다. 엄밀히 말하면 여러개의 프로그램이 순차적으로 조금씩 실행되는 것이다. 너무 빠르게 돌아가기때문에 동시에 실행되는 것처럼 보이다. 굉장히 빠른 시간들을 통해서 프로그램은 순서에 따라서 자신이 수행될 기회를 얻어 수행을 한다. 물론 최근 컴퓨터는 실제로 하나의 프로그램만 실행되는 것은 아니다. CPU도 그렇고, 메모리도 그렇고, 여러개의 프로그램이 실행되게끔 설계되었다. 컴퓨터 내에서의 여러가지 처리해야할 일들이 많이 있을 때에 무엇부터 처리할지에 대한 고민은 사실 고전.. 더보기
메모리에 대해서 메모리는 저장이라는 뜻이다. 컴퓨터에는 크게 두가지 저장 개념이 있다. 오래 저장하는 것과 잠깐 저장하는 것 오래 저장하는 것은 파일이라는 형태로 디스크에 저장이 되며 디스크는 우리가 이해하는 하드디스크이다. 잠깐 저장하는 것은 명령어나 데이터의 형태로 메모리에 저장되는 것이며 프로그램을 종료했을 때 또는 컴퓨터를 껐을 때 심지어 프로그램을 종료하지도 않았는데도 사라지는 경우가 있다. 이렇게 단기적인 기억을 위해서 메모리가 존재하는 이유는 컴퓨터의 전체적인 성능을 높이기 위한 것이다. 컴퓨터의 성능은 무엇에 좌우 될까? 처음 설명한 CPU 연산의 능력, 속도이다. 속도는 클럭으로 표현을 하였다. 빠르게 처리하는 것이 컴퓨터의 성능이다. 메모리가 왜 컴퓨터의 전체 성능을 좌우할까? CPU가 일을 하려면 일.. 더보기
프로그램, 프로세스, 프로세서 차이가 모야? '프로그램이 떠있다' 라는 표현을 씁니다. 누가 만든 말일까요? 프로그램이 어디에 떠 있는 걸까요? 물위도 아니고, 하늘도 아니고, 프로그램이 떠있냐는 질문을 하면 떠있다 안떠있다라고 말을 합니다. 그것은 화면을 보고 그 프로그램이 화면에 보이면 떠 있는 것이고, 안보이면 안떠있다고 말할 것입니다. 엄밀히 말하면 안보여도 떠 있다고 말할 수 있는 프로그램들도 있습니다. 백그라운드라는 속성의 프로그램들입니다. 아래 영상으로도 간단히 설명했습니다~ https://youtu.be/ZKM90aap5fo 윈도우의 서비스 프로그램들이 그렇고, 유닉스나 리눅스의 프로그램들이 있습니다. 실행은 되고 있는 것입니다. 눈에 보이는 것만 프로그램인 것은 아닙니다. 컴퓨터에 보면 파일이라는 것이 있다. 이 중 실행이 되는 파.. 더보기
컴퓨터를 구성하는 요소 컴퓨터 내부를 단순하게 들여다보면 크게 4가지 정도로 구성된다고도 말할 수 있습니다. CPU, 메모리, 디스크, IO (출처: http://m.blog.daum.net/dasomcap/) CPU는 앞서 말했듯이 연산장치입니다. CPU 무언가를 열심히 계산을 하고 있습니다. 프로그램이라는 것에 속해 있는 명령어를 열심히 수행하고 있습니다. 명령어라는 것을 쪼개보면 다시 연산들의 연속입니다. 그래서 CPU는 계속적으로 무언가를 동작시키고 있습니다. 컴퓨터에서 인터넷 브라우저를 켜는 순간도 어떤 명령들이 계속 실행이 되고 있는 것입니다. 과거 DOS시절이라면 시커먼 화면에 명령어를 쳤을텐데, 동작이 되는 것인데, 윈도우라는 운영체제는 사용자들이 편리하도록 마우스 클릭만으로 실행이 되도록 제공을 해주는 것입니다.. 더보기
컴퓨터의 시작 컴퓨터를 둘러싸고 있는데, 지식들에 대해서 조금 쉽게 정리를 해보려고 합니다. 컴퓨터는 누가 만들었을까요? 제 2차 세계대전에 미국 펜실베이나 대학 교수인 존 모클리와 그 대학 졸업생인 존 에커트는 미국 정부로부터 미사일 발사 기술에 대해서 미사일의 움직임을 정확하게 계산할 수 있는 기기를 만들어달라고 합니다. 이게 시작이였다고 하네요. 과학기술의 발달은 전쟁때문이고, 인터넷의 발달은 영상(?) 산업때문이라는게 틀린말은 아닌거 같습니다. 이에 이들이 개발하여 세상에 내놓은 최초의 컴퓨터가 애니악입니다. 애니악 (출처: 위키피디아) 당시 기계의 크기가 집채만했다고 한다. 크기가 컸던 이유는 이 당시 컴퓨터를 이루는 부품이 진공관이였는데, 이게 차지하는 부피와 발열량이 엄청 났던 것입니다. 이에 벨 연구소에.. 더보기