Hash Function 데이터를 효율적으로 관리하기 위해서 임의의 길이를 가진 데이터 → 고정된 길이의 데이터로 매핑해주는 단방향 함수 특정 데이터에 대한 Hash Function을 적용해서 도출된 값을 Hash라고 한다 인터스텔라 → 20033 헬로우월드 → 12345 010-1234-4321 → 51231 ... Perfect Hash Function 서로 다른 객체 X, Y에 대해서 X.equals(Y)가 거짓이면 X.hashCode() != Y.hashCode()임을 보장할 수 있는 해시 함수 자료형 관점에서 값이 2개밖에 없는 Boolean이나 값 자체를 해시 함수로 표현할 수 있는 Integer, Long, ..과 같은 자료형들은 완전한 해시 함수를 구현할 수 있다 그러나 String이나 임..
CORS Cross-Origin Resource Sharing (CORS) - HTTP | MDN Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources. CORS also relies on a mechanism by which developer.mozilla.org 웹 개발을 하다보면 언젠가 한번쯤은 CORS 관련 오류를 만날 수 밖에 없다 그러면 CORS란 뭘까? CORS (Cr..
Race Condition 멀티 쓰레드 프로그래밍을 하게 된다면 Race Condition이라는 말은 누구나 한번쯤은 듣는 단어이다 그러면 Race Condition이란 무엇일까? 멀티 쓰레드 환경에서 공유 자원에 대한 Write Operation을 진행할 때 순서나 여러 조건에 의해서 결과값에 영향을 줄 수 있는 상황 여기서 결과값에 영향을 줄 수 있는 상황이란 다음과 같은 상황을 의미한다 공유 자원 count = 10이 존재 → ThreadA = count++ 작업 진행 → ThreadB = count-- 작업 진행 ThreadA ThreadB RegisterA = count (10) RegisterB = count (10) RegisterA = RegisterA + 1 (11) RegisterB =..
Index 일반적으로 서점이나 yes24와 같은곳에서 책을 구매하게 되면 책에는 목차와 색인이 존재한다 색인이 존재하는 이유는 특정 키워드가 포함된 내용을 빨리 찾기 위해서이고 색인을 활용하면 책의 모든 페이지를 스캔할 필요가 없다 Database의 Index도 마찬가지이다 Index란 Database의 데이터 & 데이터의 위치를 추가적인 저장 공간을 활용해서 보관하고 있다 Index를 활용하게 되면 조건에 맞는 데이터들을 굉장히 빠른 시간내에 조회할 수 있다 간단한 예시를 통해서 Index에 대한 개념을 알아보자 모든 설명은 MySQL 기준 위의 같은 Member 테이블이 존재하고 데이터가 약 100만개정도 존재한다고 가정하자 SELECT * FROM member WHERE first_name = 'J..
HTTP의 Stateless HTTP 프로토콜은 기본적으로 요청 ↔ 응답을 진행한 후 이전 통신에 대한 상태를 저장하지 않는 Stateless한 구조를 가지고 있다 HTTP가 Stateless함에 따라 다음과 같은 이점이 존재한다 상태를 유지하기 위한 오버헤드가 줄어든다 상태를 유지하지 않기 때문에 확장성(Scale Out)이 높다 하지만 어느 특정 상황에서는 Client측의 여러 정보들을 Server측에서 기억해야 할 필요가 있어졌고 Client-Server간의 상태를 Stateful하게 유지해야 할 필요성이 높아졌다 특정 사용자 접속 제한 사용자에 따른 추천 시스템 ... 쿠키 쿠키는 HTTP의 Stateless함을 보완하기 위해서 Client측에 일시적/영구적으로 저장되는 정보이다 특징 웹 브라우저..