λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

자주 μΆœμ œλ˜λŠ” IT νšŒμ‚¬ λ©΄μ ‘ 질문: ν•΄μ‹œ ν•¨μˆ˜

by πŸŒπŸ–§πŸ”—πŸ₯·πŸš€πŸ’βœοΈπŸ’½πŸ—„οΈπŸ’Ύ 2022. 8. 16.

thumbnail

 

IT νšŒμ‚¬ λ©΄μ ‘μ—μ„œ 항상 λ‚˜μ˜€λŠ” λ©΄μ ‘ 질문 쀑 ν•˜λ‚˜λŠ” ν•΄μ‹œ ν•¨μˆ˜ μ§ˆλ¬Έμž…λ‹ˆλ‹€. λ”°λΌμ„œ 개발자둜 μ·¨μ—…ν•˜λŠ” 데 μ„±κ³΅ν•˜κ³  νšŒμ‚¬μ—μ„œ μ˜€λž«λ™μ•ˆ 인정받기 μœ„ν•΄μ„œλŠ” ν•΄μ‹œ ν•¨μˆ˜μ— λŒ€ν•œ 이해가 ν•„μˆ˜μž…λ‹ˆλ‹€. 자주 μΆœμ œλ˜λŠ” IT νšŒμ‚¬ λ©΄μ ‘ 질문 ν•΄μ‹œ ν•¨μˆ˜ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

1. ν•΄μ‹œ ν•¨μˆ˜λž€

ν•΄μ‹œν•¨μˆ˜λŠ” 길이가 λ‹€λ₯Έ μž…λ ₯값을 μž…λ ₯ν•˜λ”λΌλ„ 항상 길이가 같은 좜λ ₯ 값을 μƒμ„±ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ κ²°κ³Ό 값을 ν•΄μ‹œ 값이라고 ν•˜μ§€λ§Œ ν•΄μ‹œ μ½”λ“œ, ν•΄μ‹œ 섬, 체크섬 등이라고도 ν•©λ‹ˆλ‹€. ν•΄μ‹œν•¨μˆ˜λŠ” 주둜 μ•ˆμ •μ„±μ„ 인정받은 SHA μ•Œκ³ λ¦¬μ¦˜μ„ 톡해 κ΅¬ν˜„λ©λ‹ˆλ‹€.

2. ν•΄μ‹œ ν•¨μˆ˜ νŠΉμ§•

2.1. κ³ μ •λœ 길이의 값을 좜λ ₯ν•©λ‹ˆλ‹€.

30자 λ˜λŠ” 150자λ₯Ό μž…λ ₯ν•˜λ”λΌλ„ ν•΄μ‹œ ν•¨μˆ˜λŠ” 항상 λ™μΌν•œ 길이의 ν•΄μ‹œ 값을 좜λ ₯ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ™μΌν•œ 길이의 ν•΄μ‹œ 값을 좜λ ₯ν•˜κΈ° λ•Œλ¬Έμ—, μ„œλ‘œ λ‹€λ₯Έ 값을 μž…λ ₯해도 μ’…μ’… λ™μΌν•œ ν•΄μ‹œ 값이 좜λ ₯λ˜λŠ” κ²½μš°κ°€ λ°œμƒν•˜λŠ”λ°, 이λ₯Ό 좩돌이라고 ν•©λ‹ˆλ‹€.

2.2. μž…λ ₯ 값을 μœ μΆ”ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

μž‘κ³  μ‚¬μ†Œν•œ λˆˆλ©μ΄κ°€ 산을 ꡴러 내렀와 큰 λˆˆμ‚¬νƒœκ°€ λ°œμƒν•˜λŠ” μžμ—° ν˜„μƒμ²˜λŸΌ, ν•΄μ‹œ ν•¨μˆ˜λŠ” μž…λ ₯ κ°’μ˜ μ‚¬μ†Œν•œ 뢀뢄이 λ°”λ€Œμ–΄λ„ 이전 μž…λ ₯ κ°’μ˜ ν•΄μ‹œ κ°’κ³Ό μ „ν˜€ λ‹€λ₯Έ ν•΄μ‹œκ°’μ„ μƒμ„±ν•©λ‹ˆλ‹€. 이λ₯Ό λˆˆμ‚¬νƒœ 효과라고 ν•©λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” ➀ E9A95DE0ADD7606BDA402B28A3630CF4B0F8C9B2
μ•ˆλ…•ν•˜μ„Έμœ  ➀ 5C6EBE5C4419778D3DC189DDF0E36F82E5E5FE46

μ΄λŸ¬ν•œ νŠΉμ§•μœΌλ‘œ 이전 데이터λ₯Ό μ‚¬μš©ν•˜μ—¬ ν•΄μ‹œ ν•¨μˆ˜μ— μ˜ν•΄ μƒμ„±λœ 좜λ ₯ 값을 μœ μΆ”ν•˜λŠ” 것이 거의 λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€.

2.4. μžμ› μ†Œλͺ¨κ°€ μ μŠ΅λ‹ˆλ‹€.

ν•΄μ‹œ ν•¨μˆ˜μ— μ‚¬μš©λ˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄ 비ꡐ적 λ‹¨μˆœν•˜κΈ° λ•Œλ¬Έμ— CPU, λ©”λͺ¨λ¦¬ λ“± μžμ› λ‚­λΉ„κ°€ 적어 λΉ λ₯΄κ²Œ ν•΄μ‹œ 값을 λ„μΆœν•  수 μžˆλ‹€λŠ” μž₯점이 μžˆμŠ΅λ‹ˆλ‹€.

3. ν•΄μ‹œ ν•¨μˆ˜ 자료ꡬ쑰

ν•΄μ‹œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ©΄ ν•΄μ‹œ 값을 인덱슀둜 μ‚¬μš©ν•˜λŠ” 자료ꡬ쑰λ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. μ›λ¦¬λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  1. ν•΄μ‹œ ν•¨μˆ˜μ— 값을 μž…λ ₯ν•©λ‹ˆλ‹€.
  2. ν•΄μ‹œ 값을 리슀트 일뢀 인덱슀둜 μ„€μ •ν•©λ‹ˆλ‹€.
  3. ν•΄μ‹œ κ°’μœΌλ‘œ 인덱싱 된 곡간에 ν•΄μ‹œ κ°’ κ΄€λ ¨ μž…λ ₯ 값을 μ‚½μž…ν•©λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ κ³ μ •λœ 길이의 값을 좜λ ₯ν•˜λŠ” ν•΄μ‹œ ν•¨μˆ˜ νŠΉμ„±μœΌλ‘œ 인해 μ„œλ‘œ λ‹€λ₯Έ 값을 μž…λ ₯해도 λ™μΌν•œ ν•΄μ‹œ 값이 생성될 수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ λ‹€μŒκ³Ό 같은 λ°©λ²•μœΌλ‘œ μΆ©λŒμ„ ν•΄κ²°ν•©λ‹ˆλ‹€.

3.1 ν•΄μ‹œ ν•¨μˆ˜ 자료ꡬ쑰 좩돌 ν•΄κ²° 방법

3.1. κ°œλ³„ 체이닝 방법 μ΄μš©ν•˜κΈ°

κ°œλ³„ 체이닝은 μž…λ ₯ 값을 μ—°κ²° 리슀트 λ°©μ‹μœΌλ‘œ λ™μΌν•œ ν•΄μ‹œ 값에 μ—°κ²°ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ 방법은 λ³΅μž‘ν•œ 기술이 ν•„μš”ν•˜μ§€ μ•Šκ³  직관적이기 λ•Œλ¬Έμ—, 일반적으둜 κ°œλ³„ 체이닝 λ°©λ²•μœΌλ‘œ 좩돌 문제λ₯Ό ν•΄κ²°ν•©λ‹ˆλ‹€.

3.2. μ˜€ν”ˆ μ–΄λ“œλ ˆμ‹± 방법 μ΄μš©ν•˜κΈ°

μ˜€ν”ˆ μ–΄λ“œλ ˆμ‹±μ€ μ„œλ‘œ λ‹€λ₯Έ μž…λ ₯ 값이 λ™μΌν•œ ν•΄μ‹œ 값을 생성할 λ•Œ μ—°κ²° 리슀트λ₯Ό μ‚¬μš©ν•˜μ—¬ μž…λ ₯ 값을 같은 곡간에 μ‚½μž…ν•˜λŠ” λŒ€μ‹  μ„œλ‘œ λ‹€λ₯Έ 곡간에 μ‚½μž…ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ΄λŸ¬ν•œ 방법은 λ³΅μž‘ν•˜κ³  μ œν•œλœ 컴퓨터 λ¦¬μ†ŒμŠ€λ₯Ό λΆˆν•„μš”ν•˜κ²Œ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— μ„±λŠ₯ μ €ν•˜ 문제λ₯Ό μΌμœΌν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

 

λŒ“κΈ€