B+트리를 활용하여 DB 인덱싱하기
·
Computer Science
오늘은 데이터베이스 성능 최적화에 사용되는 인덱싱 기법에 대해서 소개하려고 합니다. 인덱싱으로 쓰이는 자료구조인 B+트리에 대해 알아보고, 구조와 동작하는 방식에 대해 살펴보겠습니다. 목차1. B+트리 개념 및 특성2. 트리의 구조3. 분석 #1 B+트리 개념 및 특성 B+트리란 데이터베이스에서 데이터를 빠르고 효율적으로 관리할 수 있게 해주는 자료구조입니다. 데이터베이스에서 인덱싱을 할 때 가장 많이 사용되는 방식이에요. 그렇다면 B+트리를 많이 사용하는 이유가 뭘까요? 시간복잡도가 O(log n)으로 빠르다! B+ 트리는 내부 노드가 자식 노드를 여러 개를 가질 수 있는 높은 팬아웃을 가지고 있기 때문입니다. 자식 노드가 많아지다 보니, 더 많은 데이터를 노드에 할당할 수 있게 되고, 이로 ..
대규모 데이터베이스 성능 향상을 위한 샤딩 알고리즘
·
Computer Science
저는 지금껏 데이터베이스 성능 향상을 위한 방법들에 대해 포스팅을 해왔는데요. 캐싱, 정규화 등의 방법도 중요하지만, 오늘은 특히 더 중요한 대규모적으로 운영하는 환경에서 데이터베이스의 데이터를 분산하고 샤딩하는 방법에 대해 이야기해보려고 합니다. 목차 1. 데이터베이스 샤딩(Sharding)2. 샤딩의 종류3. 컨시스턴트 해싱(Consistent Hashing)4. 간단한 코드 구현5. 분석 #1 데이터베이스 샤딩 대규모 데이터베이스를 운영하는 경우, 단일 서버에 데이터를 모두 저장해서 사용하기에는 성능이 좋지 못하고 비효율적입니다. 심지어는 부하를 일으키고 서버에 장애를 유발할 수 있습니다. 이를 방지하기 위해 대규모적으로 운영하는 기업들은 샤딩(Sharding)을 필수적으로 사용하고 있습..
데이터베이스 정규화와 성능 최적화 전략
·
Computer Science
최근에 컴퓨터, 인터넷 기술이 발달하면서 처리해야 하는 정보들이 급증하고 있습니다. 우리가 인터넷으로 하는 대부분의 사이트들은 효율적으로 정보를 저장하고 관리하는데 큰 노력을 기울이고 있습니다. 이러한 상황에서 등장한 데이터베이스는 그 어느 때보다 중요해졌습니다. 방대한 양의 데이터를 체계적으로 관리하고 접근할 수 있도록 해주기 때문에 우리는 데이터베이스에 대해 더욱 깊이 공부하고 끊임없이 발전해나가야 합니다. 현재 우리는 데이터베이스를 사용해서 정보를 저장하고 있지만, 정보화 시대인 만큼, 우리는 앞으로 더욱 늘어날 데이터들을 더 체계적으로 관리해야 합니다. 이번에는 데이터베이스를 관리할 때, 어떻게 더 효율적으로 구축해야 하는지에 대해 알아보겠습니다. 목차 1. 데이터베이스 구조2. 정규화3...
BruteForce 공격 방어를 위한 해싱 알고리즘 #2
·
Computer Science
지난 포스팅에서는 현실에서 사용하는 암호화 알고리즘들과 그 장단점을 살펴보고, 로그인 기능에 적합한 해시 알고리즘에 대해 알아보았는데요. 이번에는 해시 알고리즘들이 어떤 종류가 있고, 각각의 장단점에 대해 알아보도록 하겠습니다. 목차1. 문제 시나리오 분석2. 해시 알고리즘 종류3. BruteForce 공격 방어 알고리즘4. 분석 #1 문제 시나리오 분석 시나리오 : 한 회사가 SHA-2 알고리즘을 이용하여 로그인 시스템을 구축함. 해시 알고리즘을 사용했기 때문에 보안 취약점을 간과하고 운영을 계속함. 악의적인 사용자가 BruteForce 공격을 통해 비밀번호를 유출시킴. 위에 대응하기 위해 해시 알고리즘을 다른 종류의 알고리즘으로 대체하려고 함. 요약해시 알고리즘이더라도 보안 취약점이 존재함...
BruteForce 공격 방어를 위한 해싱 알고리즘 #1
·
Computer Science
지난 프로젝트인 웹 로그인 성능 및 보안 개선 프로젝트를 진행을 하면서 실제로 사용되는 웹사이트에는 성능과 보안이 굉장히 중요하다는 것을 계속해서 언급을 해왔었는데요. 특히, 해싱 알고리즘의 적용에 대해 중점적으로 다루었습니다. 왜 해싱 알고리즘이 비밀번호 저장에 사용이 되는 것일까요? 이번에는 해싱 알고리즘의 중요성과 기존의 다른 암호화 알고리즘에 대해 알아보겠습니다. 목차1. 문제 시나리오 분석2. 암호화 알고리즘 비교3. 분석 #1 문제 시나리오 분석 시나리오 : 어느 회사의 DB 개발자가 비밀번호를 평문으로 저장함. 이를 암호화하지 않고 운영을 하다가는 데이터베이스 파일이 유출될 경우, 평문으로 저장된 비밀번호가 악의적인 사용자에게 전달됨. 또는 회사의 개발자가 마음대로 타인의 개인정보를..