Logo
Hyunsu Blog
book

๐Ÿ“†Published :Dec 15, 2023 โ€ข

๐Ÿ“†Updated :Dec 15, 2023 โ€ข

โ˜•๏ธ3min

ํ•ด์‹œ

  • ์ด ๊ธ€์€ ๊ณจ๋“ ๋ž˜๋น— ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ํ•ฉ๊ฒฉ์ž ๋˜๊ธฐ ํŒŒ์ด์ฌ ํŽธ์˜ 8์žฅ ์จ๋จธ๋ฆฌ์ž…๋‹ˆ๋‹ค.

ํ•ด์‹œ์˜ ํŠน์ง•

  1. ๋‹จ๋ฐ˜ํ–ฅ์œผ๋กœ ๋™์ž‘ - ํ‚ค -> ๊ฐ’ โœ…, ๊ฐ’ -> ํ‚ค โŒ
  2. ํ‚ค๋Š” ํ•ด์‹œํ•จ์ˆ˜์—์˜ํ•ด ์ธ๋ฑ์Šค๊ฐ€ ๋˜๋ฏ€๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ฐพ์•„๋ณด๋Š” ๊ณผ์ •์ด ํ•„์š”์—†๋‹ค.
  3. ํ•˜๋‚˜์”ฉ ์ฐพ์•„๋ณด๋Š” ์ˆœ์ฐจํƒ์ƒ‰์˜ ๊ณผ์ • ํ•„์š”์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํšจ์œจ์ด ์ข‹๋‹ค.

ํ•ด์‹œ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ถ„์•ผ

  • ๋น ๋ฅด๊ฒŒ ์›ํ•˜๋Š” ๊ฐ’์„ ๊ฒ€์ƒ‰. -> ํŠน์ •๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ ๋˜๋Š” ๋ณด์•ˆ์ด ํ•„์š”ํ•œ ๋•Œ ์‚ฌ์šฉ
  • ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ํšŸ์ˆ˜๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ ํ•ด์‹œ ๊ณ ๋ ค

๋ฆฌ์–ผ์›”๋“œ์—์„œ์˜ ํ™œ์šฉ ๋ถ„์•ผ

  • ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ด€๋ฆฌ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ๋ฑ์‹ฑ
  • ๋ธ”๋ก์ฒด์ธ

ํ•ด์‹œ ํ•จ์ˆ˜ ๊ตฌํ˜„

ํŒŒ์ด์ฌ์˜ ๊ฒฝ์šฐ ๋”•์…”๋„ˆ๋ฆฌ์˜ ์ž๋ฃŒํ˜•์ด ํ•ด์‹œ์™€ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘.

ํ•ด์‹œ ํ•จ์ˆ˜ ๊ตฌํ˜„์‹œ ๊ณ ๋ คํ•  ๋‚ด์šฉ

  • ์•„๋ž˜ ์ด๋ฏธ์ง€ ์ฒ˜๋Ÿผ ํ‚ค๊ฐ’์ด ํ™๊ธธ๋™์ธ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ฐพ์„ ๊ฒฝ์šฐ, ํ•ด์‹œํ•จ์ˆ˜๋ฅผ ํ†ตํ•œ ์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๋ฅผ ๋„˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.
hash
  • ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ํ‚ค์— ๋Œ€ํ•œ ํ•ด์‹ฑ ํ•จ์ˆ˜ ๊ฒฐ๊ณผ๊ฐ€ ๋™์ผํ•œ ๊ฒฝ์šฐ๊ฐ€ ์ตœ๋Œ€ํ•œ ์ ์–ด์•ผ ํ•œ๋‹ค. -> ์ถฉ๋Œ ๋ฐœ์ƒ์ด ์ ์–ด์•ผ ํ•œ๋‹ค.
hash collision

์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํ•ด์‹œ ํ•จ์ˆ˜ ๊ทธ๋ฆฌ๊ณ  ์ถฉ๋Œ ๋ฐฉ์ง€ ๋ฐฉ๋ฒ•

๋‚˜๋ˆ—์…ˆ๋ฒ•

  • ํ‚ค๋ฅผ ์†Œ์ˆ˜๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ํ™œ์šฉ

h(x) = x mod k

  • x๋Š” ํ‚ค, k๋Š” ์†Œ์ˆ˜. ํ‚ค๋ฅผ ์†Œ์ˆ˜๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ (= x๋ฅผ k๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉ)
  • k ๊ฐ€ ์†Œ์ˆ˜์—ฌ์•ผ ํ•˜๋Š” ์ด์œ ? ์ถฉ๋Œ์ด ์ ๊ธฐ ๋•Œ๋ฌด.
  • ์˜ˆ๋ฅผ ๋“ค์–ด k๊ฐ€ 15(15๋Š” 3์˜ ๋ฐฐ์ˆ˜์ด์ž 5์˜ ๋ฐฐ์ˆ˜->์†Œ์ˆ˜x) ์ผ ๊ฒฝ์šฐ ๊ทธ๋ฆฌ๊ณ  x๋Š” 3์˜ ๋ฐฐ์ˆ˜์ผ ๊ฒฝ์šฐ h(x) = x mod 15 ์˜ ํ•ด์‹œํ•จ์ˆ˜๋ฅผ ์ ์šฉํ–ˆ์„ ๋•Œ ๋ฐ˜ํ™˜๋˜๋Š” ์ธ๋ฑ์Šค๊ฐ€ 3,6,9,12, 0 ,3,6,9,12,0 ... ์œผ๋กœ ์ถฉ๋Œ ํ•œ๋‹ค.
  • ์ด๋Š” x ๊ฐ€ k์˜ ์•ฝ์ˆ˜ 3*5 =15 ์ด๊ธฐ ๋•Œ๋ฌธ.

๋‚˜๋ˆ—์…ˆ๋ฒ•์˜ ๋‹จ์ 

  • k์— ๋Œ€ํ•œ ๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ์ด๋ฏ€๋กœ ์ธ๋ฑ์Šค๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ํ•ด์‹œํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๋Š” ์ด k ์ด๋‹ค. ์ฆ‰ ๋ฐ์ดํ„ฐ๋ฅผ k ๊ฐœ ๋งŒ ๋‹ด์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ํฐ ์ˆ˜์˜ k(=์†Œ์ˆ˜) ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

๊ณฑ์…ˆ๋ฒ•

  • ๊ณฑ์…ˆ๋ฒ•์˜ ์˜ˆ์ œ.
  • ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๊ฐ€ m = 10์ด๊ณ , ์ƒ์ˆ˜ A๊ฐ€ ํ™ฉ๊ธˆ๋น„์œจ๊ณผ ๊ด€๋ จ๋œ ๊ฐ’ 0.6180339887์ด๋ผ๊ณ  ๊ฐ€์ • ํ•œ๋‹ค. ํ‚ค k = 123456์— ๋Œ€ํ•œ ํ•ด์‹œ ๊ฐ’์„ ๊ณ„์‚ฐ
  • k ร— A = 123456 ร— 0.6180339887 โ‰ˆ 76286.0778
  • ์†Œ์ˆ˜ ๋ถ€๋ถ„ ์ถ”์ถœ: 0.0778
  • ํ•ด์‹œ ํ…Œ์ด๋ธ” ํฌ๊ธฐ์™€ ๊ณฑ์…ˆ: 0.0778 ร— 10 โ‰ˆ 0.778
  • ๋‚ด๋ฆผ ์—ฐ์‚ฐ: 0.778 = 0
  • ๋”ฐ๋ผ์„œ ํ‚ค 123456์˜ ํ•ด์‹œ ๊ฐ’์€ 0์ด ๋œ๋‹ค.
  • ๊ณฑ์…ˆ๋ฒ•์€ ์œ„์™€ ๊ฐ™์ด ์†Œ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋ฌธ์ž์—ด ํ•ด์‹ฑ

  • ๋‚˜๋ˆ—์…ˆ๋ฒ•๊ณผ ๊ณฑ์…ˆ๋ฒ•์€ ํ‚ค์˜ ์ž๋ฃŒํ˜•์ด ์ˆซ์ž์ธ๋ฐ ๋ฐ˜ํ•ด, ๋ฌธ์ž์—ด ํ•ด์‹ฑ์€ ํ‚ค์˜ ์ž๋ฃŒํ˜•์œผ๋กœ ๋ฌธ์ž์—ด์„ ๊ฐ–๋Š”๋‹ค.

polynomial rolling hash method

  • ์ด ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด ํ•ด์‹ฑ์˜ ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด 'abc'๋ผ๋Š” ๋‹จ์–ด๋ฅผ ํ•ด์‹ฑ์˜ ๊ฒฝ์šฐ ์—ฌ๊ธฐ์„œ 'p'๋ฅผ 31๋กœ ์ •ํ•˜๊ณ , ๊ฐ ๊ธ€์ž๋ฅผ ์ˆซ์ž๋กœ ๋ฐ”๊พผ๋‹ค.
'a' = 1 'b' = 2 'c' = 3
  • ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฐ ์ˆซ์ž์— 'p'์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์„ ๊ณฑํ•˜๊ณ  ๋ชจ๋‘ ๋”ํ•œ๋‹ค.
'a'์˜ ํ•ด์‹œ: 1 * 31^0 = 1 'b'์˜ ํ•ด์‹œ: 2 * 31^1 = 62 'c'์˜ ํ•ด์‹œ: 3 * 31^2 = 2883
  • ๋ง์…ˆ ์—ฐ์‚ฐ์˜ ๊ฒฝ์šฐ ์ˆซ์ž๊ฐ€ ๋„ˆ๋ฌด ํฌ๋ฉด ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•ด ์ค€๋‹ค.
  • ๋ชจ๋‘ ๋”ํ•˜๋ฉด: 1 + 62 + 2883 = 2946
  • ๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ: 2946 % 100 = 46
  • 'abc'์˜ ํ•ด์‹œ๊ฐ’์€ 46๊ฐ€ ๋œ๋‹ค.
  • ๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ์ด ์žˆ๋Š” ๋ฌธ์ œ ์ค‘ ํฐ ์ˆ˜๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฌธ์ œ๋Š” ์ด๋Ÿฐ ์˜ค๋ฒ„ํ”Œ๋กœ ํ•จ์ •์— ์œ ์˜!

์ถฉ๋Œ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•

  • ์„œ๋กœ ๋‹ค๋ฅธ ํ‚ค์— ๋Œ€ํ•ด ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ’(=ํ•ด์‹œํ…Œ์ด๋ธ”์˜ ํ‚ค๊ฐ’)๊ณผ ๊ฐ™์œผ๋ฉด ์ถฉ๋Œ์ด๋ผ๊ณ  ํ•œ๋‹ค.

1. ์ฒด์ด๋‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ

  • ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•
  • ํ•ด๋‹น ๋ฒ„ํ‚ท์— ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ™์€ ํ•ด์‹œ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ.

2. ๊ฐœ๋ฐฉ ์ฃผ์†Œ๋ฒ•์œผ๋กœ ์ฒ˜๋ฆฌ

  • ๋ฒ„ํ‚ท์„ ์ฐพ์•„ ์ถฉ๋Œ๊ฐ’์„ ์‚ฝ์ž… ํ•˜๋Š” ๋ฐฉ์‹.
  • ํ•ด์‹œํ…Œ์ด๋ธ”๋‚ด์—์„œ ๋ฒ„ํ‚ท์„ ์ฐพ์œผ๋‹ˆ ๋‹น์—ฐํžˆ ํ•ด์‹œํ…Œ์ด๋ธ”์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๋ฏ€๋กœ, ์ฒด์ด๋‹ ์ฒ˜๋ฆฌ ๊ธฐ๋ฒ• ๋ณด๋‹ค ํšจ์œจ์ ์ด๋‹ค. (์ฒด์ด๋‹์€ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค )

2.1. ๋นˆ ๋ฒ„ํ‚ท์„ ์ฐพ๋Š” ๋ฐฉ์‹ ์„ ํ˜• ํƒ์‚ฌ ๋ฐฉ์‹ (Linear Probing)

  • ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์„ ์œ ์ง€ํ•˜๋ฉฐ ์ด๋™ํ•˜๋ฉด์„œ ๋นˆ๊ณต๊ฐ„์„ ์ฐพ๋Š”๋‹ค.
  • ์—ฌ๊ธฐ์„œ์˜ ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์€ 1์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

์ˆ˜์‹

h(k,i)=(h(k)+i) % m

ํ•ด์‹œ ํ•จ์ˆ˜ h(k)๋Š” ์ฃผ์–ด์ง„ ํ‚ค k์— ๋Œ€ํ•œ ํ•ด์‹œ ํ…Œ์ด๋ธ” ๋‚ด์˜ ์ดˆ๊ธฐ ์œ„์น˜(์ธ๋ฑ์Šค)๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.๋งŒ์•ฝ ํ•ด๋‹น ์œ„์น˜์— ์ด๋ฏธ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์–ด ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ๋‹ค๋ฉด, i(= ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ, 1)์˜ ๊ฐ’์„ ์ฆ๊ฐ€์‹œ์ผœ ์ƒˆ๋กœ์šด ์œ„์น˜๋ฅผ ์ฐพ๋Š”๋‹ค. ์ƒˆ ์œ„์น˜๋Š” ์ดˆ๊ธฐ ํ•ด์‹œ ๊ฐ’ h(k)์— i๋ฅผ ๋”ํ•œ ๊ฐ’์— mod m ์—ฐ์‚ฐ์„ ์ ์šฉํ•˜์—ฌ ๊ณ„์‚ฐ ํ•œ๋‹ค.(mod ์—ฐ์‚ฐ์€ ์ƒˆ ์œ„์น˜๊ฐ€ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๋ฅผ ๋„˜์–ด ๊ฐ€์ง€ ์•Š๋„๋ก ๋ณด์žฅํ•จ). ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜์—ฌ ๋นˆ ์œ„์น˜๋ฅผ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๊ณ„์† ๋ฐ˜๋ณตํ•œ๋‹ค.

์˜ˆ์‹œ

  • ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๊ฐ€ 10์ด๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ํ•ด์‹œ ํ•จ์ˆ˜์— ์˜ํ•ด 7๋ฒˆ ์œ„์น˜์— ์ €์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •
  • ์ฒซ ๋ฒˆ์งธ ์‹œ๋„ (i=0): ์œ„์น˜ = (7 + 0) mod 10 = 7
  • ๋‘ ๋ฒˆ์งธ ์‹œ๋„ (i=1): ์œ„์น˜ = (7 + 1) mod 10 = 8
  • ์„ธ ๋ฒˆ์งธ ์‹œ๋„ (i=2): ์œ„์น˜ = (7 + 2) mod 10 = 9 ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ณ„์† ํƒ์‚ฌ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

์ด์ค‘ ํ•ด์‹ฑ ๋ฐฉ์‹

  • ํ•ด์‹œํ•จ์ˆ˜๋ฅผ 2๊ฐœ ์‚ฌ์šฉ
  • ์ฒซ ๋ฒˆ์งธ ํ•จ์ˆ˜๊ฐ€ ๋งํ•ด์ฃผ๋Š” ์ž๋ฆฌ๊ฐ€ ์ฐจ ์žˆ์œผ๋ฉด, ๋‘ ๋ฒˆ์งธ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ƒˆ๋กœ์šด ์ž๋ฆฌ๋ฅผ ์ฐพ๋Š”๋‹ค. ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์„œ ๋น„์–ด ์žˆ๋Š” ์ž๋ฆฌ๋ฅผ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด h1(k), h2(k) ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ ์žˆ๊ณ  ์ถฉ๋Œ์ด ๋‚ฌ์„ ๊ฒฝ์šฐ, h1(k)๊ฐ€ 7๋ฒˆ์ž๋ฆฌ์— ๋‘๋ผ๊ณ  ํ•œ๋‹ค. 7๋ฒˆ ์ž๋ฆฌ๋ฅผ ํ™•์ธ ํ•˜๋Š”๋ฐ ์ด๋ฏธ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด, h2(k) ํ•จ์ˆ˜๊ฐ€ 3์นธ ๋’ค์— ๋‘๋ผ๊ณ  ์ง€์‹œํ•˜๋ฉด 7๋ฒˆ+3์นธ=10๋ฒˆ์งธ ์ž๋ฆฌ๋ฅผ ํ™•์ธํ•œ๋‹ค. 10๋ฒˆ์งธ ์ž๋ฆฌ์—๋„ ์—†๋‹ค๋ฉด ๋‹ค์‹œ h2(k)ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ ๊ฐ’์— ๋”ฐ๋ผ ์ด๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

์ˆ˜์‹

h(k,i) = (h1(k)+i * h2(k))% m

  • ์œ„์˜ ์ˆ˜์‹์€ ์‹ค์ œ ๊ณ„์‚ฐํ•  ๋•Œ ์ด๋ ‡๊ฒŒ ์“ฐ์ธ๋‹ค.

(h1(k)mod % m) + (i*h2(k) % m )


๋งˆ๋ฌด๋ฆฌ

  • ์•ž์„œ ์„ค๋ช…ํ•œ ํ•ด์‹ฑ์˜ ํ•ต์‹ฌ์€ ํ‚ค์™€ ๊ฐ’์„ ๋งคํ•‘ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.
  • ํฐ ์ˆ˜๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒฝ์šฐ ์˜ค๋ฒ„ํ”Œ๋กœ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“ˆ๋Ÿฌ๋„ ์œ ์˜ํ•ด์•ผ ํ•œ๋‹ค.
  • ํŠน์ • ์ •๋ณด์™€ ๋งคํ•‘ํ•˜๋Š” ๊ฐ’์˜ ๊ด€๊ณ„๋ฅผ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ปจ์…‰์ด ์žˆ๋‹ค๋ฉด ํ•ด์‹œ๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

Hi, I'm Hyunsu ๐Ÿ‘‹

Profile Image

์•ˆ๋…•ํ•˜์„ธ์š”. ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ์ฃผํ˜„์ˆ˜์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ํ’๋ถ€ํ•˜๊ณ  ๊ฐ€์น˜ ์žˆ๋Š” ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ์ผ์— ๋ฟŒ๋“ฏํ•จ์„ ๋Š๋‚๋‹ˆ๋‹ค.

์˜ต์‹œ๋””์–ธ(Obsidian)์—์„œ ํ˜„์žฌ ๋ธ”๋กœ๊ทธ๋กœ ํ•˜๋‚˜์”ฉ ๊ธ€์„ ์˜ฎ๊ธฐ๋Š” ๊ณผ์ •์— ์žˆ์–ด์š”. โ˜•๏ธ ๐Ÿ‘ฉโ€๐Ÿ’ป โ›ท

Github on ViewReach Me Out