본문 바로가기
프로그래밍/파이썬

호기심 파이썬 : 코딩을 공부할 때 알아두면 좋은 것들(1)

by 인성패밀리 2022. 7. 2.
반응형

보통 프로그래밍 언어라고 하는데 실제 배워보면 진짜로 언어를 배우는 듯한 느낌이 강합니다. 언어이긴 한데 컴퓨터에게 지시를 내리는 것이죠. 일방적인 언어입니다.

 

우리가 알고 있는 영어가 가득한 코드도 사실 컴퓨터는 알지 못합니다. 컴퓨터는 0과 1로 이해하고 있기 때문입니다. 우리가 아는 코드는 몇 개의 번역기를 돌려서 0과 1로 변하게 됩니다. 이 번역기의 특징은 거꾸로 번역은 불가능합니다. 비유하자면 이렇습니다. "사과"라는 단어가 코드이고 코드를 번역하면 컴퓨터가 알아들을 수 있는 말인 "apple"이라고 해보겠습니다. 이것을 거꾸로 번역하면 "붉은색을 가진 과일" 정도로 바뀐다는 말입니다. 즉, 토씨 하나하나 똑같이 변하지는 않고 코드의 특징은 알 수 있을 정도로는 번역이 가능하다는 말이 되겠습니다.

 

이 번역기에 해당하는 것이 컴파일러(compiler)라고 합니다. 우리가 쓰는 프로그래밍 언어는 컴파일러라는 번역기에 의해서 컴퓨터가 알아들을 수 있도록 해줍니다.

 

 

컴퓨터가 0과 1로 이해를 한다고 하였는데 "그럼 그냥 0과 1로 우리도 코딩을 하면 되지 않을까?" 하는 궁금증도 있을 것 같습니다. 이진법에 대해서 알고 있다면 이러한 말은 나오지 않을 것이라 생각합니다.

 

0과 1을 사용하는 숫자 체계가 이진법(binary)이라고 합니다. 우리가 일상적으로 사용하는 숫자 체계는 십진법입니다. 함무라비로 유명한 바빌로니아 사람들은 60진법을 사용했다고 합니다. 다양한 진법이 있는데 이를 하나로 묶어 n진법이라고 하겠습니다. n진법은 0 ~ n-1까지의 숫자들로 이루어진 숫자 체계입니다.

 

우리가 사용하는 십진법은 0부터 1, 2,..., 8, 9 다음은 10입니다. 10은 1과 0으로 이루어진 숫자입니다. 10이라는 숫자 단독으로 존재하지 않는다는 것입니다. 12진법을 사용하는 연필을 예로 들어보겠습니다. 요즘 연필을 세는 단위인 한 다스라는 말은 잘 사용하지 않지만 연필 11개에서 한 개를 추가했을 때 보통 한 다스라고 단위가 변환됩니다. 12라는 숫자는 존재하지 않고 자리 수를 올림으로써 존재하게 됩니다.

 

이제 이진법으로 돌아와서 0 다음은 1, 1 다음은 2인데 이진법은 2가 없어 자리 수를 올려 10이라 표현합니다. 이진법 10은 십진법으로 2라고 할 수 있게 됩니다.

이진법 10에서 1을 더하겠습니다. 11입니다. 십진법으로는 3입니다.

이진법 11에서 1을 더하겠습니다. 12가 되는데 2라는 숫자는 이진법에서 존재하지 않으므로 자리 수를 올려 100이라 표현하게 됩니다. 십진법으로는 4에 해당이 되죠.

 

이런 식으로 십진법 255를 이진법으로 표현하면 11111111이 됩니다. 큰 수는 어떨까요? 0과 1이 굉장히 많아지게 됩니다. 복잡하다는 말이 되겠죠. 복잡하다는 말은 외우기도 어렵다는 말이 되겠습니다.

 

숫자를 표현하는 것도 복잡한데 하물며 문자를 표현하는 것은 얼마나 복잡할까요? 각각의 문자도 이진법에 대응되어 있습니다. 컴퓨터는 문자로 대응되어있는 이진수를 가지고 우리가 컴퓨터에서 문자를 볼 수 있게 해 줍니다. 

반응형

댓글