컴퓨팅사고 - 컴퓨터 과학, 2진법 등
요즘 SI프로젝트를 진행하면서 약간의 회의감이 몰려올 때가 있다. 차세대 프로젝트이기 때문에 AS-IS 분석은 물론이며 애초에 설계 부분이 미흡하게 시작했던 개발단계를 밟고 있기 때문에 새로운 프로세스를 구성한다기 보다 그대로 옮겨놓는 작업이 되다 보니까 개발자로서 직접 요구사항을 디벨롭한다기 보다 분석 -> 옮겨놓기 작업이 되어가고 있다.
서론이 길었다.
개발자로서 경력이 1년이 되는 순간이 얼마전에 있었다 그 즈음부터 미래를 생각하며 로드맵을 그려보았다.
우선 비전공자이기 때문에 컴퓨팅, 네트워크 등의 기초 지식을 탄탄하게 공부하는 것을 첫번째 목표로 세웠다.
찾아보던 중 해외 명강인 CS50이라는 하버드대학교에서 진행하는 컴퓨터 과학 기초교양 과목이다. 해당 내용을 포스팅하려 했으나 대체적으로 C기반으로 설명이되어있고 해서 포스팅은 접어두고 개인적으로 간략히 공부할 예정이다.
그래서 앞으로 기초적인 네트워크나 인프라관련 내용을 '컴퓨터 기초 지식'에 포스팅 할 예정이다.
📌 컴퓨터 과학
컴퓨터 과학은 문제 해결에 대한 학문이다.
문제해결은 입력(input)을 전달받아 출력(output)을 만들어내는 과정이다.
그 중간에 있는 과정이 컴퓨터 과학이다.
📌 2진법
컴퓨터에서는 오직 0과 1로만 데이터를 표현한다. 이를 2진법이라고 한다.
그런데 생각해보면 0과 1로만 표현하는 컴퓨터가 숫자 뿐만 아니라 글자, 사진, 동영상, 음악(소리)를 저장할 수 있다.
이는 어떻게 가능한 것일까?
우리가 123을 '백이십삼'으로 읽는 이유는 1을 백의자리, 2를 십의자리, 3을 일의자리로 보기 때문이다.
우리는 이것을 당연하게 여기는 이유는 10진법이라는 약속이 있기 때문이다.
이때 우리는 이 약속에서 자리수를 10의 거듭제곱으로 표현한다.
비슷하게 2진법에서는 두 개의 숫자만 있기 때문에 각 자리수가 2의 거듭제곱을 의미한다.
따라서 2진법에서 11은 2¹x1 + 1x1 = 3이다.
마찬가지로 2진법에서 100은 2²x1 + 2¹x0 + 1x0 = 4이다.
이와 같이 2진법은 전기를 통해 연산하는, 즉 전기를 켜고 끄는 방식으로 작동하는 컴퓨터에게 적합한 방법이라고 한다.
컴퓨터에는 굉장히 많은 트렌지스터(스위치)가 있고 on/off를 통해 0과 1을 표현한다.
실제로 프로그래밍을 하면서 true == 1 / false == 0 은 익숙하다.
이렇게 2진법에서 하나의 자릿수를 표현하는 단위를 비트(bit)라고 한다.
감사합니다.
'IT knowledge' 카테고리의 다른 글
서버 이중화에 대하여 - L4, L7, 로드밸런싱 (0) | 2022.01.05 |
---|---|
컴퓨팅사고 - 정보의 표현(문자, 사진, 영상, 음악 - 정보처리 방식) (0) | 2022.01.03 |