생각만 해도 어려운 기술면접, 😢

이제 원아우어로

시작하세요!

코 앞에 닥친 면접이 걱정된다면?
면접 1시간 전에 보는 가이드,‘원아우어’를 이용해보세요.

banner

🔥 이런 문제들이 있어요!

호이스팅에 대해서 설명해보세요

#웹 브라우저
#HTML

함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위의 최상단에 선언하는 것을 말한다 자바스크립트 함수는 실행되기 전에 함수 안에 필요한 변수값들을 모두 모아서 유효 범위의 최상단에 선언해요 즉 함수 내에서 아래쪽에 존재하는 내용 중 필요한 값들을 끌어올리는 것인데요. var 변수 선언과 함수선언문에서만 호이스팅이 일어나요 var 변수/함수의 선언만 위로 끌어 올려지며, 할당은 끌어 올려지지 않고 let/const 변수 선언과 함수표현식에서는 호이스팅이 발생하지 않아요

클로저는 무엇인가요? 원리와 왜 사용하는지 설명해 주세요

#웹 브라우저
#HTML

클로저는 독립적인 (자유) 변수를 가리키는 함수이다. 또는, 클로저 안에 정의된 함수는 만들어진 환경을 ‘기억한다’.

브라우저의 동작 원리를 간단하게 설명해주세요.

#웹 브라우저
#HTML

브라우저의 기본적인 역할은 HTML, CSS 명세에 따라 HTML 파일을 해석해서 표시하는 것이다. 브라우저를 구성하는 요소는 사용자 인터페이스, 브라우저 엔진(크롬, 사파리는 Webkit, 파이어폭스는 Gecko), 렌더링 엔진, 통신, UI 백엔드, 자바스크립트 해석기, 자료 저장소 등이 있다. 렌더링 엔진은 먼저 HTML 문서를 파싱해서 DOM 트리를 구축한다. 그리고 CSS 마크업을 파싱해서 앞서 구축한 DOM 트리와 함께 렌더링 트리를 만든다. 렌더링 트리는 화면에 보여줄 것들만 가지고 있는 트리로, 구축이 되면 순차적으로 화면에 배치한다. 부모에서 자식 순서로 배치는 진행된다. 배치가 완료되면 그리기를 시작한다.

스레드와 프로세스의 차이

#java

프로세스는 현재 실행되고 있는 프로그램을 프로세스라고 부르며, 이 프로세스 내에서 실행되고 있는 세부 작업 단위로 여러개의 스레드가 하나의 프로세스를 이루고 있다

SQL?

#database

SQL은 구조화 질의어라고 한다. 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)를 포함한 데이터베이스용 질의 언어의 일종으로 데이터베이스를 사용할 때 데이터베이스에 접근할 수 있는 데이터베이스 하부 언어를 말한다.

Escaping Closure의 개념이 무엇인가요?

#IOS

메서드 파라미터로 전달받은 closure 를 메서드의 라이프사이클 내에서 실행하여 끝내지 않고, 메서드 scope 의 외부에 전달하려 할 때는 해당 closure 를 escaping 해야한다. 해당 메서드의 호출이 끝난 이후에도 closure 는 메모리 어딘가에 저장되어야 하며, 이는 closure 안에서 사용된 outer object (self 와 같은) 에 weak 와 같은 레퍼런스타입을 사용해야할 수 있음을 주의하도록 한다 escaping 이 명시되어있지 않으면 기본적으로 non-escaping 이며, 이는 메서드의 실행이 끝나기 전에 closure 의 사용이 모두 완료됨을 보장하며, 따라서 closure 내에서 weak 을 굳이 사용하지 않아도 안전할 수 있음을 의미하기도 한다.

어떤 맥락에서 MLE를 선호합니까?

#기술 분석

어차피 분포함수만 알고 있으면 MLE 쓰는게 제일 “짱”이지 않냐고 농담조로 답변했을 때 나온 추가 질문이다. 간단히 비교하자면 OLS는 평균 (Mean)을 찾는 작업이고, MLE는 최빈값(Mode)를 찾는 작업이라고 할 수 있다. 정규분포를 비롯해 평균 = 최빈값 조건을 만족하는 많은 분포함수들에서 OLS와 MLE가 (거의) 같다. (“거의”가 빠지려면 분산 쪽에 대한 추가적인 가정이 있어야함) 그럼 분포함수가 좌우대칭으로 생겼으면 MLE를 쓴다고 대답해야할까? 아니다. 좀 더 정확하게 이야기하면, 데이터의 분포를 모를 때는 Least Square 가 제일 단순하면서도 틀릴 확률이 낮은 방법이고, 분포를 알 때는 무조건 MLE를 쓰는게 맞다. Poisson 분포는 오른쪽 skewedness가 심할 때 평균 = 최빈값이 깨지는거 아니냐고? 계산하는 사람 입장에서 평균이 더 필요한가? 아니면 최빈값이 더 필요한가

SVM은 Logit과 어떻게 다릅니까?

#기술 분석

Logit은 각각의 데이터 포인트들을 기준으로 Decision boundary와의 거리 or 오차를 계산하고, SVM은 0/1 그룹으로 나뉜 데이터, “그룹”을 기준으로 Decision boundary와의 거리를 계산한다. SVM이 수학적으로 더 Elegant한 부분이 많지만, Outlier들에 굉장히 취약할 수 밖에 없는 구조, Non-linear boundary를 잡아내기 위해 Kernel 함수를 써야하는 구조도 결국엔 data points vs. data groups 라는 철학적인 차이에서 비롯되었다.

연속 테스트를 설명하십시오.

#자동화

애플리케이션을 최종 사용자에게 제공하는 위의 지속적 통합 목표에서 주로 지속적 제공을 가능하게합니다. 이는 충분한 단위 테스트와 자동화 테스트 없이는 완료 될 수 없습니다. 따라서 코드가 생성되고 필요에 따라 수행하는 모든 개발자와 통합되었는지 검증해야합니다.

프로젝트에서 DevOps를 구현해야 할 때 어떻게 접근 하시겠습니까

#접근법

다음 접근 방식을 사용할 수 있지만 실제 프로젝트 시나리오에 따라 또는 조직마다 다를 수 있습니다. 스테이지 1: 모든 DevOps 구현의 경우 평균 5 개의 애플리케이션을 사용하여 약 2 ~ 3 주 동안 기존 프로세스 및 구현에 대한 평가는 AS-IS 프로세스를 측정하고 개선 영역을 식별하며 구현을위한 로드맵을 제공하는 데 필수적입니다. 일반적으로 DevOps 설계자와 같은 고위 프로필이이 평가를 수행해야합니다. 2 단계 : DevOps의 종단 간 작업을 보여주기 위해 파일럿 POC를 수행 할 수 있습니다. 최종 사용자가이를 수락하고 승인 한 후에 만 실제 구현, 관련된 프로젝트에 대한 계획을 전달 및 배포해야합니다. 필요한 교육도 프로세스 또는 도구에 전달해야합니다. DevOps 설계자, 엔지니어 및 테스터가이 단계에 참여해야합니다. 3 단계 : 이제 프로젝트는 계속되는 통합 / 배달 / 테스트 및 모니터링의 모든 구성 요소와 함께 DevOps 모드에 있어야합니다.