모던 자바스크립트 Deep Dive | 프로그래밍

April·2022년 2월 3일
0

✨Javascript

목록 보기
19/45
post-thumbnail

01 프로그래밍

1.1 프로그래밍이란?

  • 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션

    • 이를 위해서는 먼저 무엇을 실행하고 싶은지 정의해야 하는데
    • 다시 말해, ①해결해야 할 문제(요구사항)를 명확히 이해한 후 ②적절한 문제 해결 방안을 정의해야 한다
    • 그러기 위해서는 문제 해결 능력이 필요하다.
  • 문제(요구사항)을 명확히 이해하는 것이 우선되어야 하며 그렇게 하기 위해서는,

    • 복잡함을 단순하게 분해(decomposition)하고
    • 자료를 정리하고
    • 구분(modeling)해야 하며
    • 순서에 맞게 행위를 배열해야 한다.

즉, 프로그래밍이란?
0과 1밖에 모르는 기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 작업이며, 그 결과물이 바로 코드다
이 때 필요한 것이 컴퓨팅 사고(Computational thinking)이다



1.2 프로그래밍 언어

문제 해결 능력을 바탕으로 정의된 문제 해결 방안은 컴퓨터에게 전달되어야 하는데, 이때 명령을 수행할 주체는 컴퓨터다.
따라서 사람이 이해할 수 있는 자연어가 아니라 컴퓨터가 이해할 수 있는 언어, 즉 기계어(machine code)로 명령을 전달해야 한다

사람이 기계어로 직접 명령을 전달하는 것은 매우 어려우므로,

  • 사람이 이해할 수 있는 약속된 구문(Syntax, 문법)으로 구성된 프로그래밍 언어를 사용해 프로그램을 작성한 후,
  • 그것을 컴퓨터가 이해할 수 있는 기계어로 변환하는데, 일종의 변역기를 이용한다.
  • 이 때 이용하는 번역기를 컴파일러(compiler) 혹은 인터프리터(interpreter)라고 한다



1.3 구문과 의미

  • 문제 해결 능력으로 만들어낸 해결 방안은 프로그래밍 언어의 문법을 사용해 표현한다.
    • 작성된 코드는 해결 방안의 구체적 구현물이고
    • 프로그래밍 언어의 문법에 부합하는 것은 물론
    • 수행하고자 하는 바를 정확히 수행하는 것, 즉 요구사항이 실현(문제가 해결)되어야 의미가 있다
  • 프로그래밍 언어가 제공하는 문법을 적절히 사용하여
    • 변수를 통해 값을 저장하고 참조하여
    • 연산자로 값을 연산, 평가하고
    • 조건문과 반복문에 의한 흐름제어로 코드의 실행 순서를 제어하고
    • 함수로 재사용가능한 문의 집합을 만들며
    • 객체, 배열 등으로 자료를 구조화한다.


✨ tl;dr

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



profile
🚀 내가 보려고 쓰는 기술블로그

0개의 댓글