기술면접 2

단방향 해시 함수 보완하기 - 솔팅

단방향 해시 함수 보통 프로그래머는 아래의 두 가지 중 한 가지로 사용자의 패스워드를 저장한다. 단순 텍스트(plain text) 단방향 해시 함수(one-way hash function)의 다이제스트(digest) 단순 텍스트로 패스워드를 저장하는 것은 범죄를 저지르는 것이나 다름없다. 아직도 이런 방법을 사용하고 있다면 지금 당장 변경해야 한다. 단방향 해시 함수는 수학적인 연산을 통해 원본 메시지를 변환하여 암호화된 메시지인 다이제스트를 생성한다. 원본 메시지를 알면 암호화된 메시지를 구하기는 쉽지만 암호화된 메시지로는 원본 메시지를 구할 수 없어야 하며 이를 '단방향성'이라고 한다. 예를 들어 사용자의 패스워드가 "hunter2"라면 이 문자열을 흔히 사용하는 해시 알고리즘인 SHA-256으로 인..

기술면접 2022.11.10

기술면접 #1 JavaScript Promise.all(), 순수함수

JavaScript Promise.all()의 기능과 필요한 이유에 대해서 설명해주세요. Promise.all 메서드는 여러 개의 비동기 처리를 모두 병렬(parallel) 처리할 때 사용한다. Promise.all 메서드는 프로미스를 요소로 갖는 배열 등의 순회가능한(iterable)인수로 전달받는다. 그리고 전달받은 모든 프로미스가 모두 fulfilled 상태가 되면 모든 처리 결과를 배열에 저장해 새로운 프로미스를 반환한다. 여러 프로미스의 결과를 집계할 때 유용하게 사용된다. javascript에서 동시성을 달성하는 방법 중 하나이다. 순수함수란 무엇인가요? 불변성과 사이드 이펙트와 연결하여 설명해주세요. 어떤 외부 상태에 의존하지도 않고 변경하지도 않는, 즉 부수 효과(side effect)가 ..

기술면접 2022.06.22