[TIL] 240924 (커리어톤 인성, 기술 면접 예상 질문 답변 / 프로그래머스 flag에 따라 다른 값 반환하기)

·2024년 9월 24일

TIL

목록 보기
168/268
post-thumbnail

오늘 한 일

  • 커리어톤
    • 인성 면접 예상 질문 답변 10개
    • 기술 면접 예상 질문 답변 10개
    • 현직자 커피챗 (20:30~21:00)
  • 알고리즘 코드카타
    • flag에 따라 다른 값 반환하기

기술 면접 예상 질문

JavaScript의 데이터 타입과 TypeScript의 데이터 타입에 대해 설명해주세요.
값에 따라 데이터 타입이 자동으로 결정됩니다. 주요 데이터 타입으로는 number, string, boolean 등 원시 타입과 객체, 배열, 함수같은 참조 타입이 있습니다. JavaScript에서는 런타임에 타입이 결정되므로 런타임에 타입 오류가 발생할 수 있습니다.
TypeScript는 정적 타입 언어로, 컴파일 단계에서 타입을 체크하여 오류를 미리 발견할 수 있습니다. JavaScript의 모든 데이터 타입을 포함하면서 tuple, enum, any 등의 추가적인 타입을 제공합니다. 이런 추가 타입을 통해 안전하고 유지보수하기 쉬운 코드를 작성할 수 있습니다.

프레임워크와 라이브러리의 차이점에 대해 설명해주세요.
간단하게 말하면 제어 흐름에 대한 주도성이 어디에 있는가가 차이입니다.
라이브러리는 특정 기능을 수행하는 코드의 모음이고, 개발자가 필요할 때 호출해서 사용합니다.
반면에 프레임워크는 전체적인 구조와 흐름을 제공하는 틀입니다. 개발자가 프레임워크의 규칙과 흐름을 따르게 되고, 주도권은 프레임워크가 갖습니다.
정리하면, 라이브러리는 개발자가 필요한 기능을 호출하는 반면, 프레임워크는 전체 구조와 흐름을 제공하며 개발자의 코드를 호출한다는 차이점이 있습니다.

JavaScript에서 =====의 차이를 설명해주세요.
==(동등 연산자)는 상대적으로 약하게 비교합니다. 타입이 다르더라도 내용이 같으면 true로 인식합니다.
예를 들어 숫자 1과 문자 1을 비교하면 true, 0과 nullish한 값을 비교해도 true가 나옵니다.
그러나 ===(일치 연산자)는 엄격하게 타입을 비교합니다. 문자 1과 숫자 1을 비교할 경우 false가 나옵니다.
저는 보통 일반적으로 정확한 비교를 위해 ===를 사용합니다.

let, const, var의 차이점에 대해 설명해주세요.
var는 계속 중복 선언이 가능한 게 가장 큰 차이점이고, 이 특성이 문제가 생길 수 있기 때문에 es6에서 let과 const가 생겼습니다. let은 중복 선언이 불가능하지만 재할당이 가능한 변수이고, const는 중복 선언 및 재할당 모두 불가능한 상수입니다. 현재는 유지 보수가 용이하여 let과 const만 사용하는 편입니다.

JavaScript의 클로저(Closure)에 대해 설명해 주세요.
데이터 은닉화 및 캡슐화를 구현할 수 있는 개념입니다. 자바스크립트에서 작업이 종료되어 호출 스택에서 빠져나오게 되면 참조가 사라져 메모리에서 사라지는데, 호출 스택에서 빠져나왔지만 특정 행동에 의해 참조가 사라지지 않을 경우 일종의 유령 상태가 됩니다. 남용할 경우 메모리가 누수될 수 있는 단점도 있습니다.

자바스크립트에서 동기와 비동기의 차이에 대해 설명해주세요.
자바스크립트에서 동기는 작업을 순서대로 실행하는 것을 뜻합니다. 반면에 비동기 처리는 한 작업이 완료되기까지 기다리지 않고 바로 다음 작업을 실행할 수 있습니다. 자바스크립트에서는 async, await을 사용하여 비동기 코드를 동기 코드처럼 작성할 수 있습니다.

JavaScript에서 this 키워드의 역할에 대해 설명해주세요.
this는 호출되는 상황마다 서로 다른 값을 참조하고 있어 혼동하기 쉬운 값입니다. 일반 함수를 호출할 때는 전역 객체인 window를 뜻하고, 객체의 메서드를 호출할 때는 해당 객체를 의미합니다. 콜백 함수는 함수가 실제로 호출되는 상황에 따라 달라집니다. 마지막으로 화살표 함수는 생성된 함수의 스코프에 따라 달라집니다.

CSS의 display: nonevisibility: hidden의 차이점은 무엇인가요?
두 속성 다 요소를 화면에서 보이지 않게 하는 것이지만 display none은 아예 해당 요소를 없애는 것인 반면에 visibility hidden은 요소는 그대로 있고 투명하게 만들어준다는 차이점이 있습니다.

React의 Virtual DOM이란 무엇인가요?
Virtual Dom 즉 가상 돔은 실제 돔의 가벼운 복사본으로, 리액트에서는 상태가 업데이트될 때 빠르게 가상 돔을 업데이트하고 실제 돔과 비교하여 변경된 부분만 반영함으로써 불필요한 리소스 사용을 최소화하고 성능을 향상시킵니다.

React에서 key 속성이 중요한 이유를 설명해 주세요.
key 를 넣어주는 이유는 가상 돔에서 어떤 요소가 어디에 있고, 어떻게 순서가 바뀌었는지 등의 순서와 변화를 제대로 감지할 수 있기 때문입니다. 때문에 동일한 key값을 갖게되면 각 요소를 제대로 식별할 수 없기 때문에 유니크한 id를 할당해야 합니다.

알고리즘 코드카타

flag에 따라 다른 값 반환하기

문제

두 정수 a, b와 boolean 변수 flag가 매개변수로 주어질 때, flag가 true면 a + b를 false면 a - b를 return 하는 solution 함수를 작성해 주세요.

풀이

function solution(a, b, flag) {
  return flag ? a + b : a - b;
}

물음표 연산자를 이용하여 아주 간단하게 풀 수 있는 문제였다.

profile
웹 프론트엔드 개발자

0개의 댓글