ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JavaScript] Deep Dive 01장 프로그래밍
    Modern JavaScript Deep Dive 2023. 9. 13. 18:51

    Intro

    JavaScript의 개념공부의 필요성을 느껴 스터디를 만들었다.
    교재는 모던 자바스크립트 Deep Dive로 정했으며 연말까지 완독하는 것을 목표로 한다.

    스터디의 목적은 자바스크립트의 개념 정리와 기술면접 대비, 면접 연습.
    자바스크립트에 대한 깊은 공부를 목표로 하고 있으며 지속적이고 목표지향적으로 달려가기위해 스터디원들과 매주 정해진 분량을 사전공부 후
    서로 질문리스트를 작성하여 서로 답변 및 토론, 발표 등을 하는 것으로 채택하였다.

    Deep Dive를 기본으로 하되 추가 레퍼런스 등을 참고하여 이해한 내용을 바탕으로 공부하고 정리하고 싶어서 작성한다.
    더불어 마크다운 또한 아직 낯설어서 연습이 필요하다.

    익숙해지고 혼자서만 이해하고 볼 수 있는게 아니라 다른사람들이 봐도 이해할 수 있는 가독성있는 글 또한 연습하기 위해 작성한다.
    최근 서적구매를 5권이나 했는데 이것들은 또 언제 다 보려나...


    1.1 프로그래밍이란?

    컴퓨터 프로그래밍(영어: computer programming) 또는 간단히 프로그래밍(programming, 문화어: 프로그램 작성) 혹은 코딩(coding)은 하나 이상의 관련된 추상 알고리즘을 특정한 프로그래밍 언어를 이용해 구체적인 컴퓨터 프로그램으로 구현하는 기술이다. 프로그래밍은 기법, 과학, 수학, 공학, 심리학적 속성들을 가지고 있다.
    
    한편 코딩은 '작업의 흐름에 따라 프로그램 언어의 명령문을 써서 프로그램을 작성하는 일' 또는 '프로그램의 코드를 작성하는 일'로 크게 나누어 언급되고 있는데 이는 알고리즘과의 상관관계를 잘 언급하고 있다.  -위키백과

    프로그래밍이란 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다. 해결해야할 문제(요구사항)을 명확히 이해한 후 적절한 문제 해결 방안을 정의할 필요가 있다.

    1. 문제해결능력
      문제 해결 능력을 알고리즘과 동일시하면 안된다. 먼저 문제(요구사항)을 명확하게 이해하는 것이 우선되어야한다.
      프로그래밍은 0과 1밖에 알지 못하는 기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 작업이며, 그 결과물이 바로 코드다.
    2. 컴퓨팅 사고(computational thinking)
      문제 해결 방안을 생각할 때 컴퓨터의 입장에서 문제를 바라보고 생각할 수 있어야한다.
      사람과 컴퓨터는 사고, 인지의 방식이 아예 다르기 때문에 항상 컴퓨팅적 사고를 습관화하는 것이 중요하다.

    1.2 프로그래밍 언어

    문제 해결 방안을 컴퓨터에게 전달하기 위해서는 컴퓨터가 이해할 수 있는 언어, 기계어로 명령을 전달해야 한다.
    이를 손쉽게 전달할 수 있는 방안으로 만들어진게 프로그래밍 언어이며 그것을 기계어로 변환하는 과정을 필요로한다.
    이 변환하는 번역기를 컴파일러 혹은 인터프리터라고 한다.

    1.3 구문과 의미

    const number = 'string';
    console.log(number * number); // NaN

    자바스크립트의 변수에는 어떠한 타입의 값도 할당할 수 있다. 따라서 위 예제는 문법적으로 문제가 없다. 하지만 의미적으로 옳지않다.
    number라는 변수에 숫자가 아니라 문자열이 할당되어있기 때문이다.

    결국 문제 해결 능력을 통한 해결방안은 프로그래밍 언어를 통해서 표현된다. 작성된 코드는 요구사항이 실현(문제가 해결) 되어야만 의미가 있다.
    프로그래밍의 목적은 결국 문제 해결이기 때문이다.

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


    1장에서 나올 수 있는 질문 생각해보기.

Designed by Tistory.