자바스크립트 - 딥다이브 스터디 1장

조주영·2023년 2월 26일

들어가면서

회사를 다니면서 언제가부터 회사이슈만 처리하기 바쁘고, 베이스언어인 js공부를 멀리하게 되었고
기본기가 부실해지는 느낌이 들었다.(발전보단 년차만 올라가는 느낌,,,아직 1년도 안된 개린이지만 ㅎ)
따라서 적어도 1주일에 한번은 프론트엔드 개발의 교과서 같은 자바스크립트-딥다이브 책을 읽고 블로그 포스팅을 하는 시간을 가져보고자 해서 시작하게 되었다!!(회사동료와 함께?)

1장 프로그래밍

1.1 프로그래밍이란?

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

커뮤니케이션을 할 때, 요구되는 것?
문제 해결 능력이다.

프로그래밍?
기계가 실행할 수 있을 정도로 정확하게 상세하게 요구사항을 설명하는 작업이고 그리고 그 결과물이 코드이다.

컴퓨팅 사고
문제 해결 방안을 고려할 때 컴퓨터의 입장에서 생각해야하며, 이 때 필요한 것이 컴퓨팅 사고이다.
컴퓨터의 관점에서 문제를 사고하려면 해결 과제를 작은 단위로 분해하고 패턴화해서 추출하며, 프로그래밍 내에서 사용될 모든 개념은 평가 가능하도록 정의해야 한다.

예시)
"걷다" 를 컴퓨팅 사고로 표현해보자
판단해야하는 상태(오른발이 왼발보다 앞에 있는가?)와 그 상태를 판단하는 시기, 그리고 판단 기준을 정의해야하며 이를 바탕으로 실행 여부를 결정한다.
2족 보행 로봇의 디자인을 하면서 장애물이란 무엇(크기, 움직임 등등)인지, 어떤 범위 내에 있는 것인지 명확히 수치화해서 정의해줘야지만 장애물을 피하는 동작을 할 수 있다.

1.2 프로그래밍 언어

명령을 수행하는 것은 컴퓨터이다. 따라서 컴퓨터가 이해할 수 있는 기계어로 명령을 전달해야한다.

그러나기계어는 매우 어렵게 기술되어있기 때문에(아마 아~주 로우레벨의 어셈블리어? 단위가 비트인~?) 사람이 직접 기계어로 명령을 전달하는 것은 어렵다.

따라서, 사람이 프로그래밍 언어를 사용해 프로그램을 작성한 후, 컴파일러나 인터프리터를 통해 컴퓨터가 이해할 수 있는 기계어로 변환하는 과정을 거친다.
이러한 프로그래밍 언어는 구문과 의미의 조합으로 표현된다.

1.3 구문과 의미

프로그래밍 학습은 외국어 학습과 유사하다고 한다.
문법에 맞는 문장을 구성하는 것은 물론 의미를 가지고 있어야 언어의 역할을 수행할 수 있다.

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

정리하자면 글을 쓸때처럼, 그에 맞는 문법과 적절한 단어조합을 하듯 프로그래밍언어도 규칙과 효과적인 방법으로 컴퓨터에 효율적으로 전달하기 위해 고민하고 노력을 기울여야한다!!는 것이 1장의 의미인거 같다.

profile
꾸준히 성장하기

0개의 댓글