2019.01.07 - [컴퓨터 사이언스 부트캠프 with 파이썬] - Study01

1 분 소요

본 포스팅은 컴퓨터 사이언스 부트캠프 with 파이썬 이라는 책을 참고하여 개인 공부를 하면서 정리하고 있습니다. 문제 될 시 삭제하겠습니다.

변수

메모리 미리보기

32비트와 64비트의 의미

컴퓨터에서는 데이터 단위로 비트를 사용한다. 예를 들어 8비트 컴퓨터라고 하면 한번에 데이터를 전송하는 통로가 8개가 존재한다고 이해하면 된다. 따라서 비트가 높은 컴퓨터일수록 한 번에 보낼 수 있는 데이터 양이 많아진다. 또한 이 비트 수에 따라 메모리 주소를 표현하는데, 32비트 컴퓨터의 메모리 주소는 32비트로 표현하고, 64비트 컴퓨터는 64비트로 표현한다.

데이터 전송

메모리 이해하기

메모리 주소 한 개는 1바이트를 가르킨다. 8비트 컴퓨터를 가지고 예를 들면 32비트컴퓨터는 주소 하나를 나타내기 위해 2진수 32자릿수를 사용한다. 따라서 32비트에서 나타낼 수 있는 주소의 개수는 232 바이트를 표현 할 수 있다. 232바이트는 4,294,967,296바이트이고 4 * 1,024 * 1024 * 1024 바이트로 풀어 쓸 수 있다. 위 식을 GB로 정리하면 4GB가 된다. 따라서 32비트 컴퓨터로는 메모리 공간에 4GB까지 주소를 할당 할 수 있다. 따라서 4GB이상 추가로 메모리를 설치해도 메모리 주소를 할당 받지 못해 추가 공간에 접근 할 수 없다.

1,024Byte = 1KB,
1,024 * 1,024 = 1MB
1,024 * 1,024 * 1,024 = 1GB

변수의 의미

변수란 데이터를 저장할 수 있는 메모리 공간을 의미한다. 이 변수는 단순한 이름이 아니라 메모리 공간 자체를 의미한다. 변수 안에는 숫자, 문자, 객체 그리고 함수까지도 담을 수 있다. 또한 변수에 담긴 값이나 가리키는 대상은 언제라도 변경이 가능하다. 변경이 가능하기 때문에 이름이 변수인 것이다.

파이썬에서의 변수

파이썬에서는 변수를 이름과 값 객체로 나눈다. 우리가 파이썬에서 변수라고 부르는 것은 사실 이름이다.

num1 = 100
num2 = num1

id(num1) #4526882416
id(num2) #4526882416

num1은 변수가 아니라 이름이고 100라는 값 객체를 가리킨다. 변수는 값을 가지고 있지 않고 메모리를 가리키는 것이다. 따라서 num2는 num1이 가리키고 있는 메모리 주소를 같이 가리키니다.