ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MJDD] 들어가며
    Language/JavaScript 2024. 11. 26. 17:13
    728x90

    이 글은 '모던 자바스크립트 Deep Dive (이웅모 저)'를 읽고, 정리한 글입니다.

    들어가며

    자바스크립트에 대해서 공부를 하던 도중, 애매모호한 지식이나 확실하지 않은 지식들이 너무 많다는 것을 느끼게 되었다.

    이를 보완하기 위해서, 모던 자바스크립트 Deep Dive를 2달간 집중 공부해야겠다는 계획을 세웠다.

    최소 2일에 1챕터씩을 보고, 정리하여 블로그에 올릴 계획이다.


    자바스크립트의 태생적 특징

    자바스크립트는 과도하다고 느껴질 정도로 친절한 프로그래밍 언어다.
    친절하다는 것은 그만큼 인간에겐 사용하기 쉽고 '에러 없이' 실행되는 것을 의미한다고 볼 수 있다.

    하지만 이렇기 때문에 내부 동작을 이해하기 어렵게 만드는 경우도 있다.

    이것에 대한 이유는 바로, 자바스크립트는 기존의 언어들과 달리 무언가를 만들기 위한 언어로서 개발된 것이 아니라,
    웹페이지의 단순한 보조 기능을 처리하기 위한 제한적인 용도로 태어났기 때문이라고 한다.

    기본 개념과 동작 원리 이해의 중요성

    서론 부분이지만, '프로그래밍'에 대한 공부 사이클에 대해서 정리해 놓은 것이 인상적이어서 소개해 보겠다.

    프로그래머는 요구사항을 기반으로 문제를 해결하기 위한 방안을 고안하고 이를 코드로 구현하는 것이 그 역할이다.

    구현된 코드는 의도한 대로 동작해서 문제를 해결해야 하기 때문에,
    내가 구현한 코드가 어떻게 컴퓨터 내부에서 동작하는지 예측이 가능해야한다.

    이를 위해서는 문제 해결을 위해 사용된 프로그래밍 언어의 기본 개념과 동작 원리를 정확하게 이해하는 것이 중요하다.
    단순히 동작만 하는 코드를 만들고 거기에 만족한다면 이는 '언제 무너져도 이상할 것이 없는' 사상누각일 뿐이라고 강조한다.

    기본 개념과 동작 원리에 대한 이해를 통해서, 정확한 용어를 구사하여 코드의 동작을 예측할 수 있게 된다.

    최종적으로는 우리의 머릿 속에서 코드를 실행해볼 수 있는 능력과 다른 사람이 작성한 코드를 읽고 이해하고 의도를 파악할 수 닜는 능력을 갖게 되는 것이다.

    학습 방법

    책은 피라미드의 형태로 학습 방법을 설명한다.

    • 이해의 영역: 기본 개념과 동작 원리 학습
      • 용어와 개념
      • 문법
      • 컴퓨팅 사고
    • 숙달의 영역: 코딩 스킬 학습
      • 의도적 연습
      • API
      • 프레임워크 및 라이브러리
    • 경험의 영역: 프로젝트에 의한 학습
      • 프로젝트를 통한 경험

    피라미드에서 하단 부분이 없으면, 당연히 중상단도 있을 수 없다.
    그만큼 하단의 이해의 영역에서 용어와 개념 이해, 문법 이해가 중요하다는 것을 강조한다.

    이 때, 키워드 중심으로 나누어 학습하는 것과 여러 번 반복해서 학습할 것을 강조한 것이 나에게는 인상깊었다.
    또한 학습하지 않은 개념에 대해서는, 학습할 개념에만 집중할 수 있도록 '앨리스의 토끼굴'에 빠지지 않게 일단 한 쪽에 쌓아두고 진행하라고 말하는 점도 인상깊었다.

    기본 개념과 동작 원리를 이해했다면, 이를 화용한 구현 능력을 가져야 할 '의도적 연습'이 필요하다.

    이 의도적인 연습이라 함은, 자신의 능력을 살짝 넘어서는 도전을 지속적으로 시도하는 것이라고 말한다.
    너무 쉬운 도전은 지루하고, 무모한 도전은 나를 좌절시킨다.
    따라서 내 능력의 120% 정도 되는 문제를 해결하려 해보자.

    120%의 도전을 통해서 무엇을 모르는지 알게 되었다면, 또 시도하고 실패하는 것을 반복한다. 이것이 의도적인 연습의 반복이다.

    이러한 숙달의 과정을 거쳐 프로젝트를 진행하다 보면, 내가 아는 것과 모르는 것을 확실하게 구분할 수 있게 된다.
    이 때는 다시 첫 사이클로 돌아와 해당 개념에 대한 이해의 공부방식을 진행하면 된다.

    'Language > JavaScript' 카테고리의 다른 글

    [MJDD] 2장 자바스크립트란?  (2) 2024.11.28
    [MJDD] 1장 프로그래밍  (0) 2024.11.28
    [JavaScript] 스코프  (0) 2024.11.24
    [JavaScript] 연산자  (0) 2024.11.23
    [JavaScript] 데이터 타입  (0) 2024.11.21
Designed by Tistory.