1. 개념 입력장치로부터 Data를 입력 받아 연산 처리하고 그 결과를 출력장치로 보내는 과정을 제어하며 조정하는 장치로 컴퓨터의 두뇌와 같음 2. CPU의 구성요소 구성요소 상세 기능 ALU(연산장치) 각종 산술연산들과 논리연산들을 수행하는 회로 산술연산 : +, -, ×, ÷ 논리연산 : AND, OR, NOT, XOR Register(레지스터) CPU 내부의 소규모 데이터나 중간 결과를 일시적으로 기억해 두는 고속의 전용 영역 컴퓨터 기억장치 중 엑세스 속도가 가장 빠름 Control Unit(제어장치) 프로그램 코드(명령어)를 해석하고 실행하기 위한 제어 신호들(control signals)을 순차적으로 발생 내부 CPU 버스 ALU와 레지스터 간의 데이터 이동을 위한 경로 3. 내부 레지스터의 ..
전체 글
memo1.1 얕은 복사와 깊은 복사 파이썬의 모든 변수는 해당 객체의 주소를 가지고 있다. a = 1 이라고 한다면 a라는 변수에 1이라는 값이 들어가는 것이 아니라, 1 이라는 객체를 생성한 후, a 는 1이란 객체의 주소를 저장하게 되는 것이다. (실제로도 1은 일반적으로 객체가 생성되어 있으며, 선언 시점에 객체가 생성되는 것은 아니라고 한다.) 일단 다음 그림을 보자. [ 그림 1-1 ]을 보면 알겠지만 변수 a 에 리스트 객체가 생성되고 두 번째 라인에서 b에 a 객체가 복사되는 것으로 생각할 수 있지만, 사실은 a 가 가르키고 있는 [1, 2, 3] 의 주소를 b 에 동일한 주소가 복사되는 것이다. (중요) 따라서 a 와 b는 동일한 리스트 객체를 공유하게 되는 것이다. 다음 그림을 보자. [ 그림..
1.1 부울 부울은 참(true) 거짓(false)를 나타내는 자료형으로, 사용 가능한 값은 true와 false이다. 부울은 주로 값들의 논리연산이나, 수치 간의 비교 연산의 결과로 사용한다. 흔히 알고 있는 비교 연산자로 크다(>), 작다 (=), 같거나 작다(
3.1 사전 사전(Dictionary)은 강력하고도, 편리한 자료구조이다. 키와 값의 쌍으로 구성되어 있으며, 아래와 같이 정의 가능하다. dict() 생성자를 사용하지 않고도 사전을 생성가능하다. 키 값을 이용하여 값을 가져올 수 있고, 인덱스는 지원하지 않으며, 없는 키를 사용하면 에러가 발생한다. 3.2 값 추가하기 사전에 새로운 값을 넣어보자. 아래와 같이 새로운 키와 값을 할당하면 되고, 변경도 같은 방법으로 하면 된다. 3.2 값 가져오기 사전의 값을 가져오기 위해 아래와 같이 items(), keys(), values() 메서드를 사용하면 된다. items() 는 사전의 모든 키와 값을 튜플로 묶어서 반환하며, keys() 는 키만을, values() 는 값만 반환한다. 원래 파이썬 2.x ..
2.1 튜플 튜플(tuple)은 리스트와 비슷하나 [ ] 대신 ( )로 묶어서 표현하며, 읽기 전용이다. 읽기 전용인 만큼 적용되는 함수도 리스트에 비해 적지만(count(), index()), 속도는 빠르다. 보이지는 않지만 튜플은 항상 같이 있다(?). 다음 그림과 같이 파이썬 내부에서는 알게 모르게 튜플이 사용된다. 여러 값을 다중 할당하는 것에도 튜플이 생략되어 있다고 생각하면 된다. 2.2 튜플에서 swap C 프로그래밍에서는 swap 을 하기 위해 임시 변수를 하나 더 선언하여 수행하지만 파이썬에서는 간단하게 해결할 수 있다. 위에서 공부했던 리스트, 세트, 튜플은 아래와 같이 list(), set(), tuple() 을 이용하여 언제든지 변환이 가능하다. 방금 나왔던 자료형들은 in 연산자를..
1.1 리스트 리스트는 좀 전(?)의 포스트에서 잠깐 나온적이 있지만, 이번에는 조금 더 들어가 보도록 하자. 여담으로 지금 보는 책이 500페이지가 넘는데 그 때까지 계속 하나하나 올릴 수 있을지도 걱정이다... 나 역시 조금씩 보면서 포스팅 하고 있는 중이라. 혹시라도 빠르게 배우고 싶은 신 분이 계신다면 다음 사이트를 추천합니다. 왕초보를 위한 Python 2.7 - http://wikidocs.net/read/book/136 다시 본론으로~ 리스트는 값이 나열이다. 배열처럼 순서가 있으며, 여러 종류를 담을 수 있다. 또한 0부터 시작하는 인덱스 기능이 있으며, 슬라이싱도 가능하다. 암튼 일단 그냥 해보자. [ 그림 1-1 ] 처럼 리스트를 하나 만들어 보았다. 허전하다... 추가 쫌! 해보자. ..
1.1 유니코드 지금까지 문자열을 다루면서 영문과 한글 모두 사용하여 출력되는 것을 확인하였다. 그러나 다른 사람의 컴퓨터, 즉 다른 언어권이나 다른 운영체제에서도 동일하게 출력된다는 보장은 없다. 그 이유는 각 문자열을 표현하는 방식이 다양하기 때문인데, 이와같이 다양한 문자열 표현 방식을 인코딩(endoding) 이라고 한다. 세계의 모든 문자 코드를 일관된 방식으로 표현할 수 있는 체계를 만들자는 취지로 시작된 것이 바로 유니코드(unicode) 라고 한다. - 유니코드에 대해 자세히 알아보고 싶다면 홈페이지(http://www.unicode.org/) 를 방문하길. 대충 뭔소리냐 하면 다음 그림(?)을 보자. 자주 들어가는 구글이다. 익스플로러에서 '메뉴 -> 보기 -> 인코딩' 에서 일본어를 선..
1.1 문자 파이썬에서는 문자를 단일인용부호라고 하는 (') 것과(그냥 작은따옴표) 다중인용부호라 하는 ("")을 묶어서 표현한다. (뭐 이렇게 어렵게 말해ㅡ) 그냥 작은따옴표하고 큰따옴표로 나타낸다. 즉, '
1. NetBIOS(Network Basic Input Output System) (1) 개요 NetBIOS는 별개의 컴퓨터상에 있는 응용 프로그램들이 LAN에서 서로 통신 할 수 있게 해주는 프로토콜 IBM에 의해 개발되었으며, 마이크로소프트에 의해 채택되었고, 곧 사실상의 산업계 표준이 됨 NetBIOS는 Ethernet, Token Ring, 그리고 Windows 네트워크 등에 사용 NetBIOS는 그 자체로는 라우팅 기능을 지원하지 않으므로, 광역 통신망 상에서 통신하는 응용 프로그램들은 반드시 TCP와 같은 다른 전송 프로토콜을 추가하여 사용해야 한다. NetBIOS는 세션모드 내의 에러복구 등을 포함하여, 네트워크에 관한 상세한 내용을 알아야하는 부담으로부터 응용 프로그램들을 해방시켜 주었다...