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

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

·

2 min read

01_프로그래밍

1.1 프로그래밍이란 ❓

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

  • 이를 위해 먼저 무엇을 실행하고 싶은지 정의할 필요가 있다.

  • 프로그래밍에 앞서 해결해야 할 문제(요구사항)을 명확히 이해하고

  • 적절한 문제 해결 방안을 정의할 필요가 있다.

  • 이 때 요구되는 것이 문제 해결 능력 이다.

하지만 대부분의 문제는 명확하지 않을 수 있다. 따라서..

  1. 문제(요구사항) 를 명확히 이해하는 것이 우선되어야 하며

  2. 복잡함을 단순하게 분해 하고

  3. 자료를 정리하고 구분해야 하며

  4. 순서에 맞게 행위를 배열해야 한다.

즉, 프로그래밍 이란
0과 1 밖에 알지 못하는 기계가 실행 할 수 있을 정도로 정확하고 상세하게 요구사항을 설명 하는 작업이며, 그 결과물이 바로 코드다.

1.2 프로그래밍 언어

  • 문제 해결 능력을 바탕으로 정의된 문제 해결 방안은 컴퓨터에게 전달되어야 한다.

  • 이유는 명령을 수행 할 주체는 컴퓨터이기 때문이다.

  • 따라서, 사람이 이해 할 수 있는 자연어가 아니라 컴퓨터가 이해 할 수 있는 언어
    기계어 로 전달해야 한다.

하지만 사람이 기계어를 이해해서 직접 명령을 전달하는 것은 매우 어렵다.

  • 그래서 가장 유용한 대안은 사람이 이해 할 수 있는 약속된 구문(문법) 으로 구성된
    '프로그래밍 언어' 를 사용하여 프로그램을 작성 하고

  • 그것을 컴퓨터가 이해 할 수 있는 기계어로 변환하는 일종의 번역기를 사용하는 것이다.

  • 번역기를 컴파일러 또는 인터프리어 라고 한다.

프로그래밍은 프로그래밍 언어를 사용해 컴퓨터에게 실행을 요구하는 커뮤니케이션 이다.
프로그래밍 언어는 구문의미의 조합으로 표현된다.

1.3 구문과 의미

서론

  • 프로그래밍을 배우는 것은 일반적으로 프로그래밍 언어의 문법을 배우는 것부터 시작한다.

  • 이는 외국어 학습과 유사 하지만, 문법을 잘 안다고 외국어를 잘한다고 할 수는 없다.

  • 결론적으로 외국어를 잘하려면 말이나 문장을 정확히 이해한 후, 문맥에 따른 적절한 어휘 선택, 그리고 순차적으로 결론을 향해 나아가는 문장 구성이 필요하다.

  • 즉, 문법에 맞는 문장을 구성하는 것은 물론 의미 를 가지고 있어야 언어의 역할을 충실히 수행 할 수 있다.

예시

carbon (11)

  • 자바스크립트의 변수에는 어떠한 타입의 값도 할당할 수 있다.

  • 따라서 위 예시는 문법적으로는 전혀 문제가 없지만, 의미적으로는 옳지 않다.

  • number 라는 변수에 문자가 할당되어 있기 때문이다.

  • number 라는 변수에는 숫자를 할당하는 것이 의미적으로 옳다.

  • 즉, 작성된 코드는 해결 방안의 구체적 구현물이다.

  • 이것은 프로그래밍 언어의 문법에 부합하는 것은 물론이고 수행하고자 하는 바를 정확히 수행하는 것, 즉 요구사항이 실현(문제가 해결) 되어야 의미가 있다.