용건만 간단히, 움짤은 한 번 더 생각
금병영에 상의하세요
야생의 이벤트가 열렸다
즐겨찾기
최근방문

[리빙 포인트] 유튜브 영상 링크 뒤에 붙는 글자는 왜 11자리 일까요?

한동현
23.03.13
·
조회 5579

안녕하세요. 오늘도 열심히 인류 지식의 경계선을 밀어내려고 노력 중인 한 컴공 계열의 대학원생입니다.

최근 연구실에 새로운 인프라를 도입하며 파일 서버를 제작하는 업무를 사이드로 맡고 있는데요.
그 과정 중에 과학 애호가인 여러분과 공유하면 재밌을 것 같은 내용이 있어서 공유해드립니다!

평소 궤도님은 물리학의 영역에서 세상을 보는 방법을 자주 설명하시지만,
컴퓨터 공학도 굉장히 굉장히 재미있고

물리학 만큼이나 세상의 진리를 많이 담고 있다는 걸 간접적으로 경험시켜드리고 싶어서요.
컴퓨터 공학 짱!!

 

물론, 내용은 엄청 깁니다! 주의해주세요.
여러분의 시간을 낭비해드릴… 키키
암튼 시작하겠습니다.

 

본 글은 (https://boxnwhis.kr/2016/11/25/how_long_uid_should_be.html)를 많은 부분 참고하여 작성되었습니다.


1. 서론: 유튜브 영상 링크 뒤에 붙는 글자는 왜 11자리 일까?

유튜브 영상 링크를 보면 항상 “/” 뒤에 붙는 11자리의 알파벳+숫자+기호 조합이 있습니다.

침투부 - "모자를 쓰고 방송하는 이유"

 

여러분이 유튜브 영상을 링크로 공유할 때면, 항상 저 요상한 문장을 함께 공유해야 하죠.

그리고, 다른 사람이 그 링크를 입력하면 여러분이 본 영상과 정확히 같은 영상이 뜹니다.

 

이 11자리 글자는 영상마다 항상 달라지며,

변경되지 않고 항상 같게 유지됩니다.

왜 그럴까요?

 

앞서 말한 링크 공유 예시에 답이 있습니다.

  • 우리는 어떤 영상을 특정할 수 있어야 합니다.
  • 영상의 링크는 어떤 경우에도 바뀌지 않고 항상 동일하게 유지되어야 합니다.

저 11자리의 조합은 그것을 위해 발급된, 어떤 영상을 특정하는 정보인 셈이죠.

 

개체를 특정할 수 있도록, 다른 어떤 개체와도 겹치지 않는 고유한 정보.

바로 고유키(Unique ID)의 개념입니다.

 

하지만, 그게 왜.. 대체 왜 굳이 굳이 굳~이 11자리인 걸까요?

이제부터 고유키의 개념으로 유튜브의 영상 링크가 왜 11자리인지, 제 나름대로 차근차근 설명해보겠습니다!

 


2. 무언가를 구분할 때 사용되는 고유키

고유키란, 간단하게는 우리나라 국민을 고유하게 구분하는 주민 번호와 같습니다.

주민 번호는 누구와도 겹치지 않고, 그래서도 안되겠죠.

 

아무하고도 겹치지 않을 것. 이게 중요합니다.

고유키의 가장 중요한 성질이예요.

 

이런 고유키는 컴퓨터 공학에서 자주 사용됩니다.

쇼핑몰에서 주문을 구분해야 할 경우. 각 주문마다 고유 번호를 발급해야겠죠.

카드 번호, 출판 번호(ISBN), 전화 번호, 사업자 번호, 차량 번호 등등

무언가를 구분하기 위해 고유한 키가 필요한 예시를 들자면, 끝도 없습니다.

가장 간단하게는 매일 보는 차량 번호판이 있죠.
(https://naver.me/FxLtdhn5 ← 이 링크도 뒤에 8자리 고유 번호가 있네요!)

 

제 경우는 파일이 업로드 될 때마다, 각 파일에 고유키를 매겨야 했습니다.

링크로 파일을 다운 받을 수 있어야 하는데, 그러려면 링크로 파일을 특정하는 방법이 필요했거든요.

 

고유키를 발급할 때 고려할 건 사실 너무 간단합니다.

어찌 됐든 다른 것과 겹치지 않으면 됩니다.

 

이때 발생하는 문제는 다음과 같겠죠.

대체 어떻게 하면 안 겹치게 만들 수 있지?

 


3. 안 겹치는 고유키를 어떤 방식으로 만들지?

먼저, 이 문제에 대한 일반적인 물음에 답해보도록 하겠습니다.

문제의 쟁점이 무엇인지를 정의해볼 수 있을 거예요.

 

  Q1: 꼭 특별한 고유키를 발급해야 하나요? 그냥 파일 이름으로 파일을 특정하면 안되나요?

  A1: 그래도 괜찮습니다. 업로드될 파일 이름이 항상 무조건 다를 것이라는 확신이 있다면요.

 

  Q2: 그러면, 파일 이름하고, 파일 유형하고.. 파일 사이즈 하고.. 다 따지면요!

  A2: 겹칠 확률이 매우 내려가긴 하지만, 그 확률을 측정하지 못하면 사용하기 어렵습니다.

       또, 전부 일일이 대조하기에 느려지며, 링크에 파일 정보를 전부 노출하기 때문에 개인정보 이슈가 있습니다.

 

  Q3: 엑… 아!! 그럼 파일 업로드 때마다 숫자를 하나씩 증가 시키는 거예요! 그럼 절대 안 겹치지 않나요? 링크에 파일 정보도 안 보이구요.

  A3: 고유키가 완벽히 중복되지 않게 하는 굉장히 좋은 방법입니다!

       하지만, 숫자가 간단하면 무작위 숫자를 집어넣어 공유되지 않은 파일에 접근할 수 있는 보안 이슈가 있습니다.

 

번호가 너무 간단하거나 예상 가능하면, 무작위 대입 공격을 받을 수 있습니다.

(https://m.hankookilbo.com/News/Read/201907021670043452)

 

  Q4: 으아.. 그러면 어떻게 해야 하죠?

  A4: 파일마다 고유키를 무작위로 생성하면 됩니다!

 

네. 고유키를 무작위로 생성하면 됩니다.

고유키를 무작위로 생성하면, 겹칠 확률도 낮고 정보가 고유키에 드러나지 않으니 개인 정보와 보안 문제를 깔끔하게 해결할 수 있죠.

다만 해결해야 할 문제가 하나가 남습니다.

 

혹시 그렇게 무작위로 생성한 고유키가 정말 우연하게 겹치면 어떡하죠?

문제가 발생했습니다!

 


4. 무작위 고유키가 겹칠 확률

무작위로 생성하더라도 고유키는 언젠가 겹칠 수도 있습니다.

예시를 들어볼까요?

 

0~9까지 숫자를 하나 무작위로 골라보세요.

여러분과 제가 하나씩 골랐을 때 겹칠 확률은? 1/10 = 10% 겠죠?

고유키로 사용하기엔 경우의 수가 너무 적습니다.

예상 가능하니 카드 번호와 같이 무작위 대입에 취약하구요.

 

그럼 범위를 늘려 1~1,000,000 까지 중에 골라볼까요?

1,000,000 개의 가짓수가 있으니, 확률은 0.0001%로 떨어집니다.

충분히 낮습니다!

이제 이런 번호 추첨기를 10,000개 준비합시다!

 

그럼 1~1,000,000 중에 무작위 숫자를 뽑아 고유키를 정하면 되겠네요! 하하!

간과한 사실이 있습니다.

 

우리는 숫자 하나를 뽑는게 아니라, 여러 개를 뽑는 문제라는 겁니다.

파일 서버를 5년 동안 사용하면서, 매년 1,000개의 파일이 업로드 된다고 가정해봅시다. 파일이 그렇게 많진 않죠?

5년 동안 총 5,000개의 파일에, 1,000,000가지 숫자를 랜덤 발급했을 때 하나라도 겹칠 확률은 어떻게 될까요?

 

으으… 어렵습니다!

5,000개 키를 백만 개의 경우의 수로 발급하니 겹칠 확률은 생각보다 낮지 않을까요?

 

네. 우리 문제의 쟁점은 바로 여깁니다.

어떤 개수를 어떤 경우의 수 중에서 무작위 발급했을 때 하나라도 겹칠 확률은?

 


5. 생일 문제 (Birthday Problem)

사실 이 문제는 더 간단한 현실의 문제로 대치하여 표현할 수 있습니다.

n명의 사람이 모였을 때, 생일이 같은 사람이 한 사람이라도 있을 확률은 얼마일까요?

생일 문제를 실험적으로 보여주는 정말 좋은 시뮬레이션입니다.

(https://pudding.cool/2018/04/birthday-paradox/)

 

이걸 다시 설명하면, 1년 365개의 가짓수를 n개 랜덤 발급하면서 하나라도 겹칠 확률입니다.

이 문제를 생일 문제라 불러요. (윤년은 그냥 제외하겠습니다.)

이 확률을 어떻게 구할까요?

 

여사건으로 구하면 쉽습니다!

1 - (아무 생일도 겹치지 않을 확률)

"아무 생일도 겹치지 않는다." 이것의 반대는 겹치는 생일이 적어도 하나는 있다는 거니까요!

 

사람이 5명 있다고 해볼게요. 이때, 아무도 생일이 겹치지 않을 확률을 구하고 1에서 빼겠습니다.

  • 1번째 사람은 아무 날이어도 됩니다. 혼자니까요. 365일 모두 괜찮으니 확률은 365/365 = 1이죠.
  • 2번째 사람은 1번째 사람의 생일을 제외한, 364일 중 하나여야 겹치지 않아요. 364/365 입니다.
  • 3번째 사람은 앞선 두 사람의 생일을 제외해야 합니다. 363/365 죠.
  • 4번째… 5번째 사람도 같습니다.
  • 이 모든 확률이 동시에 일어나야 하니, 전부 곱해주면 5명의 생일이 모두 겹치지 않을 확률입니다.

결과는 약 97.3% 군요. 그러니, 한 명이라도 겹칠 확률은 1 - 0.973 = 0.027 으로 2.7% 입니다!

여러분이 느끼기에, 5명의 생일이 한 쌍이라도 겹칠 확률로 2.7%는 높은가요, 낮은가요?

각자 느낌이 다를 겁니다.

 

하지만, 생일 문제의 놀라운 점은 23명만 있어도 생일이 겹칠 확률이 50%가 넘어간다는 겁니다. (약 50.7%)

30명이면 70%가 되구요.

60명이 모이면, 99% 확률로 생일이 같은 사람이 한 쌍이라도 존재합니다.

겹칠 확률은 인원 수에 따라 기하급수적으로 증가합니다.

(https://en.wikipedia.org/wiki/Birthday_problem)

 

놀랍지 않나요? 학창 시절을 떠올려 본다면요.

30명인 반에 한 명이라도 생일이 겹칠 확률이 70%가 넘는다니, 안 그랬던 것 같은데 말이죠. (못 믿겠다면 위에 있는 시뮬레이션으로 직접 경험해 봅시다.)

이처럼, 이 문제는 우리의 인식과는 다르게 매우 높은 확률을 보이기 때문에 생일 역설(birthday paradox)이라 부르기도 합니다.

 

이제, 이 문제를 우리 문제에 적용하기 위해 일반화를 해보죠.

 


6. 생일 문제의 일반화

문제의 일반화란 것은, 앞선 예시로 풀었던 5명의 예시를 n명으로 확장시키는 거예요.

5명일 때만 적용되던 식을 n이라는 변수의 식으로 바꾸어서, 원하는 어떤 숫자를 넣어도 식의 결과를 구할 수 있습니다.

 

우리가 풀었던 5명의 예시로부터 시작해 보겠습니다.

5명에서 6명으로, 그리고 n명으로 확장한다면 식이 어떻게 될까요?

n명의 생일 문제로 확장하면, 식은 위와 같이 변합니다.

n에 우리 예시인 5를 넣어볼까요? 아까 봤던 5명의 식과 똑같아집니다.

이제 n을 바꾸어 원하는 인원 수의 생일이 겹칠 확률을 구할 수 있겠습니다.

 

하지만, 아직 365일 중에 고르는 생일 문제예요.

파일 서버 문제에 사용할 수 있도록 문제를 더 일반화 시켜봅시다.

 

생일 문제에서 365란 수를 사용한 이유는, 1년이 365일의 가짓수를 가졌기 때문입니다.

1년이 366일 이었다면 어땠을까요? 367일 이었다면? k일 이었다면?

위와 같은 식으로 365개 가짓수를 k 가짓수로 일반화할 수 있습니다.

 

갑자기 식이 어려워지셨나요?

k에 365를 넣고, n에 5를 넣어보세요!

우리가 봤던 5명의 생일 문제와 같은 식이 나옵니다.

 

이제 이 식을 제 파일 서버 문제에 적용할 수 있게 됐습니다.

 


7. 파일 서버 문제: 일반화된 생일 문제 식의 사용

위에서 도출한 식을 계산하는 건 컴퓨터에게 맡기면 됩니다.

잘 아시는 분들은 이게 계승(factorial) 계산이란 걸 눈치채셨을 텐데요.

 

계승 계산은 계산 과정 중에 숫자가 너무 너무 커지기 때문에 컴퓨터가 계산하기가 어렵습니다.

큰 수를 저장하려면 비일반적인 처리가 필요하거든요.

 

물론, 표현 가능한 수보다 큰 수의 계산을 하는 방법이 많이 있지만,

더 편하게 우리가 구한 식의 근사값을 찾는 방법이 있습니다. (근사값=대충 비슷한 값)

참고: https://en.wikipedia.org/wiki/Birthday_problem#Approximations

(확률을 나타내는 P는 생략합니다.)

 

이제는 식을 직관적으로 이해하기는 어렵지만, 이론적으로 매우 잘 증명되었고 계산은 컴퓨터가 하니까요!

계산기로 단 몇 번 만에 문제를 풀 수 있게 되었습니다.

 

이제는 파일 서버의 n과 k를 알아내 대입하면 되겠군요.

아까 얘기했던 예시를 생각해볼까요?

5년 동안 총 5,000개의 파일에, 1,000,000가지 숫자를…

 

이 예시에서, n은 5,000, k는 1,000,000 입니다.

식에 넣어서 확률을 계산해보죠. 두근두근…

1 - exp(-5000**2 / (2*1000000)) = ?

 

이 예시대로 구현한 파일 서버에서, 파일의 고유키가 겹칠 확률은

무려 99.9996% 가 나왔습니다. 남는 키 개수가 995,000 개나 있는데도요.

굉장히 큽니다. 가짓수인 k를 늘려야겠군요!

 


8. 파일 서버 문제: 적절한 고유키 경우의 수

이제 잘못된 걸 알았으니, 적절한 k의 수를 정해봅시다.

파일의 총 개수인 n은, 현실적으로 10배 늘린 50,000개로 생각해보겠습니다.

 

이 문제를 풀고 있는 이유는, 파일을 링크로 공유하기 위함이었습니다.

링크로 사용하기 용이한 문자는 사실 정해져 있습니다.

“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_”

 

이 문자들이 URL에서 사용하기 안전한 문자들입니다.

모두 64글자구요, base64 라고도 불러요.

 

한 문자 당 64가지의 가짓수를 가집니다.

문자가 6개 있으면, 64^6 = 64*64*64*64*64*64 개의 가짓수가 있다는 뜻이죠. (68,719,476,736 가지)

굉장히 많죠?

 

그럼 다시, 50,000개 파일의 경우에 길이가 몇인 문자열로 링크를 만들어야 적절한 걸까요?

아까 만든 식을 토대로 계산을 돌려보겠습니다.

 

n - 파일의 개수, k - 고유키의 경우의 수

match_prob(n, k) - 일반화된 (n, k) 생일 문제의 계산 결과 (하나라도 겹칠 확률 %)

 

match_prob(50,000, 64^5) = 68.781%

match_prob(50,000, 64^6) = 1.803%

match_prob(50,000, 64^7) = 0.028%

match_prob(50,000, 64^8) = 0.000444%

match_prob(50,000, 64^9) = 0.00000694%

match_prob(50,000, 64^10) = 0.000000108%

 

고유키가 8자리 정도는 되어야 매우 낮은 확률이 되는 걸 알 수 있습니다.

고작(?) 50,000개의 파일을 저장하는데도요.

 

그래서, 연구실 파일 서버의 파일 고유키 길이는 10개로 결정됐습니다.

8개나 10개나 큰 차이 없는 길이고,

8개의 0.000444% 도 혹여나 겹치기엔 높은 확률이라 생각해서요. (9는 왠지 딱 안 떨어져서 싫습니다.)

 

0.000000108% 확률로 고유키가 겹칠 확률은 아마 없겠죠? 그 날은 연구실 전체 로또 사는 날입니다.

 


9. 유튜브의 문제: 유튜브의 영상 개수

드디어 유튜브의 경우로 문제를 바꿔봅시다.

base64 기준으로 유튜브 링크는 11자리니 k는 64^11 입니다.

 

n은 유튜브에 올라간 영상의 개수겠죠.

정확하진 않지만 단순 무식하게 최대치로 계산해보겠습니다.

  • 1분에 500시간 분량의 영상 업로드 (https://blog.youtube/press/)
  • 영상 당 평균 11.7분 (https://www.statista.com/statistics/1026923/)
  • 분 당 500 * 60 / 11.7 = 약 2,564개. 1년엔 1,347,692,307개. (13억 개)
  • 유튜브 역사가 18년 됐으니 단순 곱셈을 하면,
  • 대략 242억개네요! (24,258,461,538개) (정확한 개수는 공개되어 있지 않습니다.)

 

n = 24,258,461,538 / k = 64^11 을 식에 넣어볼까요?

match_prob(24,258,461,538, 64^11) = 98.146%

어? 고유키가 겹칠 확률이 98.146%로 생각보다 높네요?

영상이 분 당 2천 개가 올라가는데, 무조건 겹칠 겁니다!

 

네. 무조건 하나 이상은 겹칩니다.

하지만, 유의할 것은 이 확률은 “지금까지 올라온 242억 개 고유키 중 하나라도 겹칠 확률” 입니다.

242억 개 키 중 딱 하나가 겹치는 건 사실 괜찮죠.

그때만 딱 한 번 더 뽑으면 되니까요. (제 파일 서버는 그게 귀찮아서 그냥 냅다 크게 한 겁니다!)

 

그래서, 실제로 고려해야 할 건 242억 개 중 몇 개가 겹칠 것인가? 입니다.

그 수가 충분히 작다면, 그냥 그때마다 다시 뽑아주면 되잖아요?

 


10. 생일 문제의 변형: 몇 개가 겹칠까요?

유튜브의 242억 개 영상으로 생각하면 골치가 아프니, 다시 생일 문제로 돌아갑시다.

나 포함 5명이 있을 때, 나와 생일이 겹치는 사람이 한 명이라도 존재할 확률은 다시 여사건을 사용합니다.

1 – (아무도 내 생일과 안 겹칠 확률)

 

그리고, 아무도 내 생일과 겹치지 않을 확률은, 그 사람들끼리 서로 겹치든 말든 모두 나와 다르기만 하면 됩니다.

"내 생일"이 겹칠 확률이니까요. 따라서, 다음과 같은 식이 세워집니다.

내 생일을 제외한 364개에서 나머지 4명이 선택하면 되는 겁니다.

이 확률은 1.09% 입니다. 5명 중 한 명이라도 겹칠 확률(2.7%)보다는 낮죠. n, k가 커지면 차이는 더 극명해집니다.

 

앞선 식은, n = 5, k = 365 인 예시였고, 일반화 식은 다음과 같습니다.

이제, 어떤 한 고유키가 다른 고유키와 겹칠 확률을 구했습니다.

유튜브의 245억 개를 여기에 대입해보면, 약 0.0000000329% 입니다.

실제로 100,000개 무작위 링크를 입력해봤는데, 겹치지 않았습니다. 이 정도면 무작위 대입법은 소용없겠죠.

 

이제 이걸로 n개의 키 중 몇 개가 겹칠 것인지 예상하고 싶습니다.

아주 간단하게도, 위 식에 키의 개수인 n을 곱하면 됩니다.

느낌이 잘 안 오신다면,

확률이 10%인 로또를 100명이 사는 경우엔 평균적으로 10명이 당첨될 거란 걸 생각해보세요. (10% * 100명)

그러니, 겹칠(당첨) 확률이 p인 키가 n개 있으면, 평균 p * n 개가 겹치는 거죠.

이걸 통계학에서는 ‘기대값’이라는 개념으로 부릅니다.

 

이제 모든 식을 구했으니, 식 세우기는 그만하고 결론으로 나아가 봅시다!

 


11. 결론: 유튜브 영상 링크 길이가 11자리인 이유

자! 이제 저 식에 유튜브 문제의 n과 k를 대입해봅시다.

 

n – 영상의 개수, k - 고유키의 경우의 수

avg_key_match(n, k) - (n, k)일 때 평균적으로 겹치는 키의 개수

 

avg_key_match(242억, 64^11) = 7.98 개

우와! 18년 동안 242억 개의 영상이 올라온 유튜브는, 지금까지 총 8번 정도만 고유키를 다시 뽑으면 됐었겠네요.

 

만약, 영상 링크 길이가 달랐다면 어땠을까요?

avg_key_match(242억, 64^8) = 2,090,586 개

avg_key_match(242억, 64^9) = 32,667 개

avg_key_match(242억, 64^10) = 510 개

영상 링크 길이가 10 9 8로 짧아질수록 겹치는 숫자는 기하급수적으로 늘어납니다.

그리고, 길이가 10개일 때도 18년 동안 510번이면 사실 그렇게 많진 않죠? 안정적으로 보입니다.

 

하지만, 유튜브는 앞으로도 더 많은 영상들이 올라올 겁니다.

앞으로 100년 더, 118년 간 대충 5천억 개의 영상이 올라갈 가능성을 생각해봅시다.

 

avg_key_match(5천억, 64^8) = 887,390,026 개

avg_key_match(5천억, 64^9) = 13,877,595 개

avg_key_match(5천억, 64^10) = 216,840 개

avg_key_match(5천억, 64^11) = 3,388 개

avg_key_match(5천억, 64^12) = 53 개

단순히 11개 길이를 썼는데도, 118년 동안 영상을 구분하는 데에 문제 없겠네요.

118년 동안 3,388번만 다시 생성해주면 됩니다!

 

사실, 이런 문제에선 시간이 지날수록 나중에 고유키 길이를 수정하기가 어려워집니다.

그래서, 한 번 할 때 최대한 통 크게 정하는게 좋아요.

 

왜 그, 처음 만들 때 통 크게 만들어서 지금까지 잘 쓴다는 영국의 하수도 아저씨 있잖아요.

그런 관점에서는 10개면 왠지 부족하고, 11개면 딱 넉넉하죠. 12개는 너무 과하고요.

 

영상 링크 길이를 딱 11개로 한 이유가 있었군요!

 

10개 보다, 어중간한 11개가 딱 맞는 숫자라니. 정말 재밌지 않나요?

이런 필연성, 가장 적절하고도 완벽한 정답을 찾을 수 있다는 것이 컴퓨터 공학의 매력이라고 생각합니다.

 


12. 마지막 인사와 세 줄 요약

지금까지 보신 문제는 사실 컴퓨터 공학에서 유명한 hash collision 문제입니다.

문자열 길이를 늘리는 방법 말고도, 상황에 따라 적절한 해결법이 매우 많습니다.

관심이 있으시다면 찾아보셔도 좋아요.

 

침하하에서 많은 과학 애호가 여러분들과 소통하며 참 즐거운 나날을 보내고 있습니다.

마음 맞는 사람들과 서로의 지적 호기심을 해소하는 경험은 정말 소중한 경험이거든요.

 

여러분이 앞으로 무언가를 고유하게 구분하는 키를 볼 때마다,

아! 생일 문제! 하고 컴퓨터 공학의 매력을 떠올리셨으면 참 좋겠습니다.

 

쓰다 보니 10,000자를 꽉 채워 굉장히 긴 글이 되었네요.

자료가 자꾸 자꾸만 길어지는 궤도님의 마음을 느낄 수 있었습니다.

 

설명 중에 과장해서 말하거나, 잘못된 비유가 포함되었을 수도 있습니다.

저의 부족함이니, 부디 너른 마음으로 재밌게 즐겨주셨으면 좋겠습니다.

 

마지막으로, 글이 너무 긴 탓에 읽기를 포기한 분들을 위해 죄송한 마음에 세 줄 요약을 첨부합니다.

 1. 유튜브 영상 링크 길이가 11개인 이유는, 생일 문제라는 확률 문제로 일반화하여 설명할 수 있다.

 2. 링크 길이가 10이면 영상 5천억 개 중 평균 216,840개가 겹치게 되지만, 11개일 때는 고작 3,388개만이 겹치기 때문에 11개가 딱 적절하다.

 3. 컴퓨터 공학은 재밌다!

 

긴 글 읽어주셔서 감사합니다.

댓글
궤도
23.03.13
BEST
글도 잘 쓰시고 공도 들어가 있어서 참 좋네요 :) 고맙습니다!
즉시굿타임
23.03.13
느리지만 쿨한... 크흠, 반사신경이 제멋대로 움직이는군요.
확실히 이렇게 풀어서 설명을 받으니 조금 더 와닿는 내용이 되었습니다 ㅎㅎ 생각해보기에 굉장히 재미있는 내용이네요! 사실 11자리를 정할 때 정말로 저런 걸 고려하고 했는지, 아니면 대충 때려맞췄는데 우연히 겹친건지... 그건 창립자들이 알려나요 ㅋㅋㅋ
한동현 글쓴이
23.03.13
ㅋㅋ,,, 정말 재밌죠!
사실 유튜브에서 직접 밝히기 전까진 실제로 어떻게 구현되어 있을지, 왜 11자리 인지 팩트를 알 수는 없지만,
분명 링크 길이를 정할 때 조금이라도 비슷한 논의를 하긴 했을 겁니다.
너무 작지 않고 너무 크진 않은.. 소중한 11자리로 정하자..
아니면, 나중에 글자 수를 늘린 걸 수도 있구요.
8자리로 시작했다가 부족하다면, 나중에 8자리를 11자리로 바꿔주면 되니까요.
모든 데이터의 정보를 바꾸는게 쉬운 일은 아니지만,
요즘 빅데이터 솔루션들이 잘 되어 있어서, 데이터의 구조를 점진적으로 바꾸어 나가고 하는게 가능하다고 하니까요.
만약 글자 수를 중간에 늘렸다면 한 번 할 때 확실히 늘려두었지 않나 싶네요.
한동현 글쓴이
23.03.13
사실 이 글에서 설명하지 않은 제일 신기한 부분은,
"5천억 개의 데이터 중 내 고유키가 겹치는지 아닌지 어떻게 알지?"
입니다.
단순하게 생각하면, 5천억 개 데이터와 다 일일이 비교해야 하잖아요.
상상만 해도 오래걸리는.
근데, 그걸 데이터 수와 관계없이 단 한 번의 비교로 확인할 수 있게 하는게 해시 테이블(hash table) 개념입니다.
'데이터 중에 "궤도"랑 같은 거 있는지 검색해줘.'
하면 5천억 개를 일일이 하나씩 보고 비교하는게 아니라,
한 번에 바로 궤도가 있어야 할 곳으로 슉! 가서 "궤도" 없네?/있네? 하고 끝나요.
정말 신기하죠!!!!!!!
에드몽
23.03.13
호오옹?! 혹시나 시간이 많이 지나서 영상 수가 점점 더 늘어나믄 12자리 13자리 이렇게 늘어날수도있는건가요?!
한동현 글쓴이
23.03.13
네! 혹여나 유튜브가 우주 최강 기업이 되어서 11자리로 부족해진다면
늘릴 겁니다!
침착맨4랑헤
23.03.13
3줄 요약좀
금순이돌격대
23.03.13
마지막으로, 글이 너무 긴 탓에 읽기를 포기한 분들을 위해 죄송한 마음에 세 줄 요약을 첨부합니다.
1. 유튜브 영상 링크 길이가 11개인 이유는, 생일 문제라는 확률 문제로 일반화하여 설명할 수 있다.
2. 링크 길이가 10이면 영상 5천억 개 중 평균 216,840개가 겹치게 되지만, 11개일 때는 고작 3,388개만이 겹치기 때문에 11개가 딱 적절하다.
3. 컴퓨터 공학은 재밌다!
정수론민수
23.03.13
싱기방기홍키통키하잖슴~~~ 가장 효율적이면서 합리적인 솔루션을 찾아가는 모습이 인상적이다 이말이란다~
이폴폴
23.03.13
재밌게잘읽었습니다!!!감사합니다
이시우라
23.03.13
음 완전 이해했어
궤도
23.03.13
BEST
글도 잘 쓰시고 공도 들어가 있어서 참 좋네요 :) 고맙습니다!
한동현 글쓴이
23.03.13
🥲🥲 감사합니다
궤도님 댓글이라니… 저 죽습니다 꽥
베헬라
23.03.13
횐님 저 머리가 아파요...
치무차쿠만
23.03.13
https://resources.chimhaha.net/comment/1678694661555-4rbyen6rj57.jpg
이따가
23.03.13
와우 한번쯤 제 머릿속에 스쳐가며 궁금했었는데 신기하고 재밌어요!!
도그호스트
23.03.13
정보추
뉴진스가찾는하입보이
23.03.13
너무 유익해요 ! 덕분에 알아가요 !!
총력전꼴찌센세
23.03.13
컴퓨터 과학을 결국 수학이다(?)
백안시
23.03.13
근데 아무리확률이 작아도 실제로 걉치게 되면 어떻게 되는 건가여?!
위험한남자이흥건
23.03.13
겹치면 다시 뽑습니다! 11번 결론 부분에 "avg_key_match(242억, 64^11) = 7.98 개" 가 지금까지 유튜부에서 코드가 겹친 영상의 개수(추정치)입니다!
백안시
23.03.13
아하! 디시 뽑으면 되는구나 하긴 감사합니다!!
@위험한남자이흥건
지궤로봇
23.03.13
잘 보고갑니다!
일본의이세화아라가키유이
23.03.13
삥뺑뿡
23.03.13
아~ 완벽히 이해했어!
회원님
23.03.13
횐님 굉장히 똑똑해보입니다,,
내꿈은너야병건아
23.03.13
아 리빙포인트라메~
홍삼맛붕어빵
23.03.13
30살 먹고 통계학 기초부터 흘깃흘깃 보는중인데 확실히 재밌네요.(근데 왜 책은 재미가없...)
사라카야콤슨
23.03.13
아 나 완전 알았어!
동고비
23.03.13
웹 개발일로 먹고살고는 있지만 이런 cs지식을 탄탄하게 쌓을 수 있는 전공자들이 부러워용
좋은글 잘 보고갑니다
LaidBack
23.03.13
좋은 글 감사합니다. 재밋게 봣어요.
근데 궁금한 게 하나 생겻는데요!
영상마다 고유키를 부여한다는 뜻 같은데요?
지금까지 8번 겹쳣잖아요?
그럼 영상에 고유키를 확정부여 하기 전에,
그 키가 겹치지는 않는지 매번 검증을 하는 공정도 있는 거에요???
한동현 글쓴이
23.03.13
네!! 제 두번째 댓글에 그 내용이 있습니다.
hash table이란 것으로 5천억개를 일일이 비교 검증해보지 않아도 단 한번의 비교만으로 5천억개 중 키가 겹치는지 아닌지 알 수 있습니다.
정말정말 신기하죠 ㅎ 원리가 너무 궁금하지 않나요?
기회가 된다면 hash table에 대해서도 설명하고 싶네요.
LaidBack
23.03.13
헐 저는 쌓인 고유키들이랑 일일이 비교하는 건줄 알고 역시 컴퓨터네 햇엇는데. 한번 비교요?
의외네요 ㄷㄷ
그럼 그건 컴퓨터가 대단한게 아니라 그 무친 효율적인 방법을 생각해낸 인간이 대단한거네요;; 아무튼 답변 감사드립니다!
@한동현
LaidBack
23.03.13
아 정말 댓글에 자세히 설명을 해주셨엇네요. 아깐 왜 못봣지. 귀찮게 해드렷네요. 감사합니다
@한동현
철면스시
23.03.13
재밌네요! 잘 읽고갑니다
기미준
23.03.13
다음 수능 비문학에 나옵니다 (아님)
잘 봤습니다!
홈버튼
23.03.13
와 재밌게 봤습니다! 11자리 화이팅!
똥쭉찢
23.03.13
음... 아무튼 알겠습니다
궤소리방정식
23.03.13
유익한 정보를 이렇게 공들여 작성해주시다니 감사합니다! 마침 저번학기에 해시 테이블 구현을 배웠는데 생일 문제가 잠깐 언급되었어요. 그땐 잘 와닿지 못했는데 유튜브라는 좋은 예제가 바로 옆에 있었군요.
방통대작전
23.03.13
나 완전 이해했어
1 2

전체 인기글 전체글

제 투병 수기가 실렸어요 - 건강하다는 이유만으로 박수받을 수 있던 날들 19
취미
원본쟁이
·
조회수 3763
·
02.27
블로그+SNS로 수익내기 2일차 12
취미
이병건치이병헌
·
조회수 4065
·
02.11
사견 10
침착맨
Ansan은일상이야
·
조회수 7954
·
24.12.19
침착맨의 전당포 아주 늦은 후기 26
침착맨
보시다시피
·
조회수 10306
·
24.06.23
현장에서 조금 억울했던점.+추가 44
팝업
하라y
·
조회수 10608
·
24.05.14
"환상에 살았다." 16
침착맨
vvi
·
조회수 7048
·
24.05.10
걍 개방장이 고객의 소리함 적당히 무시했으면 좋겠음 19
침착맨
욱이네반찬가게
·
조회수 7454
·
24.05.06
백상 투표 포기하면 안되는 이유 49
침착맨
라니스푼
·
조회수 9128
·
24.04.25
전무님이 족보상 아버지 뻘이시네요 21
인방
dak****
·
조회수 6634
·
24.04.18
취미생활인 투병일기 번외편 신발리뷰 겸 불평불만... 35
취미
티타늄맨
·
조회수 6035
·
24.03.27
손 황 김 이, 다 같이 손잡고 국대 은퇴했음 좋겠어요 20
축구
배추살땐무도사
·
조회수 7267
·
24.02.07
미라클 팬아트 11일 차 10
팬아트
침하하쿠나마타타
·
조회수 3695
·
24.01.26
2005년 고려거란전쟁 다큐에 출연하셨던 임용한 박사님 16
침착맨
Supreme
·
조회수 6708
·
24.01.22
솔직히 말씀드리겠습니다 인킹이형 팬이 됐습니다 15
침착맨
요키치박치기
·
조회수 7862
·
24.01.18
디즈니 마을에서 배신자로 낙인찍힌 찬이 39
인방
병건하게
·
조회수 12434
·
24.01.13
헐 저 개쩌는거 알아냄... 10
침착맨
침과6펄스
·
조회수 11356
·
24.01.09
제에~발 한국인이면 고려거란전쟁좀봅시다 22
방송 해줘요
박다라이큰
·
조회수 5268
·
24.01.07
요즘에 배텐에 거란 분들이 많이 오시네요 10
배성재
통닭천사나가사와마사미
·
조회수 6929
·
24.01.07
현직 거란인 인터뷰.jpg 11
유머
좌절하지않는조홍
·
조회수 7148
·
24.01.04
SKT 사장님이 잠깐이나마 내 아버지였던 이야기 30
침착맨
효자 황권
·
조회수 5661
·
23.12.01
1 2 3