이 영역을 누르면 첫 페이지로 이동
Coding Groot 블로그의 첫 페이지로 이동

Coding Groot

페이지 맨 위로 올라가기

Coding Groot

코딩 블로그

JavaScript 공부의 필요성을 느꼈다

  • 2021.01.02 20:41
  • Note/Retrospect
글 작성자: Coding Groot

JS(JavaScript)에 관한 공부가 필요하다고 생각하게 된 과정

내가 알던 JS

나는 C언어도 오래 사용해봤고 C#으로 게임도 만들어보고 Python으로 과제나 여러 가지 장난도 친 경험이 있다. 객체지향도 아주 조금이지만 알겠고 함수형 언어에서 많이 사용해본 map, filter나 lambda 같은 경우는 JS(JavaScript) 문법만 봐도 바로 감이 왔다. 그래서 JS도 대충 봐도 알겠다 싶었다. 대충 문법만 익히고 바로 React도 써보고 Gatsby로 정적 사이트도 Tutorial 같은 것을 보면서 바로 빌드해봤다. 모르는 문법이 나오면 구글링 하고 Python이나 내가 익힌 다른 언어의 관점에서 납득하고 넘어갔다. 일단 결과물이 보이니 '아 이게 JS이구나' 싶었다. 결론적으로는 그러다가 많은 부분을 놓치고 여러 오개념을 얻었다.

JS를 공부하려던 시도

JS를 공부하려던 시도는 많이 했었다. 그래도 기초적인 문법은 알았기 때문에 while문, for문부터 가르쳐주는 초보자를 위한 자바스크립트 책을 사기는 싫었다.

JS는 어떻게 공부해야 되징

  • 어차피 ES5 기반으로 ES6가 탄생했으니 ES5랑 ES6를 동시에 공부해야 해
  • ES6를 바로 시작해도 돼! 일단은 Babel을 쓰면 다 해결 돼
  • Python 했어? 간단한 프로젝트로 바로 시작하고 구글링 하면서 익혀
  • 그냥 Youtube 튜토리얼 보고 바로 시작해봐
  • 요즘 트렌드는 함수형이니깐 함수형 자바스크립트를 해봐
  • ...

친구를 포함한 다양한 사람들로부터 여러 의견을 들었는데 감이 잘 안 잡혔고 중급자용 책을 구매하려니 갑자기 ajax, async, await, promise, prototype 등 다른 언어에서는 안 익숙하거나 처음 보는 개념들이 나열되어 있어서 무서웠다. 그렇게 계속 구글링 하면서 주섬주섬 주워 들었다.

자연스럽게 생긴 오개념

그렇게 이상한 동작을 할 때마다 잠깐 구글링 하고 해결법을 그대로 복붙하곤 자바스크립트가 자바스크립트했네하곤 치웠다. 물론 오작동한 이유도 기록하고 이해하려고 했지만 오개념과 JS에 대한 불신이 생겼다.

구글링으로 필요한 부분만 복사하다 보니 왜 그런지는 모르고 그냥 그렇구나 하면서 얻은 생각들이다.

  • ==은 잘 못 설계된 연산자야. ===을 써야 해
  • var을 쓰면 문제가 많으니 무조건 let, const를 써야 해
  • 뭔진 모르겠지만 promise와 async를 쓰면 웹 페이지 동작이 안 멈추고 처리되는구나
  • JS는 인터프리터야
  • aleart() 뜨면 다 막히네
  • typeof null은 "object"를 반환해
  • setInterval은 제대로 시간에 맞춰서 동작하지 않아
  • 개발자 콘솔은 JS 문법대로 행동해
  • jQuery는 더 이상 배울 필요 없어
  • JS는 브라우저마다 다르게 동작 하나..?
  • JS는 표준이 여러 개..?
  • => JS는 예측이 안 되는 언어야

온갖 삽질과 JS 대한 여러 한탄을 들으면 많은 것이 궁금했다. 그리고 내가 판단하는 능력을 잃은 것만 같았다. 왜 var를 쓰지 말라는 건지.. 정말 쓰면 안 되는 건지. 많은 의문이 생겼다. 그래서 JS 자체에 대한 공부를 시작하자고 다짐했다.

JS 언어 자체에 대해 알고 싶다.

공부용으로 사용 중인 || 공부하다 포기한 자료들

이해력이 딸려서 많은 훌륭한 자료들을 보다가 말았다..

학습 중 포기한 자료들
  • 처음부터 끝까지 가보자라는 생각으로 보기 시작한 자바스크립트 완벽 가이드
    "자바스크립트 완벽 가이드" : 뭔가 많을 것을 배우고 있는 것 같은데 압도적인 텍스트로 인해서 끝까지 보기가 너무 힘들어서 포기했다.
다 봤거나 현재 읽고 있는 자료들
  • 처음에 읽은 책은 코어 자바스크립트라는 책이다.
    "코어 자바스크립트" : ES5에서부터 이어지는 중요한 개념과 함께 ES6의 핵심적인 개념을 설명한다. 가격에 비해 생각보다 얇아서 가벼운 마음으로 읽었지만 생각보다 많은 내용을 담고 있었다. 뒤에 가면서 이해 안 되는 부분에서 읽다가 포기했다가 다시 읽다가하면서 읽었다ㅎㅎ. 자세하게 모든 것을 알려준다기 보다는 헷갈리거나 삽질할 만한 내용을 핵심 개념과 동작 원리로 자세하게 알려준다. 책에 있는 실제 코드 예시가 많은 도움이 됐다.
  • "33 JS Concept" : Nomad Coder 유튜브를 넘겨 보다가 알게 되었다. JS 개발자라면 알아야 할 33가지 개념들에 대해서 정리해 놓은 GitHub 저장소이다. 틈틈이 읽고 있는데 재밌고 유익하다!
  • 초심으로 돌아가는 마음으로 본 생활코딩 자바스크립트 강의
    "WEB2 JavaScript 강의" : 웹 프로그래밍에 시작하기 위한 기초적인 내용을 쉽게 설명해준다. 그래도 그동안 하면서 다 아는 내용이라서 거의 다 스킵하면서 봤다.
  • "You Don't Know JS Yet- 2nd Edition" : You Don't Know JS의 2번째 판인데 이걸 메인으로 삼아서 공부하고 있다. 이 책을 통해서 JS의 많은 기능들에 대해서 자세히 이해할 수 있었다. 많은 오해도 없앨 수 있게 도와준 책이다. 이 책은 아직 만들어지는 중이다. 업데이트되는 글을 읽고 있다.
  • "자바스크립트는 왜 그 모양일까?" : You Don't Know JS를 쓴 저자 카일 심슨과 전혀 다른 관점으로 JavaScript에 대해 접근하는 책이다. 이 책의 저자인 더글라스 크락포드는 오히려 JS의 모든 부분을 이해할 필요가 없다고 말한다. 헷갈리거나 실수하기 쉬운 기능은 삼가하고 좋은 부분만 취해서 프로그래밍을 하자는 입장이다. 계속 읽고 있지만  어렵다ㅜㅜ. 그래도 보는 관점이 참신해서 계속 보게 된다. 책을 따라가면서 저자가 말하는 좋은 방향의 코드에 대해 이해하려는 중이다.

Thumnbail Icon made by Smashicons from www.flaticon.com

반응형

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 전역 회고log

    전역 회고log

    2022.01.21
  • 2021년 앞으로 하고 싶은 것들 중간 정리

    2021년 앞으로 하고 싶은 것들 중간 정리

    2021.07.19
  • 나의 군대에서의 계발&개발 목표

    나의 군대에서의 계발&개발 목표

    2020.09.30
  • 졸업하기 전에 공부하고 싶은 것들

    졸업하기 전에 공부하고 싶은 것들

    2020.03.11
다른 글 더 둘러보기

정보

Coding Groot 블로그의 첫 페이지로 이동

Coding Groot

  • Coding Groot의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록
  • 소개
  • 블로그 저작권

카테고리

  • 분류 전체보기 (182)
    • Git (23)
      • Git Tutorial (9)
      • Git Note (7)
      • Git Lecture (7)
    • Programming Language (1)
      • C (2)
      • C Sharp (5)
      • Java (4)
      • JavaScript (7)
      • Julia (5)
      • Python (4)
    • Programming (8)
      • Algorithm (2)
      • Compiler (5)
      • Data Structure (0)
      • Web (12)
      • NestJS (2)
    • DevOps, Infra (36)
      • Apple (6)
      • Cloud (15)
      • Database (1)
      • Network (4)
      • Linux (8)
    • Game Programming (11)
      • Unity Tutorial (5)
      • Unity Note (6)
    • Hardware Design (1)
      • Digital Circuit (1)
    • Note (49)
      • Coffee (2)
      • Retrospect (15)
      • Reading List (14)
    • Mathematics (1)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 한빛미디어
  • tutorial
  • javascript
  • Github
  • 회고
  • git
  • 서평
  • aws
  • 전체 보기…

정보

Coding Groot의 Coding Groot

Coding Groot

Coding Groot

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기

나의 외부 링크

  • GitHub
  • SlideShare
  • 유니티 2020 수업
  • TIL Blog
  • 모도코

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. Copyright © Coding Groot.

티스토리툴바