본문 바로가기
728x90

분류 전체보기66

bcrypt란? – 단방향 해시 알고리즘의 핵심 원리와 보안성(비밀번호가 포함된 DB가 털려도 안전한 이유) 🔐 bcrypt란? – 단방향 해시 알고리즘의 핵심 원리와 보안성웹서비스에서 사용자의 비밀번호를 안전하게 저장하는 방법으로 가장 널리 쓰이는 기술 중 하나가 bcrypt입니다.그런데 bcrypt는 단지 "해시함수"라고 하기엔 내부가 꽤 복잡하죠.이번 글에서는"bcrypt는 무엇이고 어떻게 동작하는가?"그리고"비밀번호가 포함된 DB가 털려도 안전한 이유는 뭔가?"에 대해 아주 쉽게 설명드립니다.✅ bcrypt는 무엇인가요?bcrypt는 비밀번호를 안전하게 저장하기 위해 고안된 단방향 해시 함수입니다.SHA256, SHA512와 같은 일반 해시 함수들과는 목적이 다릅니다.비교 항목일반 해시 함수 (SHA256 등)bcrypt용도무결성 확인, 빠른 처리비밀번호 저장용속도매우 빠름일부러 느림솔트 처리따로 붙여.. 2025. 4. 21.
솔트(Salt)란 무엇이고? 왜 꼭 써야 할까? 🔐 솔트(Salt)란? 왜 꼭 써야 할까?비밀번호를 저장할 때 흔히 해시 함수를 사용하지만,이때 솔트(Salt)를 함께 쓰지 않으면 심각한 보안 문제가 발생할 수 있어요.이번 글에서는:왜 솔트가 필요한지실제 사례안전한 구현 방법 (코드 예시 포함)솔트를 썼을 때와 안 썼을 때의 차이를 아주 쉽게 정리해드립니다.🧂 솔트(Salt)란?솔트란, 비밀번호에 무작위 문자열을 추가해서 해시를 다르게 만드는 기술입니다.같은 비밀번호라도 다른 결과값을 만들게 해주죠.☠️ 솔트를 안 쓰면 생기는 문제👤 사례: 철수와 영희가 같은 비밀번호를 쓰는 경우import hashlibpassword = "password123"# 솔트 없이 해시함수 적용hash1 = hashlib.sha256(password.encode()).. 2025. 4. 21.
DBMS 내부 구조와 효율적 데이터 관리 방식 현대의 DBMS(Database Management System)는 대규모 데이터를 안정적으로 저장하고, 빠르게 검색하며, 동시성을 보장하기 위해 다양한 내부 구조를 갖고 있습니다. 이번 글에서는 DB가 테이블의 데이터를 어떻게 저장하고, 인덱스(Index) 없이 데이터를 검색하는 방식, 인덱스를 통해 효율적으로 데이터에 접근하는 과정을 기술적으로 살펴보겠습니다. 마지막에는 대표적인 DBMS(Oracle, MySQL, PostgreSQL) 각각이 어떻게 데이터를 관리하고 인덱스를 구현하는지에 대한 특이한 점도 정리합니다.1. DB가 테이블의 데이터를 관리하는 방식 (Data Level 상세)1.1 페이지(블록) 단위의 저장관계형 DBMS는 테이블 데이터를 페이지(Page) 또는 블록(Block) 단위로 .. 2025. 3. 31.
SQL ORDER BY VS RANK 함수의 성능 비교: 인덱스 활용과 블록 I/O 관점 SQL 쿼리에서 ORDER BY는 단순히 결과를 정렬할 때 사용하고, RANK(Window Function)는 순위를 매길 때 사용합니다.하지만 대용량 테이블에서 이 둘을 잘못 사용하면 예상보다 큰 I/O와 CPU 자원(정렬 비용)이 들 수 있습니다.이 글에서는 ORDER BY와 RANK의 동작 원리를 심층적으로 살펴보고, 인덱스 존재 여부에 따른 Big(O) 시간 복잡도 및 효율적인 사용 사례를 정리해보겠습니다.1. ORDER BY vs RANK: 블록 읽기(Physical I/O) 방식 및 연산량(Big(O) 표기)1-a. 인덱싱된 컬럼 사용 시ORDER BY인덱스를 완전히 활용할 수 있는 경우예: ORDER BY 인덱스_컬럼DB 옵티마이저가 인덱스의 정렬 순서를 그대로 활용 → 별도의 정렬 연산 최.. 2025. 3. 28.
728x90