코드스테이츠 Pre Course - if문, 논리 연산자와 t/f
그동안 2-3번 정도 코딩 공부에 도전했다. 엔지니어가 많은 환경에서 일하다 보니 자연스럽게 코딩이나 개발 지식을 자주 접하게 되었고, 그래서 앞으로 테크 분야에서 더 깊이 일하고 싶다는 생각을 갖게 됐다. 게다가 웹사이트 PM 업무를 하면서 그 매력에 빠져 PM과 기획자로의 커리어를 진지하게 고민하게 되었고, 앞으로의 커리어를 위해서는 코딩 공부가 필수적이라는 생각이 들었다. 아무래도 PM, 기획자에게는 '실현 가능한 기술적 범위'를 알고, 더욱 미시하게 기획하는 능력이 있을수록 인정받기 때문에.
지난번에는 Pre Course를 5-6주 정도 수강하면서 공부하다가 일이 너무 많아 그만뒀다. 우리 코스는 하루에 평균 3시간 이상을 투자하는 것을 권장하는데, 프로젝트에 들어가면서 하루 평균 3시간은 무슨, 하루 30분도 시간이 안 나는 바람에.. 아직 바쁜 건 끝나지 않았지만, 어떻게든 다시 이어가고 싶어서 35기 수강을 다시 시작했다. 이번만큼은 완강하자는 마음으로!
첫 주차는 (어김없이) 야근을 하는 바람에 실시간으로 세션에 참여하지는 못했다. 하지만 이미 2번이나 들었던 범위라, 전에 작성했던 강의 노트와 세션 슬라이드를 보면서 변수, 타입, 조건문, 함수, 배열, 반복문, 객체에 대한 기본적인 지식을 빠르게 복습했다.
Pre Course는 세션을 듣고 학습하는 것 외에도 문제/과제를 풀어야 한다. 이번 주와 다음 주는 코플릿(코드스테이츠 문제 풀이 플랫폼)에 있는 기본 문제(약 80개)를 푸는 것이다. 사실 이 문제들도 예전에 80% 정도 풀었던 경험이 있다. 그래서 나는 비교적 쉬운 문제를 풀면서 다시 프로그래밍에 머리를 최적화시키기에 좋았다.
이번 주차 내용은 내게 익숙한 것이었지만, 그래도 새롭게 알게 된 내용이 몇 가지 있었다.
조건에 따라 각각 다른 값을 반환하게 하는 if문의 경우, 조건 A에 해당하지 않는 나머지 경우에 대한 반환 값은 굳이 !A (not A)라는 조건을 적어주지 않고 return해도 된다. (아래 예시 참고)
function isOddLength(word) {
if (word.length % 2 !== 0) {
return true;
}
return false;
}
사실 되게 당연한 규칙인데, if문의 규칙에 너무 익숙해져 있다 보니 꼭 !A 조건을 명확하게 작성해주어야 한다고 생각했다. 약간의 aha moment가 있었다.
논리 연산자는 boolean이 아니라 '값'이 결과에 나타날 수 있다.
OR에 해당하는 ||는 truthy한 값을 만나면 그 값을 출력하고, 그 이후로는 평가하지 않는다. 그리고 앞의 값과 뒤의 값이 모두 falsy할 경우에는 뒤에 있는 값을 출력한다.
5 || 10 // 5 출력
undefined || false // false 출력
AND에 해당하는 &&은 falsy한 값을 만나면, 그 값을 출력한다. 그리고 앞의 값과 뒤의 값이 모두 truthy할 경우, 뒤에 있는 값을 출력한다.
undefined && 10 // undefined 출력
5 && false // false 출력
5 && 10 // 10 출력
사실 이게 어떤 원리로 이렇게 출력되는 건지는 잘 모르겠다. 잠깐 구글링 해보았을 때도 현상만 설명할 뿐, 딱히 설명이 없었던 것 같다. 그냥.. 자바스크립트가 그렇게 작동하도록 개발된 것 같기도 하다.
다음 주 세션에서는 변수 전달, 문자열, 배열에 대해 심화 학습한다. 원래 권장하는 가이드처럼, 다음 주까지 코플릿의 기본 문제를 다(..!) 풀고 해결하는 것이 내 목표다. 그리고 코드스테이츠의 꽃인 페어 프로그래밍을 못 해봤는데, 다음 주부터 참여할 수 있을 것 같아 기대된다!! 야근할 일이 없기만을 바랄 뿐...