본문 바로가기
공부 일지 (개발)/웹 개발일지

모던 자바스크립트 Deep Dive : 1장 - 프로그래밍

by 해적왕을 꿈꾸는 사람 2023. 6. 28.

대주제 : 프로그래밍이란 무엇일까?

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

→ 무엇을 실행하고 싶은지 정의

⇒ 이를 위해선 컴퓨터에게 더욱 정확하고 상세하게 요구사항을 설명해야하므로 문제 해결 능력이 필요함 

* 항상 how와 why를 생각해야 한다. 개발자에게 가장 필요한 능력은 문제 해결 능력이다, 식으로 공식처럼 외우지 말자. 


⚠️ 막간 지식 : 컴퓨터는 어떻게 프로그래밍 언어를 알아들을 수 있는 걸까? 

여기서 나오는 게 바로바로 

compiler와 interpreter의 역할 : 

사람이 이해할 수 있는 약속된 구문으로 구성된 프로그래밍 언어를 사용해 프로그램을 작성한 후, 
컴퓨터가 이해할 수 있는 기계어로 변환하는 일종의 번역기

언어의 구분 : 자연어와 인공어

 

프로그래밍 언어 : 

  • 컴퓨터와의 대화(명령)에 사용되는 일종의 표현 수단.
  • 사람과 컴퓨터 모두가 이해할 수 있는 약속된 형태의 인공어
  • syntax(구문)과 semantic(의미)의 조합으로 표현

Q. 구문과 의미는 독립적으로 존재할 수 없을까?

Colorless green ideas sleep furiously -  Noam Chomsky

무색의 초록 개념들이 격렬하게 잔다

→ 문법만 맞다고 해서 언어를 잘하는 게 아니다. 의미를 가지고 있어야 언어의 역할을 충실히 할 수 있다. 프로그래밍 언어도 역시 그렇다.


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