프리 코스가 마무리되었다. 웹 개발은 생각보다 더 쉽지 않았지만 늘 그래 왔던 것처럼 견디다 보니 시간이 흘러 지나왔다. 프리 코스를 돌아본다.
- 전략. 이 게임은 스프린트가 아닌 마라톤, 삶의 과정이다. 그러니까 깊이보다는 차근차근 _단계_를 밟는 전략으로 임해야 한다. 조바심은 일을 그르친다. 급할수록 천천히, 주어진 시간에 더 _집중_하고 흘리는 시간을 줄여야 한다. 그렇게 삶의 과정으로서 개발, 더불어 예술과 운동, 관계 등 삶을 지켜야 한다.
- 사람. 옆에 달리는 사람이 그저 실력을 겨루는 경쟁자가 될지, 의지하는 동료가 될지는 나한테 달려있다. 사람 때문에 힘든 것은 사실이지만 그렇다고 피해서는 답이 없다. 도움의 손길을 내밀고 잡을 줄 알아야 한다. 먼저 나를 믿고 타인을 _신뢰_할 수 있을 때 모든 것이 분명 더 나아질 것이다.
- 생각. 정확히는 pseudocode. 문법은 실시간으로 배우면 된다. 하지만 _생각_을 포기하면 결코 문제를 해결할 수 없다. 남한테 생각을 맡기는 순간 성장의 기회를 잃는 거다. 무엇보다 나답지 못하다. 절대 내가 가지고 있는 생각하는 힘을 간과하지 말자.
- 믿음. 예상대로 개발 재밌다. 시간 가는 줄 모르는 몰입감, 작은 개념을 배우더라도 성장하고 있다는 성취감이 느껴진다. 그리고 더 잘하고 싶다. 내 선택이 나의 길이고 정답이다. 내 생각, 계획을 _의심_하지 말자.
이머시브는 과정을 반복하는 길이다. 그리고 이 길은 마이너스가 될 수 없는 길이다. 앞만 보자.
JavaScript
Hiring Assessment
pseudocode: 오류를 피해서 논리를 적는다.
test1
- 변수 선언의 위치(Lexical Scoping)와 할당
test2
Math.sign(x)
test3
- Data Types의 변화에 신경을 써야한다.
test4
getElementsByClassName()
는 주어진 클래스를 가진 모든 자식 엘리먼트의 실시간 HTMLCollection을 반환합니다.querySelectorAll()
는 지정된 셀렉터 그룹에 일치하는 엘리먼트 리스트를 나타내는 정적(살아 있지 않은) NodeList를 반환합니다.
test5
arr.sort([compareFunction])
test6: 클로저 이슈
클로저의 케이스(구조)와 문법에 대한 이해가 부족했다. return으로 내부 함수를 바로 실행하는 생각을 떠올리지 못했다. 그리고 피보나치 수열을 출력하는 함수를 작성하는 데 어려움이 있었다.
test7: 변수 선언의 위치 & 재귀에서 return 이슈
재귀, 변수를 엉뚱한 곳에 선언해서 자기 자신의 함수를 호출할 때마다 변수가 자꾸 초기화되었다. 필요한 곳(if)에서 바로 선언해서 해결했다.
리턴은 값을 반환하고 함수를 종료한다. 함수를 종료할 것인지? 반환 값을 어떻게 사용할 것인지? 기능을 생각하고 리턴해야 한다.