프로그래밍_Deep Dive

남이섬·2021년 10월 17일
0

프로그래밍이란

프로그래밍이란 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다

무엇을 실행하고 싶은지 정의할 필요가 있다

즉, 프로그래밍에 앞서 해결해야 할 문제(요구사항)를 명확히 이해한 후 적절한 문제 해결 방안을 정의할 필요가 있다

문제(요구사항)는 복잡하며 명확하지 않을 수도 있다
1. 문제(요구사항)를 명확히 이해
2. 복잡함을 단순하게 분해(decomposition)
3. 자료를 정리하고 구분(modeling)
4. 순서에 맞게 행위를 배열

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

Computational thinking(컴퓨팅 사고)
문제 해결 방안을 고려할 때 컴퓨터의 입장에서 문제를 바라 봐야한다.

컴퓨터와 사람은 사고, 인지의 방식이 다르다, 컴퓨터의 관점에서 문제를 사고해야 한다
논리적, 수학적 사고가 필요하며, 해결 과제를 작은 단위로 분해하고 패턴화해서 추출하며, 프로그래밍 내에서 사용될 모든 개념은 평가 가능하도록 정의해야 한다

기능을 디자인하려면 판단해야 하는 상태와 그 상태를 판단하는 시기, 그리고 판단 기준을 정의해야 하며, 이를 바탕으로 분해한 처리(process)의 실행 여부를 결정한다, 어떤범위 내에 있는 것인지 명확히 수치화해서 정의해야 한다

프로그래밍 언어

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

기계어는 비트 단위로 기술되어 있다

기계어로 직접 명령을 전달하는 것을 대신할 가장 유용한 대안은 사람이 이해할 수 있는 약속된 구문(syntax, 문법)으로 구성된 프로그래밍언어(programming language)를 사용해 프로그램을 작성한 후 그것을 컴퓨터가 이해할 수 있는 기계어로 변환하는 일종의 번역기를 이용하는 것이다

일종의 번역기를 컴파일러(compiler) 또는 인터프리터(interpreter)라고 한다

프로그래밍 언어란 컴퓨터와의 대화(명령)에 사용되는 일종의 표현 수단으로, 사람과 컴퓨터(컴파일러 또는 인터프리터) 모두가 이해할 수 있는 약속된 형태의 인공어다

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

구문(syntax)과 의미(semantics)

프로그래밍 언어는 변수의 값, 키워드, 연산자, 표현식과 문, 조건문, 반복문에 의한 흐름제어(control flow), 함수, 자료구조인 객체배열 등과 같은 문법을 제공한다

  1. 변수를 통해 값을 저장, 참조
  2. 연산자로 값을 연산, 평가
  3. 조건문과 반복문에 의한 흐름제어로 코드의 실행 순서를 제어
  4. 함수로 재사용 가능한 문의 집합을 만든다
  5. 객체, 배열 등으로 자료를 구조화한다

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

profile
즐겁게 살자

0개의 댓글