📌본 글은 네이버 부스트코스 [CS50 - 모두를 위한 컴퓨터 과학]을 수강한 후 개인적으로 정리를 하기 위해 작성된 포스트입니다.
자세한 강의 내용은 www.boostcourse.org 사이트를 참고하시길 바랍니다.
👉 아스키코드(ASCII) 인코딩 표준
컴퓨터가 스위치를 ON/OFF하면서 숫자를 표현한다면
문자는 어떻게 표현할까요?
바로 문자를 숫자로 표현할 수 있도록 정해진 약속이 있는데
그 중 하나는 설명미국정보교환표준부호 ASCII(아스키코드 / American Standard Code for Information Interchange)이다.
총 128개의 부호로 정의되어 있는데, 이 표준에서 숫자 65는 대문자 'A'와 대응된다.
따라서 컴퓨터가 대문자'A'를 저장하고 싶다면 숫자 65를 이진수로 저장할 것이다.(2진수는 2⁶x1 + 2⁵x0 + 2⁴x0 + 2³x0 + 2²x0 + 2x0 + 1x1 (64+1) = 1000001이다.)
소문자도 아스키코드에서 숫자로 나타낼 수 있다.
소문자'a'는 숫자 97로 나타내고 'b'는 98로 나타낸다.
컴퓨터가 소문자 'a'를 저장하려면 숫자 97을 2진수, 1100001로 저장해야한다.
이를 통해, 아스키코드에서 소문자는 같은 대문자 글자보다 항상 2^5만큼 크다는 사실을 알 수 있다.
👉 아스키코드의 한계, 유니코드의 등장
현재 전체 문자들은 8비트 아스키코드로는 나타내는 데에 한계가 존재하기 때문에, 유니코드가 등장하게 된다.
이러한 유니코드로 이모지까지 표현이 가능한데
예)😂 이모티콘은 10진법으로 128,514, 2진법으로는 11111011000000010
스크린을 통해 보는 그림을 자세히 살펴 보면 수많은 작은 점들이 빨간색, 초록색, 파란색(RGB)를 띄고 있는데, 각각의 점을 픽셀이라고 부른다.
각각의 픽셀은 세 가지 색을 서로 다른 비율로 조합하여 특정한 색을 갖게 된다.
예를 들어 빨간색 72, 초록색 72, 파란색 33을 섞게 되면 노란색이 되는 것처럼
이러한 표현 방식을 RGB라고 한다.
영상은 무수히 많은 그림을 이어붙여 보여 주는 것이기 때문에 역시 숫자로 표현이 가능하다.
음악도 마찬가지..
✔️ 핵심 단어
앞선 이진법은 결국 컴퓨터가 이해할 수 있는 방법으로 정보를 변환하여 입력하는 방법으로, input에서 output의 과정 중 input에 해당된다.
그렇다면 output(출력)은 어떻게 가능할까
컴퓨팅은 입력을 받아야 출력이 가능하다.
알고리즘은 이 컴퓨팅 과정에서 입력에서 받은 자료를 출력 형태로 만드는 처리과정을 뜻한다.
즉, 입력값을 출력값의 형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순서적 나열이라고 할 수 있다.

*출처 : 한빛출판네트워크
같은 출력값이라도, 어떤 알고리즘으로 출력하느냐에 따라 시간이 크게 달라진다.
따라서 출력값을 나타내는 '정확한' 알고리즘도 중요하지만, '정확하고 효율적인' 알고리즘이 더 중요하다
의사코드는 특정 프로그래밍 언어의 문법에 따라 쓰여진 것이 아니라, 일반적인 언어로 코드를 흉내내어 알고리즘을 써놓은 것이다.
의사코드는 말 그대로 흉내만 내는 코드이기 때문에, 실제적인 프로그래밍 언어로 작성된 코드처럼 컴퓨터에서 실행할 수 없으며, 특정 언어로 프로그램을 작성하기 전에 알고리즘의 모델을 대략적으로 모델링하는 데에 쓰인다.
함수 : 무엇을 할지 알려주는 '동사(Verb)'의 역할 ex) Pick up, Open to, Look at
조건 : 여러 선택지 중 하나를 고르는 것 ex) If, Else if, Else
불리언(Boolean) : 예 또는 아니오 혹은 참(True) 또는 거짓(False)으로 나오는 아니면 2진법에서 0 또는 1로 나오는 질문
루프(loop) : 계속해서 반복하는 순환

미국 메사추세츠공과대학(MIT) 미디어랩의 라이프롱킨더가든그룹이 만들어 무료로 제공하는 스크래치라는 그래픽 프로그래밍 언어를 사용하면 블록을 옮겨 붙여서 알고리즘을 만들어 볼 수 있다.
블록 모양의 다양한 코드들을 옮겨가며 만들어 볼 수 있기 때문에, 코딩에 대한 개념을 쉽게 배워볼 수 있다.
스크래치 블록의 종류에 따라서 프로그램이 수행하는 일의 종류가 달라진다.