8์ฅ
์๊ตฌ์ฌํญ
์ฃผ์ด์ง url์ ๋ํด ๋จ์ถ url์ ๊ฒฐ๊ณผ๋ก ์ ๊ณตํ๋ฉฐ, ๋จ์ถ url์ ์ ์ํ๋ฉด ์๋ URL๋ก ์ ์๋จ
ํธ๋ํฝ ๊ท๋ชจ๋ ๋งค์ผ 1์ต๊ฐ
์งง์ผ๋ฉด ์งง์์๋ก ์ข์
์ฌ์ฉ ๋ฌธ์๋ 0
9, aZ๋จ์ถ๋ URL์ ์ญ์ ๋ ๊ฐฑ์ ๋์ง ์์
๊ณ๋ต์ ์ถ์
์ฐ๊ธฐ ์ฐ์ฐ: ๋งค์ผ 1์ต๊ฐ์ ๋จ์ถ URL ์์ฑ
์ด๋น ์ฐ๊ธฐ ์ฐ์ฐ: 1์ต/ 24/ 3600 = 1160
์ฝ๊ธฐ ์ฐ์ฐ: ์ฝ๊ธฐ ์ฐ์ฐ๊ณผ ์ฐ๊ธฐ ์ฐ์ฐ์ด 10:1์ด๋ผ๊ณ ๊ฐ์ . ์ฝ๊ธฐ ์ฐ์ฐ์ ์ด๋น 11600ํ ๋ฐ์
10๋ ๊ฐ ์ด์์, 3650์ต ๊ฐ์ ๋ ์ฝ๋ ๋ณด๊ดํด์ผํจ
์ถ์ฝ ์ URL์ ํ๊ท ๊ธธ์ด๋ฅผ 100์ด๋ผ๊ณ ํ๋ฉด, 10๋ ๋์ ํ์ํ ์ฉ๋์ 36.5TB
API ์ค๊ณ
POST /api/v1/data/shorten
GET /api/v1/shortUrl
์๋ URL = hastTable.get(๋จ์ถ URL)
301, 302 ์๋ต์ ์ฌ์ฉํ ์ ์์
URL ๋จ์ถ ํด์ ํจ์
์ฌ์ฉํ ์ ์๋ ๋ฌธ์ ๊ฐฏ์ = 62๊ฐ
10๋ ๊ฐ 3650์ต๊ฐ์ URL์ ๋ง๋ค์ด์ผํ๋๋ฐ,
n = 7์ด๋ฉด 3.5์กฐ๊ฐ์ URL์ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์, hashValue๋ 7๋ก ์ถฉ๋ถ
ํด์ ํ ์ถฉ๋ ํด์
์์ฌ์ด ๋ฐฉ๋ฒ์ ์ ์๋ ค์ง ํด์ ํจ์(CRC32, MD5, SHA-1)์ ์ฌ์ฉํ๋ ๊ฒ
๊ทธ๋ฌ๋ ๊ฐ์ฅ ์งง์ ํด์๊ฐ๋ 7๋ณด๋ค ๊ธธ์ด์ ํ๋ฆ
์ฒซ ๋ฒ์งธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ณ์ฐ๋ ํด์ ๊ฐ์์ ์ฒ์ 7๊ฐ ๊ธ์๋ง ์ฌ์ฉํ๋ ๊ฒ
์ถฉ๋์ด ๋ฐ์ํ๋ฉด ์ถฉ๋์ด ํด์๋ ๋๊น์ง ์ฌ์ ์ ์ ํ ๋ฌธ์์ด์ ํด์๊ฐ์ ๋ง๋ถ์ธ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ง์๋ฅผ ํด์ผํด์ ์ค๋ฒํค๋๊ฐ ํฌ๋ค.
๋ธ๋ฃธ ํํฐ๋ฅผ ์ฐ๋ฉด ์ค์ผ ์ ์์
๋ ๋ฒ์งธ ๋ฐฉ๋ฒ
base conversion์ ์ ์ฉ โ ๋ฌธ์ ๊ฐ์๊ฐ 62๋๊น base-62๋ณํ์ ํ๋ฉด ๋จ
)
๊ฐ๋ต์ ์ธ ์์๋
๋ฆฌ๋๋ ์
์ค๊ณ
์ฌ์ฉ์๊ฐ ๋จ์ถ URL์ ํด๋ฆญํ๋ค.
๋ก๋๋ฐธ๋ฐ์๊ฐ ํด๋น ํด๋ฆญ์ผ๋ก ๋ฐ์ํ ์์ฒญ์ ์น ์๋ฒ์ ์ ๋ฌํ๋ค.
๋จ์ถ URL์ด ์ด๋ฏธ ์บ์์ ์๋ ๊ฒฝ์ฐ์๋ ์๋ URL์ ๋ฐ๋ก ๊บผ๋๋ด์ ์ ๋ฌํ๋ค.
์บ์์ ์๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊บผ๋ธ๋ค.
๊บผ๋ธ URL์ ์บ์์ ๋ฃ์ ํ ๋ฐํํ๋ค.
์กฐ๊ธ ๋ ์ด์ผ๊ธฐํด๋ณผ๋งํ ๊ฒ
์ฒ๋ฆฌ์จ ์ ํ ์ฅ์น
IP ์ฃผ์๋ฅผ ๋น๋กฏํ ํํฐ๋ง ๊ท์น
์น ์๋ฒ์ ๊ท๋ชจ ํ์ฅ
stateless ๊ณ์ธต์ด๋ฏ๋ก, ์์ ๋กญ๊ฒ ๊ท๋ชจ ์กฐ์ ๊ฐ๋ฅ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ท๋ชจ ํ์ฅ
๋ค์คํ ํน์ ์ค๋ฉ์ผ๋ก ๊ท๋ชจ ํ์ฅ์ฑ ๋ฌ์ฑ
๋ฐ์ดํฐ ๋ถ์ ์๋ฃจ์
์ด๋ค ๋งํฌ๋ฅผ ๋ง์ด ํด๋ฆญํ๋์ง, ์ธ์ ํด๋ฆญํ๋์ง ๋ฑ ๋ถ์ ๊ฐ๋ฅ
๊ฐ์ฉ์ฑ, ๋ฐ์ดํฐ ์ผ๊ด์ฑ, ์์ ์ฑ
Last updated