728x90
안녕하세요 logro 입니다 :)
오늘은 해시 알고리즘(Hash Algorithm) 이라는 개념을 함께 살펴볼 거예요.
이름은 좀 어려워 보일 수 있지만, 사실 일상에서도 비슷한 개념을 자주 쓰고 있답니다!
🧩 해시 알고리즘이란?
해시 알고리즘은 어떤 데이터를 **고정된 길이의 문자열(해시값)**로 바꿔주는 함수예요.
쉽게 말해, 긴 글을 요약해서 짧은 코드처럼 만들어주는 거예요.
예를 들어:
- "hello" 라는 문자열을 해시 알고리즘에 넣으면 → 5d41402abc4b2a76b9719d911017c592 같은 해시값이 나와요.
- 이 값은 마치 "hello"의 디지털 지문처럼 고유하답니다!
🎯 해시의 특징 3가지
- 고정된 길이: 어떤 길이의 입력이든 해시값은 항상 같은 길이!
- 한 방향성: 해시값으로 원래 데이터를 알아내는 건 거의 불가능해요.
- 충돌 최소화: 서로 다른 입력은 다른 해시값을 만들어야 해요. 물론 완전히 피할 수는 없지만, 아주 희박하게 만들어주는 게 중요하죠.
🛠️ 해시 알고리즘, 어디에 쓰일까요?
생각보다 우리 주변에 많이 쓰이고 있어요!
- 비밀번호 저장 🔐
- 사용자 비밀번호를 직접 저장하는 건 위험해요!
- 그래서 해시값으로 바꿔서 저장해요.
- 예: qwer1234 → 81dc9bdb52d04dc20036dbd8313ed055
- 실제로 로그인할 땐, 입력된 비밀번호를 다시 해시해서 비교하는 방식이에요.
- 파일 무결성 검사 📦
- 파일을 다운로드했을 때, 해시값을 비교해서 파일이 손상되었는지 확인할 수 있어요.
- 예: 영화 파일 해시값 = abc123
내가 받은 파일 해시값 = abc123 → 정상!
- 블록체인 ⛓️
- 블록의 고유값을 해시로 표현해서, 이전 블록과 연결돼 있다는 걸 보장해줘요.
- 해시값이 조금만 바뀌어도 전체 블록이 달라지기 때문에 변조가 어렵게 만들 수 있어요.
- 데이터 검색 및 정리 📚
- 해시 테이블(hash table) 같은 자료구조에서도 사용돼요.
- 빠르게 데이터를 찾기 위한 키(key)로 활용되죠.
📌 비유로 이해해보자!
해시 알고리즘을 도서관의 책 고유 번호라고 생각해보세요.
- 책 제목이나 내용이 아무리 길어도,
- 고유한 번호(해시값)를 붙여서 정리하면
- 빠르게 찾고, 중복 없이 관리할 수 있겠죠? 😊
🏁 마무리
해시 알고리즘은 데이터의 요약, 보안, 검색 등 정말 많은 곳에 쓰여요.
오늘은 비밀번호 저장, 파일 무결성, 블록체인 같은 예시로 다뤄봤지만,
이 개념은 앞으로 개발을 하면서 자주 만나게 될 거예요!
작지만 강력한 해시 알고리즘! 오늘부터 내 지식 해시값에도 저장 완료~ 😎
728x90
'알고리즘 & 자료구조' 카테고리의 다른 글
나눠서 정렬하고 합친다! 합병 정렬(Merge Sort) 완전 정복 ✨ (0) | 2025.03.28 |
---|---|
'퀵'하게 정렬한다고? 빠르고 똑똑한 정렬 알고리즘, 퀵 정렬(Quick Sort)!🏎️ (0) | 2025.03.28 |
자기 자신을 부르는 함수? 재귀함수 쉽게 이해하기! (0) | 2025.03.28 |
어디 숨었니? 반으로 쪼개며 찾자! - 이진 탐색(Binary Search) 쉽게 배우기 (0) | 2025.03.28 |
알고리즘의 속도를 말해주는 마법의 도구, 시간 복잡도란? (0) | 2025.03.28 |