🚀 들어가며
프로그래머스 프론트엔드 데브코스도 벌써 시작한지 한달이 다 되어간다. 시간이 정말 빠르다.
나는 프론트엔드 데브코스 지원 전에는 거의 파이썬으로 코딩테스트 문제만 풀어보다가 본격적인 프론트엔드 개발자가 되기 위한 전선에 뛰어들면서 JavaScript를 학습하게 되었다. 난 파이썬을 비전공자인 다른 누군가에게 설명할 때 프로그래밍 언어의 '돌연변이' 라고 설명한다. 그 이유는 파이썬은 메모리 할당과 같은 기본적인 CS 지식을 몰라도 충분히 코딩테스트에서 좋은 성과를 거둘 수 있다고 생각하고, 구현되어 있는 내장함수들이 많아서 사용하기 정말 편리하기 때문이다.
나는 파이썬 언어로 지난 6개월간 꾸준하게 코딩테스트 문제를 풀면서 골드2를 달성했었다. 그 때문에 약간 자만한 것도 있었다. 언어만 다르지 자바스크립트도 파이썬과 별반 다를 것이 없을 것이라 생각했던 것. 이러한 나의 자신감은 데브코스에 입과한 이후 큰 벽을 마주하며 산산조각이 났다. 자신감이 아니라 오만함이었다.
지난 날을 돌아보면 하루하루가 벅찼다. 며칠동안 강의 수강을 퍼즈하고 복습하는 시간을 가지고 싶었는데 그럴 수가 없었다. 프론트엔드 데브코스는 강의, 과제, 코드리뷰, 스터디 등으로 하루하루가 빽빽하고, 더군다나 자바스크립트 기본기를 제대로 갖춘 상태가 아닌 나에게는 거의 매일이 새로운 내용을 학습하는 거라 당일에 배운 내용을 받아들이는 데에도 벅찼다.
주말이 기다려졌다. 주말에는 강의도 없기 때문에 지금까지의 학습 내용을 복습할 수 있는 시간적 여유가 생긴다. 기회인 것이 이번 주에는 마침 과제도 없다. 이번 주말에는 꼭 자바스크립트 기본기를 더욱 다지고, 지금까지의 학습한 내용들을 회고하는 시간을 가지기로 결심했다.
인프런 코어 자바스크립트를 수강하게 된 계기 😂
나는 현재 모던 자바스크립트 Deep Dive 라는 책을 가지고 팀원과 스터디를 진행중이다. 그와 별개로 객체, 클래스, 프로토타입, 스코프 등 자바스크립트의 기본이 되는 지식들을 개인적으로 학습하고 있다. 사실, 책을 한 번 읽는다고 해서 그 지식이 내 것이 되는 것은 아니다. 당연한 사실이지만, 한 번 읽은 내용을 코드에서 활용하지 못하고, 이전에 봤던 부분을 또 봐도 매일이 새롭게 느껴지는 내 모습을 보고 조급함과 자괴감이 들었다.
방법이 없을까 해서 무작정 검색창에 '모딥다 공부법'을 검색하였다. 그러던 중 한 블로그 글을 보고 인프런 '코어 자바스크립트' 강의를 알게 되었고, 강의를 수강하게 되었다.
나는 이번 강의를 다음과 같은 이유로 선택하였다.
▪︎ 학습한 지식들이 이어지지 않고 서로 분산되어 있는 느낌
'모던 자바스크립트 Deep Dive' 는 생각보다 초심자도 이해하기 쉽다. 하지만 학습한 내용을 챕터별로 보면 이해가 되는데, 뭔가 하나의 체인으로 이어지지 않는 느낌이었다.
▪︎ 짧은 강의 시간
프론트엔드 데브코스 강의로도 학습할 내용이 차고 넘쳤다. 나에게는 시간이 그다지 많지 않다.
▪︎ 지금이 아니면 언제 이런 기본기를 다지는 유료 강의를 듣겠냐는 생각
지금이 기본기를 탄탄히 다질 수 있는 가장 적합한 시기라고 생각했다. 나중에 가면 시간 없어서 듣지도 못할듯 ...
이러한 이유로 강의를 수강하기로 결심했고, 오늘 '클로저' 챕터를 제외한 모든 강의를 다 들은 소감을 남긴다.
✅ 01. 데이터 타입
사실 데이터 타입의 경우엔 이미 아는 내용이었다. 그리고 강의를 괜히 결제했나 싶을 정도로 오히려 모딥다에 있는 내용이 더 체감이 잘되었다. 강사님께서 이해를 돕기 위해 이미지를 사용했는데, 의도는 좋았으나 사실 그만큼의 효과는 있었나.. 싶다.
✅ 02. 실행 컨텍스트
챕터1에서 실망하고 챕터2를 보는데, 정말 이해하기 쉽게 설명해주셨다. 안도했다.
문맥(context)을 함수를 활용하여 쉽게 설명해주셨는데, environmentRecord 는 현재 문맥의 식별자로, 호이스팅의 개념까지 묶어서 설명했고 outEnvironmentReference 는 외부 식별자를 현재 문맥의 상위로 가면서 찾는 것을 스코프체인의 개념까지 묶어서 같이 설명했다. 이미 어느정도 아는 내용이었지만, 복습하는 겸 도움이 많이 되었던 것 같다.
✅ 03. this
this는 사실, 교육 방식에 있어서 특별함을 못느꼈다. 어느정도 알고 있었던 내용이었고, 이 전에 유튜브로도 같은 내용을 몇 번 학습해서 그런 것일 수도 있다.
✅ 04. 콜백함수
파이썬으로 코딩테스트 문제만 풀면서 콜백함수라는 개념 자체가 생소했다. 사실, 콜백함수를 보면 아직도 어색한데, 강의에서 잘 설명해주셨던 것 같다. 흐름을 이해하는 데에 도움이 많이 되었다.
✅ 06. 07. 프로토타입, 클래스
이 강의의 꽃은 프로토타입과 클래스 챕터가 아닐까 싶다. 진짜 대박일 정도로 설명을 잘하셨다. 특히 프로토타입의 경우엔, 자바스크립트에서 가장 중요한 내용 중 하나지만 이해하기가 쉽지 않았고, '도대체 프로토타입이 자바스크립트에서 왜 중요한건데?' 라는 생각이 끊임없이 들며 모딥다를 읽는데에도 어려움이 있었다.
하지만 강의를 듣고, 프로토타입에 대해 이해할 수 있었다. 자바스크립트에서 원시 타입을 제외한 모든 값들은 전부 객체 타입이고, 이러한 객체는 사실, 생성 시에 생성자 함수로 객체를 생성하는 것과 마찬가지이다. (예를 들면, 배열을 생성할 때엔 const array = new Array() 와 같이 생성된다.) 모든 생성자 함수는 프로토타입 객체를 가진다. 그리고 생성자 함수로 생성된 객체도 프로토타입 객체를 가지게 되고, 생성자 함수의 프로토타입과 프로토타입 체인에 의해 연결되게 된다. (배열 생성자의 프로토타입 메서드를 생성자 함수에 의해 생성된 배열 객체에 사용할 수 있는 이유가 바로 이것이다.)
강의를 들으며 프로토타입이 자바스크립트 전반적인 부분에서 다 쓰이고 있고, 그래서 중요하다는 것을 느낄 수 있었다. 이번 강의를 기점으로 프로토타입을 더욱 공부하여 따로 포스팅할 계획이다.
🛸 마치며
코어 자바스크립트 강의 덕분에, 그동안 학습한 지식들의 일부를 연결할 수 있었고, 자바스크립트의 기본기를 더욱 다질 수 있었다고 생각한다. 자바스크립트에서 가장 중요한 개념들을 한 번씩 복습하면서 큰 틀을 다졌고, 앞으로 모딥다 스터디, 실습 등 학습으로 세밀함을 다져야겠다.
'프로그래머스 데브코스' 카테고리의 다른 글
[데브코스] 성장 중.. 과제 수행, 첫 PR, 코드리뷰 후기 (2) | 2023.10.23 |
---|---|
[JavaScript] SPA와 History API (2) | 2023.10.17 |
[JavaScript] Map 과 Set (0) | 2023.10.13 |
[JavaScript] JavaScript의 10가지 코드 트릭 (0) | 2023.10.03 |
[모딥다/스터디] 39장. DOM(Documents Object Model) (0) | 2023.10.03 |