Skip to content

Rake manual

JungHyun edited this page Jan 15, 2015 · 74 revisions

Rake๋ž€

  • Rake๋Š” ์•ฑ์ด๋‚˜ ์›น์œผ๋กœ๋ถ€ํ„ฐ ์ง์ ‘ ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ์ˆ˜์ง‘ ์‹œ์Šคํ…œ์ด๋‹ค.
  • ์•ฑ์ด๋‚˜ ์›น์— ํ•œ ๋ธ”๋Ÿญ์˜ ์ฝ”๋“œ๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์œผ๋กœ ์‰ฝ๊ฒŒ ๋กœ๊ทธ ์ˆ˜์ง‘์ด ๊ฐ€๋Šฅํ•˜๋‹ค., android, web, mobile web์˜ ๋กœ๊ทธ ์ˆ˜์ง‘์„ ์ง€์›ํ•œ๋‹ค.
  • ๋‚ด๋ถ€์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๋Š” ์˜คํ”ˆ ์†Œ์Šค์ธ mixpanel์„ ์ด์šฉํ•˜์—ฌ ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ์ˆ˜์ •, ์ถ”๊ฐ€ํ•˜์˜€์œผ๋ฉฐ, ์„œ๋ฒ„๋Š” ์ž์ฒด ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค.

rake

Download

(11์›” 19์ผ)android 0.3.14 ๋ฒ„์ „์—์„œ sentinel_meta ํ•ญ๋ชฉ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

(9์›” 17์ผ)android 0.3.13 ๋ฒ„์ „์—์„œ MDN ํ•„๋“œ๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. (๊ธฐ์กด์—๋Š” ๋นˆ ๊ฐ’์ด์—ˆ์Œ)

(6์›” 10์ผ)android 0.3.10 ๋ฒ„์ „๋ถ€ํ„ฐ MDN ์ž๋™ ์ˆ˜์ง‘ ๋Œ€์ƒ์—์„œ ์ œ์™ธํ–ˆ์Šต๋‹ˆ๋‹ค. (CV์ถ”์ง„ํŒ€ ์š”๊ตฌ ์‚ฌํ•ญ)

(5์›” 30์ผ)iOS client 1.7.5, android client 0.3.9 ๋ฒ„์ „๋ถ€ํ„ฐ sentinel shuttle ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

(4์›” 29์ผ)iOS client 1.7.0, android client 0.3.3 ๋ฒ„์ „๋ถ€ํ„ฐ Mixpanelํด๋ž˜์Šค๊ฐ€ Rakeํด๋ž˜์Šค๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

(4์›” 29์ผ)iOS client 1.7.0, android client 0.3.3 ๋ฒ„์ „๋ถ€ํ„ฐ ์ž๋™ ์ˆ˜์ง‘ ํ•„๋“œ๋“ค์˜ ํ˜•์‹์ด camelCase์—์„œ snake_case๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

(4์›” 10์ผ)์ตœ์‹  ๋ฒ„์ „๋ถ€ํ„ฐ track ํ•จ์ˆ˜ ์ธ์ž์—์„œ event๊ฐ€ ์ œ์™ธ๋˜๊ณ  dictionary(ios)/JSONObject(android)๋งŒ ๋ฐ›๋„๋ก ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์ˆœ์„œ๋กœ ์ž‘์—…์„ ํ•˜๋ฉด ๋˜๋‚˜?

๋กœ๊ทธ ์ž…์ˆ˜ ์‹ ์ฒญ๊ณผ ๋ฌธ์˜๋Š” DI service desk์—์„œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. Setinel์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด(ํ˜„์žฌ๋Š” ๊ธฐ๋ณธ ์‚ฌ์šฉํ•ด์•ผ ํ•จ), ๋จผ์ € sentinel id/password๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„ ๋กœ๊ทธ ์ •์˜๋ฅผ ํ•ด์•ผํ•˜๋ฉฐ, sentinel shuttle library๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„ rake client์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  2. Rake ๊ด€๋ฆฌ์ž๋กœ๋ถ€ํ„ฐ id/password๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๋Š”๋‹ค.
  3. https://web.rake.skplanet.com:8443/log/ ์— ์ ‘์†ํ•˜์—ฌ ๋กœ๊ทธ์ธ ํ•œ ํ›„, ํ† ํฐ์„ ๋ฐœ๊ธ‰๋ฐ›๋Š”๋‹ค. (Token ๋ฐœ๊ธ‰ ์ฐธ๊ณ )
  4. "์‰ฝ๊ฒŒ ์ฝ”๋“œ ๋„ฃ๊ธฐ"๋ฅผ ๋ณด๊ณ  iOS, android, web, mobile web์— ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
  5. ๊ฐœ๋ฐœ ์ค‘์— Tailer๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ๊ฐ€ ์ž˜ ์ „๋‹ฌ๋˜๋Š” ์ง€ ํ™•์ธํ•œ๋‹ค.
  6. ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐฐํฌํ•˜๊ธฐ ์ „์—๋Š”, ์‹ค ํ™˜๊ฒฝ์šฉ token์„ ๋ฐ›๋Š”๋‹ค. ๊ฐœ๋ฐœ token ๋Œ€์‹  ์‹ค ํ™˜๊ฒฝ์šฉ token์„ ์‚ฌ์šฉํ•œ๋‹ค.
  7. Sentinel์„ ํ†ตํ•œ ๋กœ๊ทธ ์ •์˜, Rake ๊ฐœ๋ฐœ ๋ชจ๋‘ ์™„๋ฃŒ๋˜๋ฉด, ์‹ค ํ™˜๊ฒฝ ๋ชจ๋“œ(token, flag ๋ณ€๊ฒฝ)์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ, ์‹ค ํ™˜๊ฒฝ์—์„œ ๋กœ๊ทธ๋ฅผ ๋ณด๋‚ด๋ณธ๋‹ค.
  8. ์‹ค ํ™˜๊ฒฝ์—์„œ ๋กœ๊ทธ๋ฅผ ๋ณด๋‚ธ ํ›„, Hadoop ์—ฐ๋™ ์š”์ฒญ์„ Rake ๋‹ด๋‹น์ž์—๊ฒŒ ์š”์ฒญํ•œ๋‹ค. ์ด ์ž‘์—…์€ ์‹ค ์„œ๋น„์Šค ์˜คํ”ˆ ์ „์— ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•จ. (hadoop ์—ฐ๋™ ์š”์ฒญ์ด ๋˜์•ผ ์‹คํ™˜๊ฒฝ ๋กœ๊ทธ๊ฐ€ hadoop ์— ์ ์žฌ๋จ)

Token ๋ฐœ๊ธ‰ํ•˜๊ธฐ

Token์ด๋ž€?

  • Token์ด๋ž€ ์ธ์ฆ์„ ์œ„ํ•ด ๋ฐœ๊ธ‰๋˜๋Š” ์ผ๋ จ์˜ ๋ฌธ์ž์—ด์ด๋‹ค.
  • ์•ฑ, ์›น ์ƒ์—์„œ๋Š” ๋ฌธ์ž์—ด ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์˜ ํ† ํฐ๊ณผ ์‹ค ํ™˜๊ฒฝ์˜ ํ† ํฐ์€ ์„œ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ๋‹ค.
  • ํ•œ ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ํ•˜๋‚˜์˜ ํ† ํฐ๋งŒ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ(์•ฑ)์ด๋ผ๋ฉด ๋‹ค๋ฅธ ํ† ํฐ์ด ํ•„์š”ํ•˜๋‹ค.
  • ๊ฐœ๋ฐœ ํ† ํฐ๊ณผ ์‹ค ํ† ํฐ์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์ด์œ ๋Š” ๊ฐœ๋ฐœ ๋กœ๊ทธ๊ฐ€ ์„ž์ด์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. ๊ฐœ๋ฐœ์šฉ ํ† ํฐ์ด ๋‚จ์•„ ์žˆ์„ ๊ฒฝ์šฐ ์‹คํ™˜๊ฒฝ์— ์œ ์ž…๋˜๋Š” ๊ฒƒ์„ ์ตœ๋Œ€ํ•œ ๋ง‰๊ธฐ ์œ„ํ•จ์ด๋‹ค.

Token ๋ฐœ๊ธ‰

  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ํ† ํฐ๊ณผ ์‹คํ™˜๊ฒฝ ํ† ํฐ ๋ชจ๋‘ ๋‹ค์Œ์˜ url์—์„œ ๋ฐœ๊ธ‰ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐœ๋ฐœ ํ† ํฐ์€ 3๊ฐœ๊นŒ์ง€ ์ œํ•œ๋˜์–ด ์žˆ๋‹ค. ์‹ค ํ™˜๊ฒฝ ํ† ํฐ์€ 1๊ฐœ๋งŒ ๋ฐœ๊ธ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ด€๋ฆฌ์ž์— ์˜ํ•ด id/password๊ฐ€ ๋ฐœ๊ธ‰๋œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์‰ฝ๊ฒŒ ์ฝ”๋“œ ๋„ฃ๊ธฐ

๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ์‹ค ํ™˜๊ฒฝ

  • Rake๋Š” ์‹ค ํ™˜๊ฒฝ๊ณผ ๋”๋ถˆ์–ด ๊ฐœ๋ฐœํ™˜๊ฒฝ๋„ ์ œ๊ณตํ•œ๋‹ค.
  • ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ„๊ฐœ์˜ ์„œ๋ฒ„๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  • ๊ฐœ๋ฐœํ™˜๊ฒฝ์—์„œ๋Š” ์„œ๋ฒ„์— ์Œ“์ด๋Š” raw ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ์ฝ”๋“œ๊ฐ€ ์„œ๋ฒ„์— ์ž˜ ๋„์ฐฉํ•˜๋Š” ์œ ํšจํ•œ ์ฝ”๋“œ์ธ์ง€ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์‹ค์„œ๋ฒ„์—์„œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณด์•ˆ ๊ด€๋ จ ๋ฌธ์ œ๋กœ ์„œ๋ฒ„์— ์Œ“์ธ raw ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค.
  • ์‹คํ™˜๊ฒฝ์— ์Œ“์ด๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ •์‹์œผ๋กœ ํ†ต๊ณ„์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋กœ ๊ฐ„์ฃผ๋˜๋ฉฐ, ๊ฐœ๋ฐœํ™˜๊ฒฝ ๋ฐ์ดํ„ฐ๋Š” ๋ฒ„๋ ค์ง„๋‹ค.

๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์‹ค ํ™˜๊ฒฝ์œผ๋กœ ์ „ํ™˜ํ•˜๊ธฐ

  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœํ•˜๋‹ค๊ฐ€ ์‹ค์„œ๋ฒ„๋กœ์˜ ์ „ํ™˜ํ•  ๋•Œ์—๋Š” ๋‹ค์Œ์˜ ์‚ฌํ•ญ์„ ์ˆ˜์ •ํ•จ์œผ๋กœ์จ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ํ”„๋กœ๊ทธ๋žจ์ƒ์—์„œ flag๋ฅผ ์ˆ˜์ • or ์„œ๋ฒ„ url์„ ๋ณ€๊ฒฝ (๊ฐ ๋ฉ”๋‰ด์–ผ ํŽ˜์ด์ง€ ์ฐธ๊ณ )
    • ์ถ”๊ฐ€๋กœ ์‹ค ํ™˜๊ฒฝ์˜ ํ† ํฐ์„ ์ƒˆ๋กœ ๋ฐœ๊ธ‰๋ฐ›์•„ ์ ์šฉํ•ด์•ผ ํ•จ

Log tailer : ์ˆ˜์ง‘ํ•œ ๋กœ๊ทธ์˜ tail ๋ณด๊ธฐ

  • Log tailer๋ž€ ์„œ๋ฒ„๊ฐ€ ์ˆ˜์ง‘ํ•œ ๋กœ๊ทธ์˜ ๋งˆ์ง€๋ง‰ ์ผ๋ถ€๋ถ„์„ ๋ณด์—ฌ์ฃผ๋Š” ์„œ๋น„์Šค
  • ํด๋ผ์ด์–ธํŠธ์—์„œ ๋กœ๊ทธ๋ฅผ flush ํ•œํ›„ log tailer๋ฅผ ํ†ตํ•ด ํ™•์ธํ•˜๋ฉด ์„œ๋ฒ„ ์ „์†ก ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ•ญ์ƒ ๋งˆ์ง€๋ง‰ 20 ~ 40๊ฐœ์˜ ๋กœ๊ทธ๋งŒ์„ ํ‘œ์‹œํ•˜๋ฉฐ ์ง€๋‚œ ๋กœ๊ทธ๋Š” ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š”๋‹ค. ์„œ๋ฒ„๊ฐ€ restart๋˜๋ฉด refresh ๋œ๋‹ค.
  • ๊ฐœ๋ฐœํ™˜๊ฒฝ์—์„œ๋งŒ ์ œ๊ณต๋œ๋‹ค.
  • https://web.rake.skplanet.com:8443/log/ ์— ์ ‘์†ํ•˜๋ฉด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์‹ค์„œ๋ฒ„์—์„œ๋Š” ๋ณด์•ˆ ๋ฌธ์ œ๋กœ ์˜คํ”ˆ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • Tailer ์‚ฌ์šฉ๋ฒ• ๋ณด๊ธฐ

Api

  • ํ˜„์žฌ token ์ƒ์„ฑ, ๊ฒ€์ƒ‰ํ•˜๋Š” api๋ฅผ ์ œํ•œ์ ์œผ๋กœ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.
  • [Server api](Rake server api)

๋กœ๊ทธ ๋ฐ์ดํ„ฐ ์ •์˜

  • ์„ธ์…˜๊ณผ ๊ฐœ์ธ ์ •๋ณด์™€ ๊ฐ™์ด ์ด์Šˆ๊ฐ€ ์žˆ๋Š” ๋กœ๊ทธ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์ด์Šˆ์™€ ์ •์˜ ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•œ๋‹ค.
  • ์ž์„ธํ•œ ๋‚ด์šฉ์€ [๋กœ๊ทธ ๋ฐ์ดํ„ฐ ์ •์˜](๋กœ๊ทธ ๋ฐ์ดํ„ฐ ์ •์˜) ํŽ˜์ด์ง€์— ์ž์„ธํžˆ ๊ธฐ์ˆ ๋˜์–ด ์žˆ๋‹ค.

์ฐธ๊ณ 

skplanet ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ์œ„ํ‚ค ํŽ˜์ด์ง€์—์„œ ๋” ์ƒ์„ธํ•œ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ตœ๊ทผ ๋‚ด์šฉ์ด ๋ชจ๋‘ ๋ฐ˜์˜๋œ ๋ฌธ์„œ๋Š” ๋ณธ ๋ฌธ์„œ์ด๋ฉฐ, ๊ณ„์† ์ตœ์‹ ์œผ๋กœ ์œ ์ง€๋  ์˜ˆ์ •์ž„

๋งŒ๋“  ์‚ฌ๋žŒ

License

  • Mixpanel๊ณผ JSnappy๋Š” Apache v2 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฅด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ์—์„œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (๋ผ์ด์„ผ์Šค ์ „๋ฌธ ๋˜๋Š” ๋งํฌ)
  • Rake ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Mixpanel๊ณผ JSnappy(rake0.3 ์— ์‚ฌ์šฉ๋œ ์••์ถ• ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (0.3.5๋ถ€ํ„ฐ ์‚ฌ์šฉ ์•ˆํ•ฉ๋‹ˆ๋‹ค.)