ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

 

๐Ÿ‘ฉ๐Ÿป‍๐Ÿซ URL ๋‹จ์ถ•๊ธฐ๋ฅผ ์„ค๊ณ„ํ•ด ์ฃผ์„ธ์š”!

1๏ธโƒฃ URL ๋‹จ์ถ•: ์ฃผ์–ด์ง„ ๊ธด URL์„ Short URL๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค

    - ์›๋ณธ URL์„ Short URL๋กœ ๋‹จ์ถ•ํ•ด๋‹ฌ๋ผ๋Š” ์š”์ฒญ์ด ์˜ค๋ฉด Short URL์„ ์ œ๊ณตํ•œ๋‹ค.

2๏ธโƒฃ URL ๋ฆฌ๋””๋ ‰์…˜: Short URL๋กœ HTTP ์š”์ฒญ์ด ์˜ค๋ฉด ์›๋ž˜ ์›๋ณธ URL๋กœ ๋ฆฌ๋””๋ ‰์…˜ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์›๋ณธ URL: https://docs.google.com/forms/d/e/1FAIpQLSdjLMLaq-B-5lw4By1lP80guXM972bFPLWS8xMP_1HQ7lmh6A/viewform?usp=sf_link
ShortURL: https://forms.gle/r4Bmp3fkbBhZrV1S6

 

 

โœ”๏ธ URL ๋‹จ์ถ•๊ธฐ๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ, ๊ณ ๋ คํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค

  • URL์˜ ๊ธธ์ด
  • ๋‹จ์ถ• URL์— ํฌํ•จ๋  ๋ฌธ์ž ์ œํ•œ (ex. ์ˆซ์ž, ์˜๋ฌธ์ž)
  • ๋‹จ์ถ• URL์„ ์‹œ์Šคํ…œ์—์„œ ์ง€์šฐ๊ฑฐ๋‚˜ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?
  • ํŠธ๋ž˜ํ”ฝ ๊ทœ๋ชจ
  • ๊ณ ๊ฐ€์šฉ์„ฑ, ๊ทœ๋ชจ ํ™•์žฅ์„ฑ, ์žฅ์•  ๊ฐ๋‚ด

 


 

 

API ์—”๋“œํฌ์ธํŠธ

URL ๋‹จ์ถ• ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ 2๊ฐœ์˜ API ์—”๋“œํฌ์ธํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค!

1๏ธโƒฃ URL ๋‹จ์ถ•์šฉ ์—”๋“œํฌ์ธํŠธ

Post /api/v1/data/shorten
- ์ธ์ž: { longUrl: https://docs.google.com/forms/d/e/1FAIpQLSdjLMLaq-B-5lw4By1lP80guXM972bFPLWS8xMP_1HQ7lmh6A/viewform?usp=sf_link}
- ๋ฐ˜ํ™˜: { shortUrl: https://forms.gle/r4Bmp3fkbBhZrV1S6 }

 

2๏ธโƒฃ URL ๋ฆฌ๋””๋ ‰์…˜์šฉ ์—”๋“œํฌ์ธํŠธ

GET /r4Bmp3fkbBhZrV1S6
- ๋ฐ˜ํ™˜
  - 301 Moved Permanently, Location: https://docs.google.com/forms/d/e/1FAIpQLSdjLMLaq-B-5lw4By1lP80guXM972bFPLWS8xMP_1HQ7lmh6A/viewform?usp=sf_link
  - 302 Found, ...
  - HTTP 307 Temporary Redirect, ...

 

- 301๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” ์ด ์‘๋‹ต์„ ์บ์‹œํ•˜๊ณ , ์ถ”ํ›„ ๊ฐ™์€ ๋‹จ์ถ• URL์— ์š”์ฒญ์„ ๋ณด๋‚ผ ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ, ์บ์‹œ๋œ ์›๋ณธ URL๋กœ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค!

 

 

URL ๋‹จ์ถ•

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ธด URL์„ ํ•ด์‹œ ๊ฐ’์œผ๋กœ ๋Œ€์‘์‹œํ‚ฌ ํ•จ์ˆ˜ fx๋ฅผ ์ฐพ๋Š” ๊ฒƒ!

ํฌ๊ฒŒ ํ•ด์‹œ ๊ธฐ๋ฐ˜ ๋ณ€ํ™˜, ID ๊ธฐ๋ฐ˜ ๋ณ€ํ™˜ 2๊ฐ€์ง€๊ฐ€ ์กด์žฌ!

 

ํ•ด์‹œ ๊ธฐ๋ฐ˜ ๋ณ€ํ™˜

โœ”๏ธ  ์ถฉ๋Œ ํ›„ ํ•ด์†Œ๋ฒ•

1๏ธโƒฃ CRC32, MD5, SHA-2 ๊ฐ™์ด ์ž˜ ์•Œ๋ ค์ง„ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์›๋ณธurl์„ ํ•ด์‹ฑ

CRC32 0b08099a
MD5 496D4DF453CF0774FDEC238CB47133FC
SHA-2 10eafe015bceb28399d2da3b9dc8667097e72990c0768820c80ba623

 

2๏ธโƒฃ ํ•ด์‹œ๊ฐ’์„ URL์˜ ๊ธธ์ด ๋งŒํผ๋งŒ ์ด์šฉ

CRC32 0b08099a
MD5 496D4DF4
SHA-2 10eafe01

 

๐Ÿค” ์ด๋ ‡๊ฒŒ ํ•ด์‹œ๊ฐ’์˜ ์ผ๋ถ€๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ํ™•๋ฅ ์ด ๋†’์•„์ง€์ง€ ์•Š์„๊นŒ?

๐Ÿ’ก ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด, ์ถฉ๋Œ์ด ํ•ด์†Œ๋  ๋•Œ๊นŒ์ง€, ์‚ฌ์ „์— ์ •ํ•œ ๋ฌธ์ž์—ด์„ ํ•ด์‹œ๊ฐ’์— ๋ง๋ถ™์ด๊ณ  ๋‹ค์‹œ ํ•ด์‹œํ•จ์ˆ˜๋ฅผ ์ ์šฉ!

โ— ์ด ๋ฐฉ๋ฒ•์„ ์“ฐ๋ฉด Short URL์„ ๋งŒ๋“ค ๋•Œ DB์— ํ•œ๋ฒˆ ์ด์ƒ ์งˆ์˜ ํ•ด์•ผ ํ•จ์œผ๋กœ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค! (๋ธ”๋ฃธ ํ•„ํ„ฐ๋กœ ์„ฑ๋Šฅ ๊ฐœ์„  ๊ฐ€๋Šฅ)

 

 

โœ”๏ธ  base-62 ๋ณ€ํ™˜๋ฒ•

1๏ธโƒฃ ์›๋ณธ url์— ๋Œ€ํ•œ ์œ ์ผ ์•„์ด๋””๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. (์ฑ…์—์„œ๋Š” ์Šค๋…ธํ”Œ๋ ˆ์ดํฌ ๋ฐฉ๋ฒ•์„ ์ฑ„ํƒํ–ˆ์ง€๋งŒ, ์šฐ๋ฆฐ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์ด ์•„๋‹ˆ๋ฏ€๋กœ auto_increment, UUID๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋  ๊ฒƒ ๊ฐ™์Œ)

2๏ธโƒฃ ์ด ID๋ฅผ 62์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

3๏ธโƒฃ DB์— ID, ShortURL(ID์—์„œ base-62๋ฅผ ์ ์šฉํ•œ ๊ฐ’), ์›๋ณธURL์„ ์ €์žฅํ•œ๋‹ค.

 

 

URL ๋‹จ์ถ•๊ธฐ ์ฒ˜๋ฆฌ ํ๋ฆ„

โœ”๏ธ URL ๋‹จ์ถ• ์š”์ฒญ

1๏ธโƒฃ ์ž…๋ ฅ์œผ๋กœ ๊ธด URL์„ ๋ฐ›๋Š”๋‹ค.

2๏ธโƒฃ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ํ•ด๋‹น URL์— ๋Œ€์‘๋˜๋Š” ShortURL์ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค.

3๏ธโƒฃ - 1๏ธโƒฃ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์žˆ๋‹ค๋ฉด, ๋Œ€์‘๋˜๋Š” ShortURL์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

3๏ธโƒฃ - 2๏ธโƒฃ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—†๋‹ค๋ฉด, URL ๋‹จ์ถ• ๋กœ์ง์„ ์‹คํ–‰ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ €์žฅํ•œ ๋’ค ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

โœ”๏ธ ๋‹จ์ถ• URL๋กœ ์š”์ฒญ

1๏ธโƒฃ ์ž…๋ ฅ์œผ๋กœ ShortURL์„ ๋ฐ›๋Š”๋‹ค.

2๏ธโƒฃ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์›๋ณธ URL์„ ์ฐพ์•„ ๋ฆฌ๋””๋ ‰์…˜ํ•œ๋‹ค.

โ• ์ด ๊ณผ์ •์—์„œ DB ์š”์ฒญ ํšŸ์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜๋„ ์žˆ์Œ

 

 

๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2025/02   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
๊ธ€ ๋ณด๊ด€ํ•จ