[개발자되기: 기술면접] Day-47

Kyoorim LEE·2022년 7월 20일
0

재귀

재귀를 활용하기 좋은 상황은 언제인지 예시 들어 설명해주세요

재귀란 자기 자신을 호출하는 것을 일컫는다. 즉 어떤 함수에서 자기 자신을 다시 호출하여 문제를 푸는 것을 재귀로 문제를 해결했다고 한다.
이를 통해 문제를 더 작게 쪼갤 수 있고, 더 이상 쪼갤 수 없을때까지 가장 작은 단위로 쪼개서 문제를 푸는 것이다. (흔히 재귀하면 러시아의 마트료시카 인형이 자주 언급되는 이유가 이 때문이다.)

활용하기 좋은 대표적인 상황으로는 주어진 문제를 비슷한 구조의 더 작은 문제로 나눠서 풀 수 있는 경우이다.
피보나치 수열 구할 때를 예시로 들 수 있다. 이전 두 요소의 합이 다음 요소가 되는 수열로 정의되는 것이 피보나치 수열.

function fibonacci라고 할 때,
처음 시작되는 1,2번 요소는 이전 두 요소가 없기 때문에 베이스 케이스로 따로 떼어내고,
그 이후부터는 fibonnaci(n-1) + fibonacci(n-2) 를 리턴하여 답을 풀 수 있다.

UI/UX

UI, UX의 개념과 두 개념의 관계에 대해서 설명해주세요.

UI는 키보드나 마우스처럼 사람들이 컴퓨터와 상호작용할 수 있는 그 접점에 있는 모든요소/시스템을 말함. 반면 UX는 User experience의 약자로 사용자가 직접 제품이나 서비스를 이용하면서 느끼고 생각하는 총체적 경험을 말함

결국 UX라는 큰 범주 안에 UI가 포함되는 형국이다.
이를 평가하기위한 참고할 수 있는 기준들이 있다. (피터모빌의 벌집모형 - 유용성, 사용성, 매력성, 접근성 등 평가 // 제이콥 닐슨의 평가기준 - 상태의 가시성 제공 여부:업로드 현황, 사용자 제어 및 자유: 취소버튼 뒤로가기 가능 여부 등)

Custom Component

Styled Components를 사용해보면서 느낀 장점을 이야기해주세요.

useRef가 필요한 상황을 예시를 들어 설명해주세요.

Redux

상태관리 라이브러리의 필요성에 대해서 설명해주세요.

Redux의 주요 개념들과 연결 관계를 설명해주세요.

웹 표준 & 웹 접근성

Semantic HTML의 필요성을 예시를 들어 설명해주세요.

네트워크 심화

IP 프로토콜의 한계에 대해서 설명해주세요.

HTTP 프로토콜의 특징에 대해 설명해주세요.

웹에서 데이터를 주고받을 때 지켜야하는 규약을 일컬음
HTTP프로토콜의 큰 특징으로는 무상태성과 비연결성이 있다
무상태성이란, 클라이언트와 서버가 HTTP로 통신하는 과정에서 서버가 클라이언트의 상태를 보존하지 않는 것을 일컬음. 이의 장점은 그 서버 공간 활용성이 좋아져서 서버 확장성이 개선될 수 있음. 반면 단점은 클라이언트에 대한 정보를 매번 추가적으로 전송해줘야한다는 점.

비연결성이란, HTTP는 실제 요청을 주고받을때만 연결을 유지하고 그 이외에는 기본적으로 연결을 유지하고 있지 않음. 이는 트래픽이 많지 않고 빠른 응답을 제공할 수 있는 경우에는 효율적. 하지만 트래픽이 많거나 큰 규모의 서비스를 운영하는 경우이는 적합하지 않음.

캐시 검증 헤더의 종류와 사용법에 대해서 설명해주세요.

인증 / 보안

Hashing에 대해서 설명해주세요.

웹 인증 및 보안에 관련한 개념임.
어떤 문자열에 대해서 '임의의 연산'을 적용하여 다른 문자열로 변환시켜서 이 정보를 알고있는 사람을 제외하고는 이해할 수 없도록해서 정보를 관리하는 것을 일컬음.

메세지 자체를 별도의 암호화알고리즘을 이용하는 것은 해싱과 다른 것.
즉, 암호화된 메세지를 다시 해시를 이용해서 변환한 다음 데이터베이스에 저장하는 것을 일컫습니다.

이런 해싱의 조건은,
해시 값을 계산하는데 오래걸리지 않아야 하고
모든 값이 고유한 해시값을 가져서 패턴을 읽히는 등의 유추가 가능하지 않도록 해야함
원래 암호가 아주 사소하게 변경된 경우라도 해시값은 완전히 달라져야함

Cookie의 MaxAge, Expires 옵션이 무엇인지, 설정하지 않으면 어떻게 되는지 설명해주세요.

profile
oneThing

0개의 댓글