오늘 섹션1 마지막 회고와 더불어 기술면접에 대해 알아보는 시간이 있었다.
기술면접이란 개발자가 얼마나 실무에서 필요한 지식을 잘 알고 있는지 확인하는 필수적인 절차이다. 일반적인 문과직렬에서는 면접까지 가면...인성면접처럼 혹은 열정면접처럼 혹은 인상면접처럼 전공지식 외에 다른 평가를 받을 것을 기대하지만, 기술자에게 역시...또다른 전문지식 테스트 관문인 것이다.
코딩테스트라는 관문을 넘어 기술면접이라니.
일단 말로 내가 아는 것을 간결명료하게 또 전문용어를 넣어서 한다는 것 자체가 쉽지 않다. 어려운 문제만 싸매고 있었다 보니 아는 용어도 간결하게 말하는 연습이 아예 되지 않았기 때문이라고 생각한다.
그래서 하루에 20분 정도 시간을 투자해서 기술면접을 준비하는 시간을 가져보려고 한다. 벨로그에는 간단한 키워드들 위주로 적고 실제로 말하는 것은 폰으로 녹음해보자.
또 기술면접에 대해 차근차근 서칭하는 시간도 잊지 말자!
제시되는 단답형 질문이나 본인이 작성한 프로젝트 기술 면접 질문에 대한 짧은 정답을 작성한다.
Q : 스코프에 대해서 설명해보세요.
A : 스코프는 변수가 접근할 수 있는 범위입니다. 한 스코프 범위 내에서 외부 스코프의 변수에는 접근 가능하지만, 내부 스코프의 변수에는 접근이 불가능합니다.
자바스크립트에서 function scope, block scope의 차이는?
자바스크립트에서 lexical scope와 dynamic scope의 차이는?
var로 선언된 변수는 function scope, block scope중 어떤 scope를 가지는가?
...
var로 선언된 변수는 function scope를 가집니다.
특히 for문을 사용할 때 이 차이가 두드러지는데, for문의 중괄호는 block scope지 function scope가 아니기 때문에 for문의 초기화식에 var를 사용하는 경우, function scope내에서 var로 선언된 변수가 변경될 수 있습니다.
이런 가능성을 최대한 배제해야 예측 가능한 코드를 작성할 수 있기 때문에 var 사용은 다소 위험합니다.
다른 시각을 가진 수강생으로부터 더 다양한 지식을 공부할 수 있습니다.
다른 수강생의 답변을 들으며, "나는 어떻게 답변해야 할지" 더욱 깊게 고민할 수 있습니다.
하나의 기술적인 개념에 대해서 나름의 결론을 내렸다면, 기술 블로그로 작성합니다.
면접 질문 답변을 위한 기술 블로깅은 가능하면 자신있는 주제에 대해서 깊고 자세하게 적는 것을 권장합니다. 내 글 하나만 읽더라도 코드를 처음 배우는 사람이 쉽게 이해할 수 있을 정도로 명쾌하고 논리적으로 작성을 하려고 노력해야 합니다. 그렇게 작성된 블로그는 면접관도 읽으면서 감탄하게 됩니다.
HTML
일반적으로 CSS를 불러오기 위해 요소를 요소의 자식 요소로 하고, JavaScript를 불러오기 위해 <script> 요소를 <body> 요소가 끝나기 직전에 위치시키는 이유가 무엇인가요?
<li> 요소는 왜 <ul> 요소의 자식 요소여야만 하나요?
id 속성과 class 속성의 차이에 대해서 설명해주세요.
CSS
CSS box model에 대해서 설명해주세요.
간단한 로그인 폼 컴포넌트를 가운데 위치시키려면 CSS를 어떻게 작성해야 하나요? (centering)
JavaScript
스코프에 대해서 설명해주세요.
배열, 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유에 대해서 설명해주세요.
원시 자료형과 참조 자료형에 대해서 설명해주세요.
얕은 복사와 깊은 복사에 대해서 설명해주세요.
DOM
innerHTML 메서드와 textContent 메서드의 차이에 대해서 설명해주세요.
event.preventDefault 메서드는 언제, 왜 사용하는지 설명해주세요.