기술 면접 질문(3)

cptkuk91·2022년 8월 9일
1

Algorithm

목록 보기
51/161

1. ES6 특징에 대해서 설명해주세요.

let, const의 추가: 기존에는 var를 통해서 선언하고 할당했지만, ES6부터는 let, const를 지원합니다. let 재선언이 불가하고, 재할당이 가능합니다, const는 재선언, 재할당이 불가능합니다. 두 선언 키워드를 통해 좀 더 예측 가능한 코드를 작성할 수 있게 되었습니다.

템플릿 리터럴: 백틱을 통해 지원합니다. 자바스크립트 표현식을 사용하고 싶다면 해당 변수를 ${}로 묶어 표현이 가능합니다.

화살표 함수: 함수 표현식을 화살표 함수를 통해 간결하게 표현 가능해졌습니다.

const add = (a, b) => {
	return a + b;
}

구조 분해 할당: 객체나 배열에서 사용됩니다. 값을 해체하고, 각각 개별 값을 변수에 새로 할당하는 과정을 의미합니다.

const arr = [1, 2, 3];
const [one, two, three] = arr;

console.log(one); // 1
console.log(two); // 2
console.log(three); // 3

Module: API부분만 외부에 노출하여 코드의 재사용성을 증가시켰습니다.

2. 개발자 워라밸에 대한 본인의 생각을 말씀해주세요.

Work and Life Balance를 맞추는것도 중요하지만, 첫 사회생활을 워라밸 없이 시작했습니다. 현재도 워라밸에 대해서 중요하게 생각하지 않습니다.

3. async, await 설명 (쓰기 쉬운 비동기 코드를 작성할 수 있습니다.)

Promise를 좀 더 편하게 사용할 수 있습니다.
async는 function 앞에 위치합니다. function 앞에 async를 붙이면 해당 함수는 항상 Promise를 반환합니다.

await은 async 함수 안에서만 작동합니다.
await 키워드를 만나면 프라미스가 처리될 때까지 기다립니다.
아래는 1초 후 이행되는 프라미스 예시입니다.
프라미스가 처리되길 기다리는 동안엔 엔진이 다른 이벤트 처리를 할 수 있기 때문에 리소스 낭비가 없습니다.

async function test() {
	let waiting = new Promise((resolve, reject) => {
    	setTimeout(() => resolve("완료", 1000);
    });
    
    let result = await waiting;
    
    alret(result); // 완료
}
test();

await가 에러를 던지면 try..catch를 사용해 에러핸들링이 가능합니다.

async function f() {
	try{
    	let response = await fetch("https://kakao.gg");
    } catch(err) {
    	console.log(err); // 에러 반환
    }
}

async/await을 사용하면 await가 대기를 처리해주기 때문에 .then이 필요없습니다. 더하면 try..catch를 사용할 수 있는 장점이 생깁니다. promise.then을 사용하는 것보다 async/await을 사용하는 것이 일반적으로 편리합니다.

4. AWS 사용 경험과 AWS Service에 대한 개인의 생각을 얘기해주세요.

EC2, S3, Route53, CloudFront, AWS Certificate, RDS, Lambda를 사용했고, 각 기능에 맞춰 배포 용도로만 사용해봤습니다. (잘못된 답변, 단 한 번도 왜 AWS만 사용해야하는 가에 대해서 생각해본적이 없다. 왜 AWS일까?)

AWS Service 이점으로는 규모의 경제로 얻는 이점이 있습니다. 많은 고객이 사용하고 있기 때문에 요금이 낮아지는 효과로 이어집니다. 또한 속도 및 민첩성 향상이라는 이점을 얻을 수 있습니다. 속도 및 민첩성 향상은 비용 절감으로 이어집니다. 운영 및 유지관리에 대한 투자가 불필요합니다. AWS에서 다양한 서비스를 제공하고 유지관리하기 때문에 힘든 작업을 AWS에서 대신하기 때문입니다. 마지막으로 전 세계에 배포, 세계 곳곳 리전에서 쉽게 배포할 수 있습니다. 이는 최소 비용으로 더 나은 사용 환경을 사용자에게 제공할 수 있습니다.

5. 개발 실력 향상을 위해 어떤 노력을 하는지 얘기해주세요.

매일 알고리즘 테스트 사이트를 통해 알고리즘 문제를 풀고 있습니다. 또한 패스트캠퍼스, 인프런과 같은 강의/강좌를 통해 기술 스택에 대한 이해도를 높입니다.

6. 본인의 스트레스 푸는 방법에 대해서 얘기해주세요.

매일 저녁 운동을 1시간 이상합니다. 주말에는 서울 근교 맛집 탐방을 통해 스트레스를 풀고 있습니다.

7. 영어 잘하시나요?

기존 업무 특성상 외국인 동료들과 함께 일했습니다. 모국어와 같이 영어를 구사할 수 없지만, 업무를 진행함에 있어서 영어가 문제된 적은 없습니다. (동료들 또한 모국어가 영어가 아니였습니다. 인도, 필리핀, 베트남 등의 동료와 함께 일했고, 영어 사용에 대한 거부감 및 업무 진행에 문제는 없었습니다.)

8. 업무 이외에 본인이 다른 사람들보다 잘한다고 생각하는 걸 얘기해주세요.

배드민턴을 오래 쳤습니다. 일반적으로 취미생활로 배드민턴을 즐기는 분들보다 잘할 수 있습니다.

9. 문제에 막힌 경우 어떤 방법으로 해결하시나요.

우선 구글 검색, Stackoverflow를 활용해 관련된 문제가 있는지 검색합니다. 검색을 통해 문제 해결이 불가능한 경우 Youtube 탐색 및 유료 강의(패스트 캠퍼스 등)와 같은 곳에서 문제를 해결할 수 있는 방법이 있다면 결제를 해서라도 문제를 해결하려고 노력합니다.

10. 개발 이외에 관심있게 공부하는 분야 또는 공부하고 싶은 분야에 대해서 얘기해주세요.

현재 개발 실력이 훌륭하다고 얘기할 수 없기 때문에 개발 공부에 집중하고 있습니다. 실제로도 매일 알고리즘 문제를 풀고 개발 공부에 집중하고 있습니다. => (그럼에도 불구하고 다른 분야에 대한 공부를 한다면?) => 주말에 단순히 맛집 탐방을 다니는 게 아니라 임장하면서 맛집을 탐방합니다. 다양한 곳을 방문하며 부동산 및 금융에 대해 관심있기 때문에 차후 공부하려고 합니다.

11. 회사 선택 기준 본인 생각에 대해서 얘기해주세요. ex) 워라밸, 연봉 등

회사를 선택함에 있어서 산업 분야를 금융쪽으로 검색해 지원하고 있습니다. => (특별히 금융과 관련 된 회사를 선택해야하는 이유가 있나요?) => 재테크에 관심이 많아 주식 투자 및 다양한 방법으로 금융 자산을 늘리려고 노력합니다. 전문적으로 주식 투자를 하는 건 아닙니다. => (회사를 알게 된 경로) => 금융 쪽 분야에서 필요한 기술이라 생각했고 다양한 검색을 통해 서비스를 확인했습니다. (서비스 설명..) => (워라밸, 연봉 과 관련해 중요하게 생각하는 부분은 없는지..?) => 워라밸은 중요하게 생각하지 않습니다. 워라밸 보다는 목표를 정하고 목표 달성을 위해 업무를 진행하는 게 좋다고 생각합니다.

12. 관계형 데이터베이스와 비관계형 데이터베이스 장단점에 대해서 설명해주세요. 다이나모 디비에 대해서 알고 있는지?

비관계형 데이터베이스의 경우 확장성 측면에 있어 훌륭하다고 생각합니다. (수평적 확장을 하기 때문에 수직적 확장보다 비용이 저렴합니다.)

관계형 데이터베이스의 경우 상태 변화를 수행하는 과정에서 안전성을 보장하기 때문에 안전하다고 생각합니다. => (안전성이란 무엇을 뜻하나요?) => 상태 변화에 있어 상호 작용을 해 데이터 처리시 예외적인 상황을 줄이고 무결성을 보호할 수 있습니다.

비관계형 데이터베이스의 경우 Mongo DB를 사용해봤고, 다이나모 디비는 들어봤을 뿐 사용 경험은 없습니다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글