모던 자바스크립트 0일차

nada_1221·2022년 8월 7일
0

Deep Dive

목록 보기
1/2
post-thumbnail

들어가며


모던 자바스크립트 책의 본론에 들어가기 전 저자는 말했다.

자바스크립트는 과도하다고 느껴질 만큼 친절한 프로그래밍 언어이다.
(...중략) 이러한 자바스크립트의 특징은 편리한 경우도 있지만 내부 동작을 이해하기 어렵게 만들기도 합니다.

나는 아직 전문가가 아니기 때문에 저 말에 엄청난 공감을 하기엔 어렵지만 공부를 해가는 입장에서 어느정도 공감이 갔다. 자바스크립트는 배우면 배울 수록 이것 하나로도 많은 무엇인가를 할 수 있을 거라는 걸 느꼈다.

하지만 알았다고 생각하는 내용이 어느샌가 생소해지기도 한다. 내가 원하는 대로 코드가 실행되지 않을 때 더더욱 그렇다. 내부 동작을 이해하기 어렵다는 말이 저럴 때 와닿는 것 같다.

눈 코딩을 하지 말아야 하는 이유


프로그래머의 역할은 요구사항을 기반으로 문제를 해결하기 위한 방안을 고안하고, 이를 코드로 구현하는 것이다. (...중략) 이를 명확히 설명할 수 있어야 한다.

여기서는 내가 나아가야할 방향을 제시받았다고 생각이 들었다. 나는 코드스테이츠에서 활동했던 내용 중에 어떤 개발자가 되고싶은가에 대한 질문을 받은 적이 있었다. 그 때 나는 "다른 누군가에게 설명을 잘해주는 개발자가 되고싶다." 고 대답을 적었다. 조금 다른 의미일지도 모르지만 적어도 내가 아는 개념이나 내가 적은 코드에 대해서는 "명확히 설명할 수 있어야 한다." 는 저 이야기에는 결이 같다고 생각이 들었다.

기본 개념과 동작 원리를 이해하지 못한 상태에서 복사 붙여넣기로 단순히 동작만 하는 코드를 만들고 거기에 만족한다면 (...중략) 신뢰할 수 없고 유지보수하기 까다로운 코드가 될 것이다.

선참시에서 온 개발자 선배가 말했다. 눈 코딩 하지말고 나 스스로 만들어보라고.

이 책을 읽기 시작한 이 시점에 드는 생각은 눈 코딩을 하지 않고 다른 무엇인가 내가 스스로 해야 한다면 어떤 것을 해야 하는 것인가? 이다.

아마 방법은 다양할 것이다. 내가 만들고 싶은 것을 만들어도 될 것이고, 알고리즘 문제 즉, 코딩 테스트를 위한 문제를 풀어도 좋을 것이며, 그동안 풀어왔떤 코플릿을 다시 풀어도 좋을 것이다.

여기서 문제가 되는 것은 어떤 것을 고르느냐 인 것 같다. 모든 선택지들이 좋은 방향일 것이고 또한 각각의 장점이 있을 것이다.

그런데 여기서 생기는 문제는 내 실력에 어떤 것을 선택하는 것이 가장 적합할 것인가. 즉 효율의 문제다.

지금 드는 생각이었고, 그에 대한 대답도 지금 드는 생각으로 적어보자면 아마 지금 내가 해야하는 일은 코딩테스트를 대비하기 위한 알고리즘 문제를 푸는 것이 맞을 것이다. 내가 하고싶은 것을 하는 것은 개인 프로젝트로서 취업을 준비하면서 만들면 될 것이다. 또한 코플릿을 다시 풀어보는 것 또한 알고리즘 대비로 대체가 가능하기 때문이다.

그렇다면 답은 나왔다 나는 알고리즘 문제를 앞으로 풀어가면서 눈코딩을 벗어나 내 것을 만들어야 한다.

학습 방법


기본 개념과 동작 원리를 이해해야 하는 이유는 결국 코드를 구현하기 위해서이다. 즉, 기본 개념과 동작 원리를 이해하는 것은 목표가 아니라 과정이다. (...중략) 완벽하게 이해하려 하지 말고 여러 번 반복해서 학습하는 것이 효율적. 이때 학습 중인 키워드 외에 아직 학습하지 않은 개념에 대해서는 일단 기술 부채로 쌓아두고 진행한다. 언제나 앨리스의 토끼굴에 빠지지 않도록 주의한다. (...중략) 시행착오(a.k.a 삽질)은 "무엇을 알고 무엇을 모르는지"를 알게 하는 개발자의 벗이자 선생님. 무엇을 모르는지 알았다면 몰랐던 것을 알기 위해 시도하고 실패하는 의도적인 연습을 반복하자.(...중략) 프로젝트를 통해 더 깊이 이해하고 협업을 경험할 수 있다. 또한 추가로 학습이 필요한 사항을 파악할 수 있다. 모르는 것과 아는 것이 구분되는 때가 바로 이때. (...중략) 이처럼 기본 개념과 동작 원리, 코딩 스킬, 프로젝트 라는 3개의 사이클을 순환적으로 반복하면서 이해의 반경을 점진적으로 넓혀가는 것, 즉 지속적 개선을 통한 성장이 바로 학습이다.

  • 엘리스의 토끼굴 : 어떤 개념을 이해하기 위해 파고들수록 또다른 개념을 이해할 필요가 생겨서 처음 의도한 학습 방향과 점점 멀어지는 현상

# 0 일차 마무리


오늘은 책을 제대로 읽기 전 이 책이 어떤 책인지 알아보는 시간을 가져봤다.
1일차 부터는 제대로 된 챕터에 들어가 해당 공부에 관하여 적어보도록 하겠다.

책 내용은 필요한 만큼만 인용을 할 것이고 관련 내용을 모두 따오는 일은 없도록 할 것이다. 아마 내가 하고 싶은 말과 그에 대한 대답을 가져오기 위한 정도로 사용될 것이다.

그럼 이만 마치도록 하겠다.

profile
FE_개발자_지망생

0개의 댓글