면접에서 질문을 받았을 때 제대로 대답하지 못한 개념이다.내가 평소에 관심을 가지지 않은 분야이긴하지만 알고 싶었던 분야이므로, 공부 겸 정리해보았다.우리는 웹 페이지를 어떻게 보는가?로컬의 HTML 파일 -> 브라우저로 열게됨 (폴더의 경로 = 웹페이지 경로) 하나의 컴퓨터, 로컬에서 웹페이지를 열 때에는 이 로컬에 있는 브라우저를 그대로 열 수 있음즉, 파일의 위치만 알면됨 근데 우리의 컴퓨터가 아닌, 다른 사람의 브라우저, 컴퓨터로 HTML 열 때는? remote URL(외부에 위치한 HTML을 가리키는 경로)을 알아야함.브라우저에 입력해서 들어가볼 수 있음 로컬(내부)에서 열면 file 프로토콜, remote URL(외부)은 http 프로토콜 사용프로토콜: 컴퓨터와 컴퓨터 사이, 또는 한 장치와 ..
DB 설계에서 가장 중요한 인덱스에 대해서 아는게 너무 없는 것 같아 개인적으로 공부한 내용들이다. 데이터 구조인덱스는 왜 B+Tree를 사용하고 있을까? 이 질문에 대한 해답을 찾기에 앞서, 탐색에 용이한 데이터 구조들과 특징들에 대해 살펴보자. Binary Search Tree(BST) 이진 탐색 트리(Binary Search Tree, BST)는 이진 탐색과 연결 리스트(Linked List)의 장점을 결합한 자료구조이다.이진탐색장점: 탐색에 소요되는 시간복잡도가 O(log N)으로 빠르다.연결 리스트장점: 자료 입력, 삭제에 필요한 시간 복잡도가 O(1). (하지만 맨 앞 또는 맨 뒤의 데이터에 대해서만 시간 복잡도가 O(1)이고 특정 노드 다음에 삽입, 삭제가 이루어지는 경우에는 O(n+1) ..
DB팀과 대화를 하면서 알게된, mongoDB에서 대용량 데이터 pagnination 처리(페이징 처리)를 할 때 주의할 점에 대해서 정리한다. mongo 쿼리로 페이지네이션 처리를 하는 가장 간단한 방법은 아마 아래와 같을 것입니다.1. 전체 데이터 개수를 구해서, 원하는 사이즈로 나눠서 순회를 돌린다.2. 쿼리는 sort, skip, limit 순서대로 사용한다. mongo에 대용량 데이터를 읽거나 쓸 때 모두 필요한 방법입니다.아무래도 한번에 많은 데이터를 불러오면, API 서버와 MongoDB 서버 모두에서 과도한 메모리를 사용하게 되고, 시스템이 다운되거나 성능이 저하될 수 있습니다. 그러나 여기서 skip 연산자를 무분별하게 사용할 때도 성능 저하가 발생될 수 있다는걸 알고 있나요? 저는 몰랐..
실무에서 소수점을 중요하게 다루는 작업이 많이 이뤄진다. 실수 계산의 정확도가 떨어지는 경우를 발견하고, 해결하는 작업을 하면서 다시금 부동 소수점에 대해 공부를 하게 되었고 이를 정리한 글이다. 컴퓨터는 0과 1로 이루어진 기계어를 사용한다. 인간은 수를 표현할 때 기본적으로 10진법을 사용하지만, 컴퓨터는 0과 1을 사용한 2진법을 사용한다. 그러므로 컴퓨터가 수를 표현하는 법에 대해서 얘기하려면 10진수를 2진수로 바꾸는 방법에 대해 알아둘 필요가 있다. 이진 기수법 0, 1, 10, 11, 100, 101, 110, 111, 1000, ... 이런 식으로 10진수 기준으로 2가 나올 차례가 되면 2를 쓰는 대신 자릿수를 늘려주는 것이다. 10진수에서는 10^n에 해당하는 수가 될 때마다 자릿수가 ..