Sky Archive

프로그래밍

[프로그래밍] 해시맵, 해시태그, 해시함수 등에서 말하는 해시란 무엇일까?

Zero Line 2021. 8. 10. 00:06

• 해시맵, 해시태그, 해시함수 등에서 말하는 해시란 무엇일까?

 

요즘엔 IT계열 종사자가 아니더라도 해시라는 단어는 심심치 않게 들을 수 있습니다.

흔히 SNS나 블로그에 사용하는 해시태그부터 시작해서 암호화폐 블록체인에 사용되는 해시함수,

심지어 패스트푸드점에서 쉽게 찾아볼 수 있는 해시 브라운까지

 

눈치가 빠르신 분이라면 아마도 해시 브라운에서 해시의 뜻을 짐작해보실 수 있을 텐데요. 

해시태그의 어원은 다르지만, 짐작하신 대로 해시 맵, 해시함수, 해시 브라운까지 해시의 어원은 같습니다.

 

바로 고기와 감자를 잘게 조져 섞어버린 바로 이 해시라는 영국 요리가 어원이라고 할 수 있습니다. 🤔

 

 

• 프로그래밍에서의 해시(hash)란?

프로그래밍에서의 해시(hash)는 마치 위의 사진처럼 잘게 조짐(?)당한 고기처럼

해시 함수에 의해 잘게 쪼개어져 일정한 길이의 고유한 값으로 변경된 결과 정도로 정의할 수 있습니다.

- INPUT
SELECT SHA256('킹포크'), SHA256('앤초비')

- OUTPUT
7d98749a0281109ec2b867a4ee8b416130207f03991e94c7e5df71b66935bd27
2fa1786f63a1c364294da89e3abc282ab064d63164d509e831a55fa93353e89c

해시 함수로 잘게 조짐육이 되어버린 킹포크와 앤초비...

 

암호학에선 해시함수에 관련하여 또 재미있는 용어가 있는데

과거 보안성이 낮은 함수에 무차별 대입으로 값을 찾아내는 경우의 수를 줄이기 위해

암호에 임의의 값을 추가했었는데, 이를 소금 치기(adding salt) 라고 하며

이때 임의의 값을 소금(salt)라고 부른다고 합니다. (해시에 소금을 추가... 츄릅)

 

• 해시태그에서 사용되는 해시의 의미

소셜 네트워크 서비스(SNS)에서 사용되는 해시 태그의 의미는 아쉽게도(?) 영국 요리 해시가 아닌

'#'으로 표시되는 해시 기호(hash symbol)에서 따온 이름입니다.

 

해시태그는 2007년 당시 가장 유명한 소셜 네트워크 서비스였던 트위터에서

한 사용자의 건의에 의해 시작되었는데요.

SNS 내 수많은 정보들이 흩어지는 것을 안타깝게 생각하던 크리스 메시나라는 사용자가 

트위터 측에 ‘#을 써서 정보를 묶는 것을 어떻게 생각하냐’는 건의를 했고,

트위터 측이 이를 받아들이면서 해시태그란 이름의 기능이 추가되었다고 합니다.

 

이후 페이스북과 인스타그램 및 다른 서비스들에서도 해시태그를 지원하게 되면서

현재 우리가 흔히 사용하고 있는 해시태그가 되었다고 합니다.

 

마치며

IT용어들은 굉장히 직관적인 경우가 많지만

그렇지 않은 경우 이렇게 어원을 찾아보면 굉장히 재밌었던 적이 많은 것 같습니다.

블로그를 함께 하는 팀원들과 술자리 중에 해시의 어원에 대한 이야기가 나왔는데,

처음 해시의 어원을 찾아봤다가 상당히 재밌었던 기억이 나서 이렇게 한번 블로그에 정리해 보았습니다.

글을 읽어주신 여러분들도 재밌게 읽으셨길 바라며 이만 마치도록 하겠습니다. 😄