처음부터 차근차근

[TIL - 231026] 기술 면접 진행, Javascript 공부 본문

TIL

[TIL - 231026] 기술 면접 진행, Javascript 공부

HangJu_95 2023. 10. 27. 01:30
728x90

오늘 한 일

  • TNH 1차 면접 진행
  • Javascript 공부

TNH 1차 면접

  • 첫 서류 통과 및 기술 면접 진행. 굉장히 긴장되고 떨렸다.
  • 의외로 Javascript 관련 질문의 많았다. Node.js 질문일 줄 알았지만 대답을 잘 못한 부분
  • 대답 못한게 의외로 많았고, 대답할 때 조리있게 잘 대답하지 못했다.

기술 면접을 처음 진행해봤고, 깨달은 게 많은 하루였다.

하루만에 떨어졌지만, 그래도 나에게 면접 기회를 준 TNH 회사에 감사하다. 정말 배운게 많았기 때문

이를 통해 앞으로 어떻게 해야 할 지 방향성을 정할 수 있었다.

 

1. 가장 중요한 건 개발과 관련된 지식이 부족하다.

  • CS지식
  • DB, 자료구조, 알고리즘
  • Javascript, Typescript
  • Node, express, Nest
  • 개발 지식 (Git, 컨벤션, Devops 등)
  • 이력서 기반 지식 정리 필수

2. 지식을 토대로 면접 질문을 준비한다.

Why? 아는 것도 중요하지만, 잘 정리해서 조리있게 말하는 것도 중요하다!

면접 봤지만 긴장해서 다 까먹는게 문제점.

 

3. Portfolio Project 빠르게 진행해야 한다.

  • 금일 면접 결과, OpenAI를 쓴다고 하니 굉장한 관심을 보인다.
  • , 이것을 이력서에 넣는다면 어필이 가능하다.

앞으로 이것을 열심히 준비해 좋은 기업에 들어가는 것 뿐만 아니라, 좋은 코드를 작성하는 개발자가 되겠다.

 

Var, let, Const 키워드

  • 선언 키워드에 대해서 다시 한번 더 학습했다
  • var의 단점을 ES6에서 let과 const로 변경했다.
변수 선언 키워드는 3가지가 있습니다.
먼저 var는 ES6 이전부터 존재하는 선언 키워드이며, 변수 중복 선언을 허용합니다. 이는 방대한 코드에 있을 경우 문제가 발생할 수 있습니다. 또한 함수 레벨 스코프를 지원하며 이것은 코드 블록(조건문, 반복문 등)에서 선언한 변수도 전역 변수가 된다는 단점이 존재합니다. 또한 변수 호이스팅 시 var 키워드로 선언한 변수는 변수 선언문 이전에 참조할 수 있으며, undefined를 반환합니다.
이러한 단점을 극복하기 위해 ES6 이후부터 let과 const가 출시하였습니다. let과 const는 변수 중복 선언이 금지되며, 블록 레벨 스코프를 지니고 변수 호이스팅 시 "선언 단계"와 "초기화 단계"가 분리되어 진행되기 때문에 변수 선언문에서 초기화가 진행되며, 이는 변수 호이스팅이 발생하지 않는 것처럼 보입니다.
const의 경우 반드시 선언과 동시에 초기화를 해줘야 하며, 그렇지 않으면 에러가 납니다. 또한 재할당이 금지되어 const 키워드로 선언된 변수에 원시 값을 할당한 경우 값을 변경할 수 없습니다. 그러나 객체를 할당한 경우 객체의 값(속성)은 변할 수 있습니다.

스코프

  • 스코프에 대해 많은 학습을 진행
  • 스코프 체인, 렉시컬 스코프와 동적 스코프를 공부할 수 있었다.
모든 식별자는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정되며, 이를 스코프라고 한다.
즉, 스코프는 식별자 결정할 때 사용하는 규칙입니다.
스코프의 종류에는 크게 전역 스코프와 지역 스코프가 존재합니다.
스코프 체인은 스코프가 계층적으로 연결된 것을 의미하며, 변수를 참조할 때 Javascript는 스코프 체인을 통해 변수를 참조하는 코드의 스코프에서 시작하여 상위 스코프 방향으로 이동하며 선언한 변수를 검색합니다.
이때 상위 스코프에서 유효한 변수는 하위 스코프에서 자유롭게 참조할 수 있지만, 그 반대는 동작하지 않습니다.
렉시컬 스코프(정적 스코프)는 함수(블록)을 어디서 정의했는지에 따라 상위 스코프를 결정하는 것입니다.
반대로 동적 스코프는 함수(블록)을 어디서 호출했는지에 따라 함수의 상위 스코프를 결정합니다.