[read] 모자딥 - 01장. 프로그래밍

Jenna·2024년 2월 10일
0

01. 프로그래밍

기초중 기초. 수학의 정석 집합만 풀었던 느낌으로 이것만 몇번을 본지 모르겠다. 요약할 것도 별로 없고 아주 기초지만 그래도 적어보자고~! 가보자고~

1.1 프로그래밍이란?

  • 프로그래밍은 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션. 개발자랑 컴퓨터랑 얘기한다는 건 거짓말이 아님 진짜 소통함
  • 컴퓨터에게 어떤 명령을 내릴 것 인지 제대로 정리하기 위해 요구사항을 명확히 이해하고 해결 방안을 정의해야 한다. 즉 문제해결능력을 요하게 됨.
  • 알고리즘이 꼭 문제해결능력은 아니고, 하는데에 필요할 뿐, 문제를 명확히 이해하고 분석하고 구분하는 능력이 중요하다.
  • 컴퓨터가 알아먹는건 0과 1밖에 없습니다. 그런애가 알아먹을 정도로 정확하고 상세하게 요구사항을 설명하는 것이 프로그래밍.
    따라서 이와 같이 컴퓨터의 입장에서 보고 (컴퓨터 감수성..?) 설명하는 것이 컴퓨팅 사고 입니다~ 흔히 말하는 컴퓨팅사고 능력 키우기 어쩌고~ 는 다 이런 말이었다는 것

1.2 프로그래밍 언어

  • 컴퓨터에서 명령을 전달할 때, 컴퓨터가 이해할 수 있는 언어로 전달을 해야한다. 이떄 필요한 것이 컴파일러 (compiler) 혹은 인터프리터 (interpreter).
    사람의 프로그래밍 언어를 기계가 이해할 수 있는 기계어로 변환해주는 일종의 번역기다.

1.3 구문과 의미

  • 문법적으로 틀린 것이 없어도 문맥에 따른, 의미를 가지고 있어야 언어의 역할을 수행할 수 있다. 이는 일반적 언어와 비슷하다. 언어의 의미는 문맥에 있는 것이지 문법에 있지 않다.

  • 프로그래밍 언어도 마찬가지.

    const number = 'string';
    console.log(number * number); // NaN

    문법적으로는 전혀 틀리지 않은 자바스크립트 언어이지만 의미적으로 ..? 하게 만드는 예시.
    ...? 왜 저렇게 했지..? 하는 느낌 일듯
    number 에 string 을 할당했기 때문인데 이것은 진짜 그냥 문맥적인 흐름에 따른 것이다.

  • 결국 프로그래밍은 요구사항의 집합을 분석해 적절한 자료구조와 함수의 집합으로 변환한 후, 그 흐름을 제어하는 것이다.

profile
FE/Game Dev.

0개의 댓글