[ETC] 데브코스 3주차 회고
🤦♀️ 2주 회고
처음 강의 목록만 봤을 땐 이미 다 배운 내용이고, 길이가 짧아 금방 다 들을 거라 생각했다.
하지만 8분짜리 강의는 1시간짜리 의문을 만들어 냈고. 분명 배운 내용임에도 제대로 알지 못 했다..
그리고, 자료구조를 직접 구현해 본 적이 없어서 더욱 낯설고 어려웠다.
내가 알던 지식과 달랐던 개념
1️⃣ 강의
let,const도 호이스팅이 된다?
let과 const 는 호이스팅이 아예 일어나지 않는다고 알았는데, 사실 둘다 선언자체는 호이스팅이 일어나나 할당이 동시에 이뤄지지 않아서 참조할 수 없을 뿐이었다.
const로 선언한 배열에 값을 추가할 수 있다?
const는 값이 변하면 안되기 때문에 값을 추가할 수 없다고 생각했다. 이벤트 리스너나, for문으로 계속 새로운 const 변수를 만드는 경우가 아니라면 재할당도 불가능하다고. 그런데, 예문에서 const로 선언한 배열에 그냥 push로 값을 추가하는 것을 보고 멘붕이 왔다.
이는, 배열이 스택엔 주소를 힙엔 실제값을 저장하기 때문아다.
따라서 push를 해도 스택에 저장된 const 배열의 주소 값은 변하지 않는다.
2️⃣ 과제
쉬운듯 어렵고 신기하다
과제 자체는 수업시간에 배운 자료구조를 이용하는 문제로 난이도가 높진 않았다. 하지만 전위, 중위, 후위 순회의 개념과 재귀 호출 방식이 처음엔 헷갈렸다.
또, 트라이 자료구조를 사용해 만든 검색어 자동완성 기능이 흥미로웠다. 이전엔 sql 구문을 이용했는데 이렇게 만드니 좀 더 자바스크립트 전문가가 된 느낌이었다.
무엇보다, 지금까지 깃허브로 코드리뷰를 해본 적이 없어서 pr 후 조원 및 멘토님과 코드리뷰를 하고 피드백을 반영하는 과정이 신기했다. 다른 분의 코드를 보고 배우기도 했고, 내가 발견하지 못한 부분을 지적해 주셔서 더 나은 코드를 짤 수 있었다.
현업에선 for()문 보다 고차배열함수 사용!
//전
for (const [key, child] of currentNode.children) {
}
//후
[...currentNode.children.values()].forEach((node) => {});
이전엔 for문으로 절차형 코딩이 편해서 고차배열함수보다 더 자주 썼는데, 현업에선 잘 쓰지 않는 형태라는 걸 처음 알았다.
파일 마지막 줄바꿈
github에 파일을 올리고 마지막 줄에 no newline at end of file이란 경고문을 봤지만 컴파일에 문제가 없어 무시했습니다. 그런데 관용적으로 줄바꿈을 하고 c언어의 경우 에러가 날 수 있단 점을 알게 됐다.
🤔 느낀점
선택과 집중!
2주동안 나의 한계를 깨닳았다. 몇개월 동안 그 모든 내용을 머리에 담아 기억하고 전문가가 될 수 있다면 전국민이 개발자가 되지 않았을까… 난 일반인이라 당장 해야할 일에 집중해야 될 것 같습니다.
미련하게 모르는 것만 붙잡고 있지 말자
강의를 들으면서 모르거나, 궁금한 내용이 생기면 멈췄다 이해를 한 후에 이어보곤 한다. 그런데 데브코스의 경우 심화 과정이라 그런지 간단히 설명만하고 넘어가는 경우가 많아 찾아 볼 내용이 방대했다.
😥 당연히 한 번 멈춘 강의는 오랬동안 재생되지 못했고.. 망부석처럼 계속 컴퓨터 앞에 앉는 일이 비일비재 했다.
그렇게 오래 봐서 이해가 되면 다행인데, 너무 지치면 오히려 집중도 안되고 이해력도 떨어지는 것 같아서 방법을 바꿨다.
이제 1회독은 이해가 안되도 그냥 계속 보고, 2회독 부턴 이해가 안된 내용을 간략히 찾아보고 있는데 이 쪽이 더 효율적인 것 같다!
댓글남기기