Development/면접을 위한 2

[4월 23일] 오늘의 주제: DB

Transaction isolation level 종류 및 특징 READ UNCOMMITTED (레벨 0) SELECT 문장이 수행되는 동안 해당 데이터에 Shared Lock이 걸리는 계층 각 트랜잭션에서의 변경내용이 commit 이나 rollback 여부에 상관없이 다른 트랜잭션에서 값을 읽을 수 있다. Dirty Read 발생! 정합성에 문제가 많은 격리 수준이기 때문에 사용하지 않는 것을 권장 READ COMMITTED (레벨 1) SELECT 문장이 수행되는 동안 해당 데이터에 Shared Lock이 걸리지 않는 계층 트랜잭션이 수행되는 동안 다른 트랜잭션이 접근할 수 없어 대기하게 됨 Commit이 이루어진 트랜잭션만 조회 가능 Oracle, SQL Server에서 기본으로 사용 Non-R..

[4월 16일] 오늘의 주제: 네트워크

Q. 개발자로서 DNS를 구현한다면 어떤 자료구조를 선택하고 어떤 프로토콜을 선택할 것 같은지? A. Map Q. 맵으로 자료구조를 선택하였을 때 유저의 DNS 쿼리가 들어온다면 처리하느데 소요되는 시간 복잡도는? A. 최선의 경우 O(1) 이고 해시충돌이 일어날 경우 O(N) Q. 그럼 해시 충돌은 왜 일어날까요? A. 먼저 해시 함수란 임의의 길이를 갖는 메시지를 입력받아 고정된 길이의 해시값을 출력하는 함수 해시테이블은 해시함수(key값을 mod 연산)를 사용해서 나온 해시값을 key값으로 하고 데이터를 Value로 하여 테이블 형태로 만든다.여기서 해시값을 key값으로 해시 테이블에 insert 하려고 보니까 이미 데이터가 있는 경우를 해시충돌 이라고 한다. Q. 그렇다면 충돌을 해결하기 위한 ..