μμ μμ€ν
μ κΈ°λ³Έμ κΈ°λ₯
1. URL λ¨μΆκΈ°: μ£Όμ΄μ§ κΈ΄ URLμ ν¨μ¬ μ§§κ² μ€μΈλ€.
2. URL 리λλ μ
(Redirection): μΆμ½λ URLλ‘ HTTP μμ²μ΄ μ€λ©΄ μλ URLλ‘ μλ΄
3. λμ κ°μ©μ±κ³Ό κ·λͺ¨ νμ₯μ±, κ·Έλ¦¬κ³ μ₯μ κ°λ΄κ° μꡬ
2λ¨κ³. κ°λ΅μ μ€κ³μ μ μ λ° λμ ꡬνκΈ°
ν΄λΌμ΄μΈνΈλ μλ²κ° μ 곡νλ API μλν¬μΈνΈλ₯Ό ν΅ν΄ μλ²μ ν΅μ
URL λ¨μΆκΈ° - (μΌλ°μ ) 2κ°μ μλν¬μΈνΈ μꡬ
1. URL λ¨μΆμ© μλν¬μΈνΈ
μ λ¨μΆ URLμ μμ±νκ³ μ νλ ν΄λΌμ΄μΈνΈ
-μ΄ μλν¬μΈνΈμ λ¨μΆν URLμ μΈμλ‘ μ€μ΄μ POST μμ²
POST /api/v1/data/shorten
- μΈμ: {longUrl: longURLstring}
- λ°ν: λ¨μΆ URL
2. URL 리λλ μ
μ© μλν¬μΈνΈ
λ¨μΆ URLμ λν΄ HTTP μμ²μ΄ μ€λ©΄ μλ URLλ‘ λ³΄λ΄μ£ΌκΈ° μν μ©λ
GET /api/v1/shortUrl
- λ°ν: HTTP 리λλ μ λͺ©μ μ§κ° λ μλ URL
ν΄λΌμ΄μΈνΈ-μλ² μ¬μ΄μ ν΅μ μ μ°¨
μ¬κΈ°μ μ μν΄μΌ ν κ²μ 301 μλ΅κ³Ό 302 μλ΅μ μ°¨μ΄
μλ² λΆνλ₯Ό μ€μ΄λ κ²μ΄ μ€μνλ©΄ 301 Permanent Moved
νΈλν½ λΆμ(analytis)μ΄ μ€μν λλ 302 Found
URL 리λλ μ μ ꡬννλ κ°μ₯ μ§κ΄μ μΈ λ°©λ²μ ν΄μ ν μ΄λΈμ μ¬μ©νλ κ².
ν΄μ ν¨μλ λ€μ μꡬμ¬νμ λ§μ‘±ν΄μΌ ν¨
3λ¨κ³. μμΈ μ€κ³
λ°μ΄ν° λͺ¨λΈ
ν΄μ ν
μ΄λΈ - μ΄κΈ° μ λ΅μλ γ±γ
μ§λ§ μ€μ μμ€ν
μ μ°κΈ°μλ κ³€λ..
λ λμ λ°©λ²μ <λ¨μΆ URL, μλ URL>μ μμμμ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ μ μ₯νλ λ°©λ²
ν΄μ ν¨μ
μλ URLμ λ¨μΆ URLλ‘ λ³ννλ λ° μ°μ
νΈμμ ν΄μ ν¨μκ° κ³μ°νλ λ¨μΆ URL κ°μ hashvalueλΌκ³ μ§μΉ.
ν΄μ ν¨μ ꡬνμ μ°μΌ κΈ°μ λ‘λ 1. ν΄μ ν μΆ©λ ν΄μ λ°©λ² κ³Ό 2. base-62 λ³ν λ²μ μμ보μ.
1π€2. λ μ κ·Όλ²μ λΉκ΅
velogλ 무μ¨.. ν λ§λ€κΈ°λ μλλ Έ..
URL λ¨μΆκΈ° μμΈ μ€κ³
μμ μμλ 62μ§λ² λ³ν κΈ°λ²μ μ¬μ©ν΄ μ€κ³ν κ²μ΄κ³ . κ·Έ μ²λ¦¬ νλ¦μ μμλ ννλ‘ μ 리ν κ².
URL 리λλ μ
μμΈ μ€κ³
[μ¬μ§]
4λ¨κ³. λ§λ¬΄λ¦¬
μμμ λ€λ£¬ λ΄μ©μ μ μΈνκ³ κ³ λ €ν΄λ³΄μμΌ ν λΆλΆλ€
1. μ²λ¦¬μ¨ μ ν μ₯μΉ(rate limiter)
2. μΉ μλ²μ κ·λͺ¨ νμ₯
3. λ°μ΄ν°λ² μ΄μ€μ κ·λͺ¨ νμ₯
4. λ°μ΄ν° λΆμ μ루μ
(analytics)
5. κ°μ©μ±, λ°μ΄ν° μΌκ΄μ±, μμ μ±