더 효율적이고 효과적으로 작성하기 위해서 TIL 템플릿을 변경했다!
코드잇 부트캠프의 한달 간의 Part1이 끝났다!(part1 회고 포스팅 예정) 따라서 팀 회고 + 피어 리뷰를 진행했다.그리고 새로운 팀이 결정되었다. 다음 주부터는 새로운 팀과의 Part2 시작~ 약 2달간 함께하며 프로젝트까지 하는 팀인데 재미있게 잘 했으면 좋겠다! ㅎㅎ
면담 질문 피드백
횡성수설 하는 느낌 & 차분하게 대답하기 → 질문이 이해가 안되면 물어보기
녹음하기!!
vscode extension Live Share 를 사용해서 라이브서버, 코드를 공유할 수 있다!
ISO date format
2023-04-15T08:11:20Z
과 같은 형식을 ISO date format이라고 한다.Date.prototype.toISOString()
const today = new Date('05 October 2011 14:48 UTC');
console.log(today.toISOString()); // Returns 2011-10-05T14:48:00.000Z
해시 테이블은 데이터를 저장하고 검색하기 위한 자료구조 중 하나입니다.
해시 테이블은 배열과 같은 형태로 데이터를 저장하며, 각 데이터를 식별하기 위한 키(key)와 실제 데이터를 담는 값(value)을 함께 저장한다. 그리고 이러한 데이터를 검색하기 위해 해시 함수(hash function)를 사용한다.
해시 테이블은 데이터 검색 시간이 매우 빠르다는 장점이 있다. 해시 함수를 통해 매우 빠르게 데이터의 위치를 찾을 수 있기 때문입니다. 따라서 해시 테이블은 매우 큰 데이터 집합에서 검색 속도를 높이기 위해 자주 사용된다.
하지만 해시 함수의 성능에 따라 검색 속도가 크게 달라질 수 있다. 충돌이 발생하는 경우에도 검색 속도가 저하될 수 있다.
충돌은 서로 다른 데이터가 같은 해시값을 갖는 경우를 말하며, 충돌을 처리하는 방법에 따라 해시 함수의 성능이 결정된다.
충돌을 처리하는 방법으로는 Separate Chaining, Open Addressing 등이 있고, 이에 따라 검색 속도와 메모리 사용량이 달라질 수 있다.
해시 함수는 입력으로 받은 데이터를 고정된 길이의 해시값으로 변환하는 함수입니다. 해시 함수는 일반적으로 입력 데이터의 길이와는 무관하게 항상 고정된 길이의 해시값을 반환한다. 이러한 특성은 해시 함수를 이용하여 해시 테이블과 같은 자료구조에서 빠른 검색을 가능하게 한다.
서로 다른 데이터가 같은 해시값을 갖는 경우를 말하며, 충돌을 처리하는 방법에 따라 해시 함수의 성능이 결정된다.
충돌 처리 방법
충돌 최소화 방법
적절한 저장공간 크기 선택
저장공간의 크기를 충분히 크게 설정하여 충돌이 최소화될 수 있도록 한다.
데이터의 무작위성 증가
데이터의 무작위성을 증가시켜서 충돌이 최소화될 수 있도록 한다. 데이터의 무작위성이 높아질수록 해시값이 고르게 분포되기 때문입니다. 예를 들어, 해시 함수에서 입력 데이터가 어떤 패턴을 가지고 있으면, 해당 패턴에 따라 해시값이 고르게 분포되지 않을 가능성이 있다. 이 경우, 입력 데이터가 해시 테이블에서 빈 공간을 찾을 때 충돌이 자주 발생할 수 있다. 이를 위해서는 해시 함수에 추가적인 데이터를 입력으로 받아서 무작위성을 증가시키는 방법 등을 이용할 수 있다.
어려움은 딱히 없었다.