Skip to content

Latest commit

 

History

History
31 lines (16 loc) · 2.23 KB

File metadata and controls

31 lines (16 loc) · 2.23 KB

1장 프로그래밍

1.1 프로그래밍이란?

  • 프로그래밍이란 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다. 이를 위해 먼저 무엇을 실행하고 싶은지 정의할 필요가 있다.

    다시 말해, 프로그래밍에 앞서 해결해야 할 문제(요구사항)를 명확히 이해한 후 적절한 문제 해결 방안을 정의할 필요가 있다. 이때 요구되는 것이 문제 해결 능력이다.

  • 대부분의 문제(요구사항)은 복잡하며 명확하지 않다. 따라서 이 복잡함을 단순하게 분해하고, 자료를 정리하는 행위가 필요하다.

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

  • 문제를 해결할때 필요한 것은, 컴퓨터의 입장에서 문제를 생각하는 관점이며, 이를 Computational thinking(컴퓨팅 사고) 라고 한다.

1.2 프로그래밍 언어

  • 문제해결 능력을 바탕으로 정의된 문제 해결 방안은 컴퓨터에게 명령으로 전달된다. 이 명령을 수행할 주체는 컴퓨터이며, 따라서 이 명령은 컴퓨터가 이해할 수 있는 언어야 하며 이를 기계어 라 부른다.

  • 기계어로 직접 명령을 전달하는 것을 대신할 가장 유용한 대안은 프로그래밍 언어를 사용해 프로그램을 작성한 후, 그것을 기계어로 변환하는 것이다. 이 일종의 번역기를 컴파일러 혹은 인터프리터라고 한다.

  • 프로그래밍 언어는 구문(syntax)과 의미(semantics)의 조합으로 표현된다.

1.3 구문과 의미

  • 프로그래밍의 학습은 기본적어로 문법을 배우는 것부터 시작한다.

  • 하지만, 이는 물론 의미를 가지고 있어야 언어의 역할을 수행할 수 있게 된다.

  • 프로그래밍 언어는 문법에 부합해야함은 물론이고, 요구사항이 실현(문제가 해결)되어야 의미가 있다.

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