/images/profile.png

Elastic{ON}Tour

์ž‘๋…„์— ํŒ€์„ ์˜ฎ๊ธฐ๋ฉด์„œ ๋กœ๊น…์— ๋Œ€ํ•ด์„œ ๊ด€์‹ฌ์„ ๊ฐ–๊ธฐ ์‹œ์ž‘ ํ•˜์˜€๊ณ  ์ฐพ์•„๋ณด๋‹ค ElasticStack ์ด ์ ํ•ฉํ•˜๋‹ค๊ณ  ํŒ๋‹จ, ํŒ€ ๋‚ด์—์„œ ๋‚˜ํ™€๋กœ ์‚ฝ์งˆํ•ด๊ฐ€๋ฉฐ ์ง€๊ธˆ์˜ ๋กœ๊ทธ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜์˜€๋‹ค. ๊ทธ์— ElasticStack ์— ๊ด€์‹ฌ์„ ๊ฐ–๋˜ ์ฐฐ๋‚˜ ์ง€๋‚œ ํ™”์š”์ผ(12์›” 12์ผ)์— ์žˆ์—ˆ๋˜ Elastic On Tour์— ์ฐธ์„์„ ํ•˜์˜€๊ณ  ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์  ์ธ์‚ฌ์ดํŠธ๋ฅผ ์–ป์„์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ ๊ทธ ๊ฐ๋™(?)์„ ์žƒ๊ธฐ ์‹ซ์–ด ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

Registration + Partner Showcase

์ฝ”์—‘์Šค ์ธํ„ฐ์ปจํ‹ฐ๋„จํƒˆ ํ˜ธํ…”์—์„œ ์ง„ํ–‰๋˜์—ˆ๋‹ค. ์—ญ์‹œ ์™ธ๊ตญ๊ณ„ ๊ธฐ์—…์ด์—ฌ์„œ ๊ทธ๋Ÿฐ์ง€ ํ–‰์‚ฌ ๊ทœ๋ชจ๊ฐ€ ์–ด๋งˆ์–ด๋งˆ ํ–ˆ๋‹ค. ์ด์ •ํ‘œ๋ฅผ ๋”ฐ๋ผ ์ง€ํ•˜๋กœ ๊ฐ€์„œ ๋“ฑ๋ก์„ ํ•˜๊ณ , ElasticStack ์„ ์ด์šฉํ•ด์„œ ์„œ๋น„์Šค๋ฅผ ํ•˜๊ณ  ์žˆ๋Š” ํŒŒํŠธ๋„ˆ์‚ฌ๋“ค์˜ ๋ถ€์Šค๋ฅผ ๊ธฐ์›ƒ๊ฑฐ๋ฆฌ๋ฉฐ ElasticStack์˜ ์ €๋ ฅ(?)์„ ๋‹ค์‹œํ•œ๋ฒˆ ์‹ค๊ฐ์„ ํ• ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํŠนํžˆ Elatic ๋ณธ์‚ฌ์—์„œ ๋‚˜์˜จ๋“ฏํ•œ ์™ธ๊ตญ์ธ๋“ค์ด Q&A ๊ฐ™์€๊ฑธ ํ•ด์คฌ๋Š”๋ฐ ๋‹ต๋ณ€์„ ํ•ด์ฃผ๋Š” ์™ธ๊ตญ์ธ๋„ ๋Œ€๋‹จํ•ด ๋ณด์˜€๋Š”๋ฐ ์งˆ๋ฌธ์„ ํ•˜๋Š” ํ•œ๊ตญ์‚ฌ๋žŒ(?)๋“ค์ด ๋” ๋Œ€๋‹จํ•˜๊ฒŒ ๋ณด์˜€๋‹ค. ๊ณผ์—ฐ ๋‚œ ์ €๋ ‡๊ฒŒ ์•„๋ฌด๋ ‡์ง€ ์•Š๊ณ  ํ”„๋กœํŽ˜์…”๋„(?)ํ•˜๊ฒŒ ์งˆ๋ฌธ์„ ํ• ์ˆ˜ ์žˆ์„๊นŒ?

/images/elastic-on-tour/people.jpg
Registration + Partner Showcase

Track 1 : Partner Sessions

Track 1 ๊ณผ 2๋กœ ๋‚˜๋‰˜์˜€๋Š”๋ฐ 2๋Š” Elastic Stack ์„ ๊ฒฝํ—˜ํ•˜์ง€ ๋ชปํ•ด๋ดค๊ฑฐ๋‚˜ ์†Œ๊ฐœํ•˜๋Š” ์ž๋ฆฌ๊ฐ™์•„์„œ Track 1๋ฅผ ๋“ฃ๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ๋‚ด๊ฐ€ ๋„์ž…์„ ํ• ๋•Œ๋งŒ ํ•ด๋„ ๊ด€๋ จ ์ž๋ฃŒ๊ฐ€ ์ž˜ ์—†์—ˆ๊ณ , ์ •๋ง ํŠน์ด ์ผ€์ด์Šค๊ฐ€ ์•„๋‹Œ ์ด์ƒ์—” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฒ ๊ตฌ๋‚˜ ํ•˜๋Š” ๋А๋‚Œ์ด์˜€๋Š”๋ฐ ๋ฐœํ‘œํ•˜์‹œ๋Š” ๋ถ„๋“ค์„ ๋ณด๊ณ ์„œ๋Š” ์ƒ๊ฐ์ด 180๋„ ๋ฐ”๋€Œ์—ˆ๋‹ค. ๋„ˆ๋ฌด ํ™œ์šฉ๋“ค์„ ์ž˜ ํ•˜๋ฉฐ ์„œ๋น„์Šค๋ฅผ ํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ๋‹จ์ˆœํ•˜๊ฒŒ ๊ฒ€์ƒ‰์—”์ง„์ด ์•„๋‹Œ ์ƒํ™ฉ์— ๋งž๋Š” ์ปค์Šคํ„ฐ ๋งˆ์ด์ง•์ด๋‚˜ ๋‹ค๋ฅธ ๊ธฐ์ˆ  ์Šคํƒ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์‹œ๋„ˆ์ง€ ํšจ๊ณผ๋ฅผ ๋‚ด๊ณ  ์žˆ์—ˆ๋‹ค.

  • Microsoft
    • OpenSource ์— ์•ˆ์ข‹์€ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์œผ๋‚˜ ์˜ค๋ž˜์ „๋ถ€ํ„ฐ ํˆฌ์ž๋ฅผ ๋งŽ์ด ํ•ด์™”๋‹ค๊ณ  ์„ค๋ช…์„ ํ•˜๋ฉฐ Azure๋ผ๋Š” ์„œ๋น„์Šค์—์„œ Elastic Stack ์„ ์–ด๋–ค์‹์œผ๋กœ ํ™œ์šฉํ•˜๋Š”์ง€ ๋ฐœํ‘œ๋ฅผ ํ•˜์˜€๋‹ค.
    • ์ƒ๋‹นํžˆ ์‹ฌํ”Œํ•˜๊ณ  ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ๋„ ํด๋ฆญ ๋ช‡๋ฒˆ์œผ๋กœ ES Cluster๋ฅผ ๊ตฌ์„ฑํ• ์ˆ˜ ์žˆ๋‹ค๋Š”๊ฒŒ ์žฅ์ ์ด์˜€์œผ๋‚˜, ์œ ๋ฃŒ + ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ์ œํ•œ ์ด ์•„์‰ฌ์› ๋‹ค.
  • S-Core : ์—์Šค์ฝ”์–ด ๊ฒฝํ—˜์— ๊ธฐ๋ฐ˜ํ•œ Elastic ํ™œ์šฉ๋ฒ•
  • EZFarm
    • (์™ธ๋ชจ ๋น„ํ•˜๋Š” ์•„๋‹ˆ์ง€๋งŒ)๋†๋ถ€ ์ฒ˜๋Ÿผ ์ƒ๊ธฐ์‹  ๋ถ„์ด ๋‚˜์™€์„œ ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ๋ง์”€ํ•˜์‹œ๋Š”๊ฒŒ ์‹ ๊ธฐํ•œ ๋ฐœํ‘œ์˜€๋‹ค.
    • ๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด ๋ผ์ง€๊ฐ€ ๋ฌผ ๋จน๋Š” ๋Ÿ‰ ๋“ฑ ๋†์—…/์ถ•์‚ฐ์—…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ES์— ๋‹ด๊ณ  ๋จธ์‹ ๋Ÿฌ๋‹์„ ํ†ตํ•˜์—ฌ ํšจ์œจํ™” ํ•˜๋Š” ๋ฐฉ์•ˆ ์ด์˜€๋˜๊ฒƒ ๊ฐ™๋‹ค.
  • MEGAZONE
    • ํŒŒํŠธ๋„ˆ ๋ถ€์Šค์—์„œ ํ‹ฐ์…”์ธ ๋ฅผ ์ค€(?) ๊ณณ์ด์˜€๋Š”๋ฐ Elastic Cloud Seoul ์„ ๋ฐœํ‘œํ•˜์˜€๋‹ค. (๋“œ๋””์–ด ํ•œ๊ตญ์—๋„ ์ด๋Ÿฐ ์„œ๋น„์Šค๊ฐ€!)
  • OpenBase
    • ํ‚ค๋ฐ”๋‚˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ง์ ‘ ๊ฐœ๋ฐœํ•˜๊ณ  ์ปค์Šคํ…€ UI์˜ ์‚ฌ๋ก€๋ฅผ ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค.
    • ํ‚ค๋ฐ”๋‚˜ ์†Œ์Šค์ค‘์— ์—‘์…€ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ํ•œ๊ธ€๋กœ ์•ˆ๋˜์–ด ๊ณ ์ณ๋ณธ๊ฒƒ ๋ง๊ณค ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฐœ๋ฐœํ•  ์ƒ๊ฐ์€ ์—†์—ˆ๋Š”๋ฐ ์ •๋ง ๊ฐœ๋ฐœ์ž ์Šค๋Ÿฌ์šด ๋ฐœํ‘œ์˜€๋‹ค.
  • DIREA
    • ๊ฒฐ์ œ ๊ด€๋ จ ์žฅ์• ์ถ”์  ๋ฐ ์˜ˆ์ธก ์‹œ์Šคํ…œ์„ ๋ฐœํ‘œํ•˜์˜€๋‹ค.
    • ๋งˆ์นจ ๋‚ด๊ฐ€ ํ•˜๊ณ ์žˆ๋Š” ์„œ๋น„์Šค์™€ ๋น„์Šทํ•˜๊ณ , ๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•ด๋ณด๋ ค๊ณ  ํ–ˆ๋˜ ๋ถ€๋ถ„๊ณผ ๊ฑฐ์˜ ์ผ๋งฅ์ƒํ†ตํ•œ ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ ์†Œ๋ฆ„์ด์˜€๋‹ค.
/images/elastic-on-tour/parter_Session.jpg
Track 1 : Partner Sessions

Opening Keynote

์•ž์„œ ์–ด๋–ค ๋ฐœํ‘œ์—์„œ ElasticSearch๊ฐ€ ํƒ„์ƒํ•˜๊ฒŒ๋œ ๊ณ„๊ธฐ๊ฐ€ ์–ด๋–ค ๋ถ„์ด ์š”๋ฆฌ์‚ฌ๊ฐ€ ๋˜๋ ค๋Š” ์•„๋‚ด๋ฅผ ์œ„ํ•ด ์กฐ๋ฆฌ๋ฒ•์„ ๋” ๋นจ๋ฆฌ ๊ฒ€์ƒ‰ํ• ์ˆ˜ ์žˆ๋Š” ์—”์ง„์„ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ๊ทธ ์–ด๋–ค๋ถ„์ด ๋‚ด๋ˆˆ์•ž์— ๋‚˜ํƒ€๋‚˜ ๋ฐœํ‘œ๋ฅผ ํ•˜์…จ๋‹ค. ํ˜„ Elastic CEO ์ด์‹  Shay Banon ์ด์˜€๋‹ค. (์–ด์ƒ‰ํ•œ ๋™์‹œ ํ†ต์—ญ์œผ๋กœ ์ดํ•ดํ•˜์˜€์ง€๋งŒ) ๊ทธ๋ถ„์ด ๊ฐ•์กฐํ•˜์‹  Elastic ํšŒ์‚ฌ ์ •์‹ ์ธ “๊ฐ„๋‹จํ•œ๊ฑด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋ฉฐ ์‰ฌ์›Œ์•ผ ํ•œ๋‹ค.” ๊ฐ€ ์—ฐ์„ค์ค‘์— ๊ฐ€์žฅ ์ธ์ƒ์ ์ด์˜€๊ณ , ํ†ต์—ญํ•˜์‹  ์•„์ฃผ๋จธ๋‹˜(?)๋•Œ๋ฌธ์ด์˜€๋Š”์ง€ ์ „๋‹ฌํ•˜์‹œ๋Š” ์˜๋„๋ฅผ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•˜๊ธด ์–ด๋ ค์› ์œผ๋‚˜ ์ผ๋‹จ CEO๋ฅผ ํฌํ•จํ•œ ์ „์ฒด ํšŒ์‚ฌ ๋ถ„์œ„๊ธฐ๊ฐ€ ์ Š์–ด๋ณด์ธ๋‹ค๋Š”๊ฑธ ๋А๋‚„์ˆ˜ ์žˆ์—ˆ๋‹ค.

/images/elastic-on-tour/key_note.jpg
Shay Banon key note

Break (์‹์‚ฌ์‹œ๊ฐ„)

์ด๋Ÿฐ ์„ธ๋ฏธ๋‚˜? ์ปจํผ๋Ÿฐ์Šค? ๋ฅผ ๋งŽ์ด ๋‹ค๋…€๋ณธ๊ฑด ์•„๋‹ˆ์ง€๋งŒ ์—ญ๋Œ€๊ธ‰์œผ๋กœ ์ข‹์•˜๋˜ ์ ์‹ฌ์‹์‚ฌ์˜€๋‹ค. ;) ์‚ฌ์‹ค ํ˜ผ์ž์™€์„œ ๋ฐฅ์„ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๋‚˜ ํ–ˆ๋Š”๋ฐ ์šฐ๋ฅด๋ฅด๋ฅด ํ˜ธํ…” ์ง์›๋ถ„๋“ค์ด ๊ฐ ์ž๋ฆฌ์— ๋„์‹œ๋ฝ์„ ๋Œ€๋ น(?)ํ•ด์ฃผ์…”์„œ ๋ง›์žˆ๊ฒŒ ๋จน์„์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ฐธ ์‚ฌ๋žŒ์ด ๊ฐ„์‚ฌํ•œ๊ฒŒ, ์•„์นจ์— ์กธ๋ฆฐ๋ˆˆ ๋น„๋ฒผ๊ฐ€๋ฉฐ ์ง€์˜ฅ์ฒ  ๊ณ ์ƒ์„ ๋šซ๊ณ  ์™€์„œ ํž˜๋“ค์—ˆ์ง€๋งŒ ๋ฐฅ์„ ๋จน์œผ๋ฉด์„œ ์•„์นจ์˜ ๊ทธ ๊ณ ์ƒ์€ ๋ˆˆ๋…น๋“ฏ ์‚ฌ๋ผ์กŒ๋‹ค.

/images/elastic-on-tour/lunch.jpg
ํ˜ธํ…” ๋„์‹œ๋ฝ!!

Deep Dive (Elasticsearch, Ingest, Kibana, Machine Learning)

๊ฐ ์Šคํƒ(?)์— ๋Œ€ํ•ด์„œ ๋ณ€ํ™”๋œ ๋ถ€๋ถ„, ๊ทธ๋ฆฌ๊ณ  ํ™œ์šฉ๊ฐ€๋Šฅ์„ฑ๊ณผ ์ตœ๊ทผ ์ถœ์‹œํ•œ 6.X ๋ฒ„์ „์— ๋Œ€ํ•ด์„œ ์†Œ๊ฐœํ•˜๋Š” ์‹œ๊ฐ„์ด์˜€๋‹ค. ์‚ฌ์‹ค ์•„์ง 2.4 ๋ฒ„์ „์„ ์šด์˜์ค‘์ด๋ผ์„œ์ธ์ง€ 6.X์˜ ๋ณ€ํ™”๋œ ๋ถ€๋ถ„, ๊ทธ๋ฆฌ๊ณ  5.x ๋ฒ„์ „์—์„œ์˜ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•ด์ฃผ๋Š”๋ฐ ํ™• ์™€๋‹ฟ์ง€๋Š” ๋ชปํ•˜์˜€๋‹ค. ์•„์ง 5.x ๋ฒ„์ „์˜ ํ•„์š”์„ฑ์„ ๋ชป๋А๊ปด์„œ ๋ฒ„์ „์—…์„ ์•ˆํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๋ฐœํ‘œ๋ฅผ ๋“ฃ๊ณ  ๊ผญ ์œ ๋ฃŒ ๋ผ์ด์„ผ์Šค๋ฅผ ๊ตฌ๋งคํ•˜์ง€ ์•Š์•„๋„ ์šฉ๋Ÿ‰ ๋‹จ์ถ•์ด๋‚˜ ์•ˆ์ •์„ฑ, ์ถ”๊ฐ€ ๊ธฐ๋Šฅ๋“ฑ 5.X๋กœ์˜ ๋ฒ„์ „์—…์€ ํ•ด์„œ ๋‚˜์ ๊ฒƒ๋„ ์—†์„๋“ฏ ํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. (๋‹จ, ๋ฌด์กฐ๊ฑด ์‹ ๋ฒ„์ „์ด ์ข‹์€๊ฒƒ์€ ์•„๋‹Œ๋“ฏ ์ž˜ ์•Œ์•„๋ณด๊ณ  ํ•ด์•ผ๊ฒ ์ง€…) ํŠนํžˆ ํ‚ค๋ฐ”๋‚˜๋ฅผ ํ™œ์šฉํ•ด ๋จธ์‹ ๋Ÿฌ๋‹์„ ๋ˆˆ์•ž์—์„œ ๋ณด์—ฌ์ค€๊ฑด ๋„ˆ๋ฌด ์ข‹์•˜๋‹ค. ์„ฑ๋Šฅ์ด ์ข‹์•„์„œ์ธ์ง€ ๋ฐ๋ชจ์‹œ์—ฐ ํ•˜๋Š”๋ฐ ์ „ํ˜€ ๋ง‰ํž˜์ด ์—†์—ˆ์œผ๋‹ˆ…

What is Kafka?

ํ•„์ž๊ฐ€ ๋งก๊ณ ์žˆ๋Š” ์„œ๋น„์Šค์— Elastic Stack ์„ ๋„์ž…ํ•˜๋ฉด์„œ ์ค‘๊ฐ„์— ๋ฒ„ํผ๊ฐ€ ํ•„์š”ํ•˜์—ฌ Message-Queue ์‹œ์Šคํ…œ๋“ค์„ ์•Œ์•„๋ณด๋˜ ์ค‘ Kafka ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ , ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ฒŒ ๋œ๋‹ค.

๊ธฐ๋ณธ์„ค๋ช… ๋ฐ ๊ธฐ์กด ๋ฉ”์„ธ์ง• ์‹œ์Šคํ…œ๊ณผ ๋‹ค๋ฅธ์ 

  • ๋ฉ”์„ธ์ง• ํ์˜ ์ผ์ข…
  • ๋ง ๊ทธ๋Œ€๋กœ ๋ถ„์‚ฐํ˜• ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ, LinkedIn์—์„œ ์—ฌ๋Ÿฌ ๊ตฌ์ง + ์ฑ„์šฉ ์ •๋ณด๋“ค์„ ํ•œ๊ณณ์—์„œ ์ฒ˜๋ฆฌ(๋ฐœํ–‰/๊ตฌ๋…)ํ• ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์œผ๋กœ ๊ฐœ๋ฐœ์ด ์‹œ์ž‘
  • ๋Œ€์šฉ๋Ÿ‰์˜ ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ์ฒ˜๋ฆฌ์— ํŠนํ™”๋˜์–ด ์„ค๊ณ„๋œ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ, ๊ธฐ์กด ๋ฒ”์šฉ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ๋Œ€๋น„ TPS๊ฐ€ ๋งค์šฐ ์šฐ์ˆ˜
  • ๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋Š” ๊ธฐ์กด ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋ฉ”์‹œ์ง€๋ฅผ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ €์žฅ โ†’ ์นดํ”„์นด ์žฌ์‹œ์ž‘์œผ๋กœ ์ธํ•œ ๋ฉ”์„ธ์ง€ ์œ ์‹ค ์šฐ๋ ค ๊ฐ์†Œ
  • ๊ธฐ์กด์˜ ๋ฉ”์‹œ์ง• ์‹œ์Šคํ…œ์—์„œ๋Š” broker๊ฐ€ consumer์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ pushํ•ด ์ฃผ๋Š” ๋ฐฉ์‹์ธ๋ฐ ๋ฐ˜ํ•ด, Kafka๋Š” consumer๊ฐ€ broker๋กœ๋ถ€ํ„ฐ ์ง์ ‘ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ€์ง€๊ณ  ๊ฐ€๋Š” pull ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— consumer๋Š” ์ž์‹ ์˜ ์ฒ˜๋ฆฌ๋Šฅ๋ ฅ๋งŒํผ์˜ ๋ฉ”์‹œ์ง€๋งŒ broker๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
/images/what-is-kafka/kafka2.png

์นดํ”„์นด ์ฃผ์š” ๊ฐœ๋…

  • producer : ๋ฉ”์„ธ์ง€ ์ƒ์‚ฐ(๋ฐœํ–‰)์ž.
  • consumer : ๋ฉ”์„ธ์ง€ ์†Œ๋น„์ž
    • consumer group : consumer ๋“ค๋ผ๋ฆฌ ๋ฉ”์„ธ์ง€๋ฅผ ๋‚˜๋ˆ ์„œ ๊ฐ€์ ธ๊ฐ„๋‹ค.offset ์„ ๊ณต์œ ํ•˜์—ฌ ์ค‘๋ณต์œผ๋กœ ๊ฐ€์ ธ๊ฐ€์ง€ ์•Š๋Š”๋‹ค.
  • broker : ์นดํ”„์นด ์„œ๋ฒ„๋ฅผ ๊ฐ€๋ฆฌํ‚ด
  • zookeeper : ์นดํ”„์นด ์„œ๋ฒ„ (+ํด๋Ÿฌ์Šคํ„ฐ) ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ 
  • cluster : ๋ธŒ๋กœ์ปค๋“ค์˜ ๋ฌถ์Œ
  • topic : ๋ฉ”์„ธ์ง€ ์ข…๋ฅ˜
  • partitions : topic ์ด ๋‚˜๋ˆ ์ง€๋Š” ๋‹จ์œ„
  • Log : 1๊ฐœ์˜ ๋ฉ”์„ธ์ง€
  • offset : ํŒŒํ‹ฐ์…˜ ๋‚ด์—์„œ ๊ฐ ๋ฉ”์‹œ์ง€๊ฐ€ ๊ฐ€์ง€๋Š” unique id

์นดํ”„์นด๋Š” ์–ด๋–ค์‹์œผ๋กœ ๋Œ์•„๊ฐ€๋Š”๊ฐ€

  • zookeeper ๊ฐ€ kafka ์˜ ์ƒํƒœ์™€ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ๋ฅผ ํ•ด์ค€๋‹ค. /images/what-is-kafka/kafka3.png

  • ์ •ํ•ด์ง„ topic ์— producer ๊ฐ€ ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐœํ–‰ํ•ด๋†“์œผ๋ฉด consumer ๊ฐ€ ํ•„์š”ํ• ๋•Œ ํ•ด๋‹น ๋ฉ”์„ธ์ง€๋ฅผ ๊ฐ€์ ธ๊ฐ„๋‹ค. (์—ฌ๊ธฐ์„œ ์นดํ”„์นด๋กœ ๋ฐœํ–‰๋œ ๋ฉ”์„ธ์ง€๋“ค์€ consumer๊ฐ€ ๋ฉ”์„ธ์ง€๋ฅผ ์†Œ๋น„ํ•œ๋‹ค๊ณ  ํ•ด์„œ ์—†์–ด์ง€๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์นดํ”„์นด ์„ค์ • log.retention.hours(default : 168[7์ผ])์— ์˜ํ•ด ์‚ญ์ œ๋œ๋‹ค.)

/images/what-is-kafka/kafka4.png
  • partition ๊ฐœ์ˆ˜์™€ consumer group ๊ฐœ๋…
/images/what-is-kafka/kafka5.png
  • ํ•˜์–€์ƒ‰(consumer-01) : ํŒŒํ‹ฐ์…˜ ๊ฐœ์ˆ˜๊ฐ€ 4๊ฐœ์ธ๋ฐ ๋น„ํ•ด ์ปจ์Šˆ๋จธ๊ฐ€ 3๊ฐœ, ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์–ด๋А ์ปจ์Šˆ๋จธ๊ฐ€ ๋‘๊ฐœ์˜ ํŒŒํ‹ฐ์…˜์„ ๋‹ด๋‹นํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด ์ƒ๊ธด๋‹ค.
  • ์ฃผํ™ฉ์ƒ‰(consumer-02) : ํŒŒํ‹ฐ์…˜ ๊ฐœ์ˆ˜๊ฐ€ 4๊ฐœ์ธ๋ฐ ๋น„ํ•ด ์ปจ์Šˆ๋จธ๊ฐ€ 5๊ฐœ, ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ํ•˜๋‚˜์˜ ๋…ธ๋Š”(?) ์ปจ์Šˆ๋จธ๊ฐ€ ์ƒ๊ธฐ๋Š” ์ƒํ™ฉ์ด ์ƒ๊ธด๋‹ค.
  • ๊ฐ€์žฅ ์ ์ ˆํ•œ ๊ฐœ์ˆ˜๋Š” ์ •ํ•ด์ง€์ง€ ์•Š์•˜์ง€๋งŒ ํ†ต์ƒ ์ปจ์Šˆ๋จธ๊ทธ๋ฃน์˜ ์ปจ์Šˆ๋จธ ๊ฐœ์ˆ˜์™€ ํŒŒํ‹ฐ์…˜ ๊ฐœ์ˆ˜๋ฅผ ๋™์ผํ•˜๊ฒŒ ๊ฐ€์ ธ๊ฐ€๊ณค ํ•œ๋‹ค.

์ฐธ๊ณ  url

Deview-2017 Day1 ๋ฆฌ๋ทฐ

๋ฒŒ์จ 10๋ฒˆ์งธ Naver์—์„œ ์ฃผ์ตœํ•˜๋Š” Deview. ์˜ฌํ•ด๋„ ์–ด๊น€์—†์ด ์ฐธ์„์„ ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ์ด๋ฒˆ์—” ๋ณด๊ณ  ๋“ฃ๊ณ  ๋А๊ผˆ๋˜ ๋ถ€๋ถ„๋“ค์„ ์กฐ๊ธˆ์ด๋ผ๋„ ๊ฐ„์งํ•˜๊ณ  ์‹ถ์€ ๋งˆ์Œ์— ๋ฐ”๋กœ ๋ธ”๋กœ๊น…์„ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. (์˜ค๋žœ๋งŒ์— ๋ธ”๋กœ๊น…์ด๊ธด ํ•˜์ง€๋งŒ…) ํ•ญ์ƒ Deview์— ์˜ฌ๋•Œ๋งˆ๋‹ค ๋А๋ผ๋Š” ๋ถ€๋ถ„์ธ๋ฐ ์ด๋ฒˆ์ฐธ์„์ด 3๋ฒˆ์งธ ๋˜๋Š”๋“ฏ ํ•˜๋‹ค ์„ธ์ƒ์€ ์ข๊ณ  ๋Šฅ๋ ฅ์ž๋Š” ๋งŽ์œผ๋ฉฐ ๋‚ด๊ฐ€ ํ•œ๋ฒˆ์ฏค ๋ณธ๊ฒƒ๋“ค์€ ์ด๋ฏธ ์ง€๋‚˜๊ฐ„ ๊ธฐ์ˆ ๋“ค์ด๋ผ๋Š”๊ฒƒ, ๋”๋ถˆ์–ด ๋‹จ์ƒ์œ„์— ์˜ฌ๋ผ๊ฐ€ ๋ฐœํ‘œํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋„ ์˜ˆ์ „์—” ๋‚˜์™€ ๋˜‘๊ฐ™์ด ๋ฐœํ‘œ๋ฅผ ๋“ฃ๋Š” ์ผ๋ฐ˜ ์‚ฌ๋žŒ์ด์˜€๋‹ค๋Š”๊ฒƒ. ์ด๋ฒˆ์—๋„ ๋งŽ์€ ์ƒ๊ฐ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ตฌ๊ตฌ์ ˆ์ ˆ ๊ฐœ์ธ์ ์œผ๋กœ ๋А๋‚€์ ์„ ์ ๋Š”๊ฒƒ์— ์•ž์„œ ๊ฐ•ํ•œ ๊ธฐ์–ต์ด ๋‚จ์•˜๋˜ ๋ช‡๋ช‡ ์„ธ์…˜๋“ค์— ๋Œ€ํ•ด์„œ ๊ฐ„๋žตํ•˜๊ฒŒ ๋ฆฌ๋ทฐ๋ฅผ ๋จผ์ € ํ•˜๋Š”๊ฒŒ ๋งž๋Š” ์ˆœ์„œ๊ฐ™๋‹ค.

์ฑ… ์ฝ์–ด์ฃผ๋Š” ๋”ฅ๋Ÿฌ๋‹ ( ๊น€ํƒœํ›ˆ / ๋ฐ๋ธŒ์‹œ์Šคํ„ฐ์ฆˆ )

์Šฌ๋ผ์ด๋“œ ์ž๋ฃŒ

๋„ค์ด๋ฒ„์—์„œ ์œ ์ธ๋‚˜์˜ ๋ชฉ์†Œ๋ฆฌ๋กœ ์ฑ…์„ ์ฝ์–ด์ฃผ๋Š”๊ฒƒ์„ ๋ณด๊ณ  ํฅ๋ฏธ๋ฅผ ์–ป์–ด ๊ฐœ๋ฐœํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์Œ์„ฑํ•ฉ์„ฑ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์•ผ ๋จธ์‹ ๋Ÿฌ๋‹์ด๋‚˜ ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ์ˆ ์„ ์ ‘๋ชฉ์‹œํ‚ค๋Š”๋ฐ ๋„์›€์ด ๋˜๋Š”๋ฐ ๋ฐ•๊ทผํ˜œ ์ „ ๋Œ€ํ†ต๋ น, ๋ฌธ์žฌ์ธ ๋Œ€ํ†ต๋ น, ์†์„ํฌ ์•„๋‚˜์šด์„œ์˜ ์˜์ƒ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜์—ฌ ๋ฌธ์žฅ๋ณ„๋กœ ํ…์ŠคํŠธ-์Œ์„ฑ์„ ๋งž์ถ”๊ณ (pair) ๋จธ์‹ ๋Ÿฌ๋‹ + ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ์ˆ ์„ ์ด์šฉํ•ด์„œ ๋งŒ๋“ค์ˆ˜ ์žˆ์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์ถ”ํ›„ ๋ˆ„๊ตฌ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํŒŒ์ด์ฌ ๋ชจ๋“ˆ๋กœ ์ œ๊ณตํ•œ๋‹ค๊ณ  ํ•˜๋‹ˆ, ๊ฐ์‚ฌํ•  ๋”ฐ๋ฆ„์ด๋‹ค. ์‚ฌ์‹ค ๋จธ์‹ ๋Ÿฌ๋‹์— ๊ด€์‹ฌ๋งŒ์žˆ์—ˆ์ง€ ์ด๋ ‡๋‹คํ•  ๊ณต๋ถ€๋‚˜ ์ง์ ‘ ๊ตฌํ˜„์€ ๋‹จํ•œ๋ฒˆ๋„ ์•ˆํ•ด๋ณด๊ณ  ํ•ด๋‹น ์„ธ์…˜์„ ๋“ค์–ด๋ณด๋‹ˆ ๊ทธ๋ƒฅ ์šฐ์™€ ์‹ ๊ธฐํ•˜๋‹ค์ •๋„์˜€๋Š”๋ฐ. ์ด๋ฒˆ๊ธฐํšŒ์— ์ž‘์€๊ฒƒ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์‹œ์ž‘ํ•˜๋ฉด์„œ ์š”์ฆˆ์Œ ํ•ซํ•œ(?) ํŠธ๋žœ๋“œ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋Š” ๊ฒƒ๋„ ๊ดœ์ฐฎ์€ ๋ฐฉ๋ฒ•๊ฐ™์•„ ๋ณด์ธ๋‹ค. (์•—, ์šฐ์„  ํŒŒ์ด์ฌ๋ถ€ํ„ฐ…)

๊ทธ๋Ÿฐ REST API๋กœ ๊ดœ์ฐฎ์€๊ฐ€ ( ์ด์‘์ค€ / ๋น„๋ฐ”๋ฆฌํผ๋ธ”๋ฆฌ์นด )

์Šฌ๋ผ์ด๋“œ ์ž๋ฃŒ

๋ฐœํ‘œ์ž๋ถ„์„ ์–ด๋””์„œ ๋งŽ์ด ๋ดค๋‹ค ํ–ˆ๋”๋‹ˆ๋งŒ ์˜ˆ์ „์— ์šฐ๋ฆฌ ํšŒ์‚ฌ ์‚ฌ๋žŒ์ด์˜€๋‹ค. ์ˆ˜์—…๋„ ๋“ค์–ด๋ดค๊ณ , ๊ฐ™์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””๋„ ํ–ˆ๊ณ (ํ•œ๋ฒˆ ๋‚˜๊ฐ”์ง€๋งŒ…). ๋ฐœํ‘œ ์ฒซ ๋ถ€๋ถ„์— ์ž์‹ ์ด 10๋…„์ „์— ๋ฐ๋ทฐ staff ๋ฅผ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ 10๋…„์„ ๋‹ค ๋ชป์ฑ„์šฐ๊ณ  ํ‡ด์‚ฌ๋ฅผ ํ–ˆ๋‹ค๊ณ  ใ…Žใ…Ž.. ์•„๋ฌดํŠผ ๊ฐœ์ธ์ ์œผ๋กœ ๋‚˜๋ฆ„ ๋ฐ˜๊ฐ€์šด ๋ถ„์ด๋ผ ๋” ๊ด€์‹ฌ๊ฐ–๊ณ  ๋“ฃ๊ฒŒ ๋˜์—ˆ๋‹ค. REST ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€?์— ๋Œ€ํ•œ ๋ฐœํ‘œ๋‹ค. ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด ์•„๋ž˜ 3๊ฐ€์ง€์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ ๊ฒƒ์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • REST API ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  REST API๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • REST API ๊ตฌํ˜„์„ ํฌ๊ธฐํ•˜๊ณ  HTTP API ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • REST API ๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ REST API ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. (ํ˜„์žฌ ๋Œ€๋ถ€๋ถ„์˜ API๋“ค์˜ ์ƒํƒœ)

REST API๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์Šคํƒ€์ผ์ค‘ ๋ˆˆ์—ฌ๊ฒจ ๋ณผ๋งŒํ•œ ๋ถ€๋ถ„์€ ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. (uniform interface)

  • self-descriptive messages : ๋ฉ”์‹œ์ง€๋Š” ์Šค์Šค๋กœ ์„ค๋ช…์ด ๋˜์–ด์•ผ ํ•œ๋‹ค.
  • hypermedia as the engine of application state (HATEOAS) : ์ „์ด(์ƒํƒœ์˜ ์ด๋™)๊ฐ€ ๋ ์ˆ˜์žˆ๋Š” ์ •๋ณด๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋ฉด REST API๋กœ ๋งŒ๋“ค๋ ค๋ฉด ์ œ๋Œ€๋กœ ์•Œ๊ณ  ๋งŒ๋“ค์–ด๋ผ ๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๊ฐ•ํ•œ ๋ฐœํ‘œ๋‚ด์šฉ๊ฐ™๋‹ค. ๋‚˜๋„ ์ด์ œ๊นŒ์ง€๋Š” ๊ทธ๋ƒฅ json ์œผ๋กœ ๋‚ด๋ ค์ค€๋‹ค๋Š” ๊ฒƒ, GETใ†POST ๋“ฑ HTTP Method ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ๋งŒ ์•Œ๊ณ ์žˆ์—ˆ๋Š”๋ฐ ๊ฐœ์ธ์ ์œผ๋กœ๋Š” ๋ฐœํ‘œ์ž๋ถ„์ด ๋ง์”€ํ•˜์‹  ๋‘๊ฐ€์ง€ ๋‚ด์šฉ์€ ์ง€ํ‚ค๋Š”๊ฒŒ ๋งž๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์ฆ‰, ์ •๋ง REST ํ•˜๊ฒŒ ๋งŒ๋“ค๊บผ๋ฉด ์ •ํ™•ํ•œ ์‚ฌ์šฉ๋ฒ•์„ ์•Œ๊ณ  ๋งŒ๋“œ๋Š”๊ฒŒ ์ข‹์•„๋ณด์ธ๋‹ค.

๋™๋„ค ์ปคํ”ผ์ƒต๋„ ์‚ฌ์ด๋ Œ์˜ค๋”๋ฅผ ์“ธ ์ˆ˜ ์žˆ์„๊นŒ? ( ํ—ˆํ˜•, ๋‚˜๋™์ง„ / ์‚ผ์„ฑ์ „์ž[Lunch class] )

์Šฌ๋ผ์ด๋“œ ์ž๋ฃŒ

์˜ค๋Š˜ ๋ฐœํ‘œ์ค‘์— ๊ฐ€์žฅ ๋“ค์–ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ์„ธ์…˜. ์˜ˆ์ „๋ถ€ํ„ฐ ์‚ฌ์ด๋ Œ์˜ค๋”๊ฐ€ ์–ด๋–ค์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ + ์šฐ๋ฆฌํšŒ์‚ฌ ์ปคํ”ผ์ˆ๋„ ์‚ฌ๋‚ด ์•ฑ์„ ํ™œ์šฉํ•ด์„œ ๋งŒ๋“ค์–ด ๋ณผ์ˆœ ์—†์„์ง€(์•„์ด๋””์–ด) ์ด๋Ÿฐ์ €๋Ÿฐ ์ƒ๊ฐ์ด ๋งŽ์•˜์—ˆ๋Š”๋ฐ ๋”ฑ! ์›ํ•˜๋˜ ๋ฐœํ‘œ๊ฐ€ ์žˆ์–ด ๋“ฃ๊ฒŒ ๋˜์—ˆ๋‹ค. ์‚ผ์„ฑ์ „์ž ์†Œ์†์ด์‹  ๋ถ„๋“ค์ด ๋”ฐ๋กœ ๊ทธ๋ฃน์„ ๋งŒ๋“ค์–ด ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋งŒ๋‚œ ๋ถ€๋ถ„๋“ค์„ ๋ฐœํ‘œํ•ด์ฃผ์…จ๋Š”๋ฐ ์‹ ๊ธฐํ•œ ๊ธฐ์ˆ ๋“ค์ด ๋งŽ์•„ ๋“ฃ๋Š” ๋‚ด๋‚ด ํฅ๋ฏธ์ง„์ง„ ํ–ˆ๋‹ค.

  • PWA(Progressive Web App) : PWA ๋กœ ๋ชจ๋ฐ”์ผ ์ฒญ์ฒฉ์žฅ์„ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค. (๊ฒฐํ˜ผ์‹ ์ „๋‚ ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๊ฒฐํ˜ผํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ[์ถ”์ฒจ]๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋“ฑ๋“ฑ..)
  • Physical Web(Beacon), NFC …
  • Browser Fingerprint (Device ๊ตฌ๋ถ„)
  • Push Nofification
  • Web Payment

๊ฒฐ๊ตญ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋ฉด ๋™๋„ค ์ปคํ”ผ์ƒต์—์„œ ์‚ฌ์ด๋ Œ ์˜ค๋”๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์œ„ํ•ด ์ด๋Ÿฌ์ €๋Ÿฌํ•œ ๊ธฐ์ˆ ๋“ค์„ ์‹œ๋„ํ•ด๋ดค๋‹ค~์ธ๋ฐ. ๊ฐ ๊ธฐ์ˆ ๋“ค์— ์žˆ์–ด ํ˜„์‹ค์ ์ธ ์ƒํ™ฉ์— ํ•œ๊ณ„์ ์ด ์žˆ๊ณ , ๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ์ฒ˜์Œ์— ์ด์•ผ๊ธฐ ๋œ ๋™๋„ค ์ปคํ”ผ์ƒต์—์„œ ์‚ฌ์ด๋ Œ ์˜ค๋”๋ฅผ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฌผ์ด ์—†์–ด์„œ ์•„์‰ฌ์› ๋‹ค. ์—„์ฒญ ๊ธฐ๋Œ€ํ–ˆ๋Š”๋ฐ ๋ง์ด๋‹ค. ํ•˜์ง€๋งŒ PWA๋ฅผ ์ด์šฉํ•ด์„œ ๋ชจ๋ฐ”์ผ ์ฒญ์ ‘์žฅ์„ ๋งŒ๋“  ๋ถ€๋ถ„์€ ์ •๋ง ์ฐฌ์‚ฌ๋ฅผ ๋ณด๋‚ด์ฃผ๊ณ  ์‹ถ์€ ์•„์ด๋””์–ด ๊ฐ™๋‹ค.๋‚˜๋„ ๋‚˜์ค‘์— ํ•ด์•ผ์ง€~ ์˜ˆ์ „ “๋‚ ์”จ"๋ผ๋Š” ์›น์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๋ฉด์„œ ์›น์ด๋ผ๋Š” ํ™˜๊ฒฝ์—์„œ ๊ธฐ์ƒ์†๋ณด๋‚˜ ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ๋ˆˆ/๋น„ ์•Œ๋ฆผ์„ ๋‹จ์ˆœํžˆ ํ™”๋ฉด์— ๋ฟŒ๋ ค์ฃผ๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž ๊ธฐ๊ธฐ์— ๋…ธํ‹ฐ(ํ‘ธ์‹œ)ํ•ด์ค„์ˆ˜๋Š” ์—†์„๊นŒํ•˜๋ฉฐ ์ž ๊น ๋ณธ ๊ธฐ์ˆ ์ด PWA ์˜€๋Š”๋ฐ ๋‚œ ํ”„๋กœํ† ํƒ€์ดํ•‘๋งŒ ํ•ด๋ณธ ์ˆ˜์ค€์ด์ง€๋งŒ ์ด๋ถ„๋“ค์€ ์‹ค์ œ๋กœ ๋ณธ์—…๊ณผ๋Š” ๋ณ„๊ฐœ๋กœ ๊ตฌํ˜„์„ ํ•ด๋ณด๋Š” ๋…ธ๋ ฅ์„ ํ–ˆ๋‹ค๋Š”๊ฒƒ์— ๋‚ด ์ž์‹ ์ด ๋ถ€๋„๋Ÿฌ์›Œ ์ง„๋‹ค.

Apache keepAlive

์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๋‹ค๋ณด๋ฉด ๊ฐ„ํ˜น ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณค ํ•œ๋‹ค. ์ด๋ฅผํ…Œ๋ฉด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‹ค๋ฅธ์ด์œ ์—†์ด ์˜ฌ๋ผ๊ฐ„๋‹ค๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ์‘๋‹ต์†๋„๊ฐ€ ๊ฐ„ํ—์ ์œผ๋กœ ๋А๋ฆฐ๋‹ค๊ฑฐ๋‚˜. ๊ทธ๋Ÿด๋•Œ๋งˆ๋‹ค ์„ ๋ฐฐ๊ฐœ๋ฐœ์ž๋ถ„๋“ค๊ป˜์„œ ๊ฐ€์žฅ๋จผ์ € ์ž…์— ์˜ค๋ฅด๋‚ด๋ฆฌ๋Š” ๋‹จ์–ด. keepAlive.

hexo ๋ธ”๋กœ๊ทธ์— tranquilpeak ํ…Œ๋งˆ ์ ์šฉํ•˜๊ธฐ

์—ฌ๋Ÿฌ๊ฐ€์ง€ hexo ํ…Œ๋งˆ์ค‘์— ๊ทธ๋‚˜๋งˆ(?) ์˜์–ด๋กœ ๋œ ๋ฌธ์„œ๊ฐ€ ์žˆ์–ด์„œ ์ ์šฉํ•ด๋ณด๊ฒŒ ๋œ tranquilpeak ๋ผ๋Š” ํ…Œ๋งˆ. ์˜ค๋Š˜์€ ํ•ด๋‹น ํ…Œ๋งˆ๋ฅผ ์ ์šฉํ•˜๋ฉด์„œ ๊ฒช์€ ๋ฌธ์ œ, ๊ทธ๋ฆฌ๊ณ  ์ ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๊ฐ„๋žตํ•˜๊ฒŒ๋‚˜๋งˆ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. (๋‹ค๋ฅธ ํ…Œ๋งˆ๋“ค์€ ๊ฑฐ์˜๋‹ค ์ค‘๊ตญ์ชฝ์ด๋‚˜ ์ผ๋ณธ…) ๋จผ์ € hexo ๊ณต์‹์‚ฌ์ดํŠธ์—์„œ ์•Œ๋ ค์ฃผ๋Š” ํ…Œ๋งˆ๋“ค์€ ๋‹ค์Œ ์‚ฌ์ดํŠธ์—์„œ ํ™•์ธํ•ด ๋ณผ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ์กด์—๋Š” hueman์ด๋ผ๋Š” ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ (๋งํฌ), ์˜ค๋žœ๋งŒ์— ๋ธ”๋กœ๊ทธ๋ฅผ ๋‹ค์‹œ(?) ์‹œ์ž‘ํ•˜๋Š” ๋А๋‚Œ์„ ๋‚ด๋ณด๊ณ  ์‹ถ์—ˆ๊ณ  ๋ณด๋‹ค ๋” ์‹ฌํ”Œํ•˜๊ณ  ์œ ํ–‰์— ์•ˆํƒˆ๊ฒƒ ๊ฐ™์€(์ˆœ์ „ํžˆ ํ•„์ž ์ƒ๊ฐ) ํ…Œ๋งˆ๋ฅผ ์ฐพ์•„๋ณด๋‹ค tranquilpeak์ด๋ผ๋Š” ํ…Œ๋งˆ๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

์šฐ์„  ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค์น˜๊ณผ์ •์„ ๋‚˜์—ดํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. themes ํด๋”๋‚ด์— ํ…Œ๋งˆํŒŒ์ผ์„ ๋ฐ›์€ํ›„ ์••์ถ• ํ•ด์ œ
  2. ํ…Œ๋งˆ ํด๋” ์ด๋ฆ„์„ ๋ณ€๊ฒฝ
  3. _config.yml ํŒŒ์ผ ๋‚ด์— ํ…Œ๋งˆ ์„ค์ • ๋ถ€๋ถ„ ๋ณ€๊ฒฝ ( theme: tranquilpeak )
  4. hexo clean โ†’ hexo generate โ†’ hexo server(or hexo deploy)

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ…Œ๋งˆ๊ฐ€ ๋ณ€๊ฒฝ์ด ๋œ๋‹ค. ํ˜น์—ฌ๋‚˜(ํ•„์ž์ฒ˜๋Ÿผ) ๊ธฐ์กด ํ…Œ๋งˆ๋ฅผ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ๋Š” ๋ณ„๋„์˜ ๊ณผ์ •์ด ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•˜๋‹ค. ๊ธฐ์กด์—๋Š” css๋‚˜ js๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๊ฐ„๋‹จํžˆ ์ˆ˜์ •๋˜์—ˆ๋Š”๋ฐ ์ด ํ…Œ๋งˆ๋Š” ์•ฝ๊ฐ„์˜ ๋นŒ๋“œ(?)๋ฅผ ํ•„์š”๋กœ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ css๋‚˜ js๋“ฑ html ์š”์†Œ๋“ค์„ ์ˆ˜์ •ํ•˜์˜€๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค.(ํ…Œ๋งˆํด๋” ์ตœ์ƒ์œ„์—์„œ)

  1. npm install
  2. bower install
  3. css ๋‚˜ js ๋ณ€๊ฒฝ
  4. grunt build
  5. hexo clean โ†’ hexo generate โ†’ hexo server(or hexo deploy)

๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ํ…Œ๋งˆ์— ์ ์šฉ๋œ ํฐํŠธ๋ฅผ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด ๋ธ”๋กœ๊ทธ ๋ฅผ ์ฐธ์กฐํ•˜์˜€๋‹ค. (ํ•ด๋‹น ์•„ํ‹ฐํด์—๋‹ค ๋Œ“๊ธ€ํญํƒ„์„ ใ…Žใ…Ž;;)

๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ž

๋งˆ์ง€๋ง‰ ํฌ์ŠคํŒ…์„ ํ•œ์ง€ ๋ฒŒ์จ 3๊ฐœ์›”์ด ์ง€๋‚ฌ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋ฐ”๋นด๋˜๊ฒƒ๋„ ์•„๋‹ˆ๊ณ  ๋ธ”๋กœ๊ทธํฌ์ŠคํŒ…์„ ํ•  ์‹œ๊ฐ„์ด ์•ˆ๋‚œ๊ฒƒ๋„ ์•„๋‹Œ๋ฐ ์–ด๋А๋ง ๋‹ค์‹œ ์ •์‹ ์ฐจ๋ฆฌ๊ณ  ๋ธ”๋กœ๊ทธ๋ฅผ ํฌ์ŠคํŒ… ํ•˜๋ ค๊ณ ๋ณด๋‹ˆ 3๊ฐœ์›”์ด๋ผ๋Š” ์‹œ๊ฐ„์ด ํ˜๋Ÿฌ๋ฒ„๋ ธ๋„ค ์ฑ—๋ฐ”ํ€ด๊ฐ™์€ ์ผ์ƒ, ๋А์ฆˆ๋ง‰ํžˆ ์ผ์–ด๋‚˜์„œ ํšŒ์‚ฌ์ถœ๊ทผํ•˜๊ณ  ์ •์‹ ์—†์ด ์ผํ•˜๋‹ค๊ฐ€ ํ‡ด๊ทผ, ๊ทธ๋ฆฌ๊ณ  ๋Šฆ๊ฒŒ๊นŒ์ง€ ์ž ๋ชป์ด๋ฃจ๋‹ค ๋˜ ๋‹ค์Œ๋‚ ์ด๋ฉด ๋А์ฆˆ๋ง‰ํžˆ ์ผ์–ด๋‚˜๊ณ … ๋ญ”๊ฐ€ ๋ณ€ํ™”๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

  • ๋งค์ผ ์ผ๊ธฐ์“ฐ๊ธฐ : ์ผ๊ธฐ๋ผ๊ณ  ํ•ด๋ดค์ž ๊ฑฐ์ฐฝํ•œ๊ฑด ์•„๋‹ˆ๊ณ  ๋”ฑ 3๊ฐœ์›”๋งŒ ์จ๋ณด์ž. ์˜ค๋Š˜ ๋ญํ–ˆ๋Š”์ง€. ์ž๊ธฐ์ „์— ๋”ฑ 10๋ถ„์ด๋ฉด ์ข‹์„๋“ฏ
  • ์•„์นจ์— ์ผ์ฐ ์ผ์–ด๋‚˜๊ธฐ : ์›”์ˆ˜๊ธˆ ์ˆ˜์˜์— ํ™”๋ชฉ ๋ฐฐ๋“œ๋ฏผํ„ด. ์ฃผ๋ง์—๋„ ์ผ์ฐ์ผ์–ด๋‚˜๊ณ . ์ผ์ฐ์ผ์–ด๋‚˜๋ฉด ๋จน์ด๋„ ๋” ๋จน๋Š”๋‹ค๊ณ  ํ•˜์ง€ ์•Š์•˜๋˜๊ฐ€
  • ๋‹ฌ๋ ฅํ™œ์šฉํ•˜๊ธฐ : ์šด๋™ํ•˜๋Š”๊ฒƒ๋„ ๊ทธ๋ ‡์ง€๋งŒ, ๋‹ฌ๋ ฅ์„ ์ž์ฃผ ๋ณด๋ฉด์„œ ๋นผ๋จน์ง€ ๋ง์•„์•ผ ํ•  ์ค‘์š”ํ•œ ๋‚ ๋“ค์€ ๋ฐ˜๋“œ์‹œ ๋ฉ”๋ชจํ•˜๊ณ  ๊ธฐ์–ตํ•˜์ž
  • ๊ธฐํƒ€ : ์ฑ…์ข€ ๋งŽ์ด ์ฝ๊ณ  ์šด๋™๋„ ๊พธ์ค€ํžˆ ํ•ด์•ผ๊ฒ ๋‹ค. ๋ฌผ๋ก  ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…๋„ ์žŠ์ง€๋ง๊ณ .

์ฒซ์ˆ ์— ๋ฐฐ๋ถ€๋ฅด๋žด. ํ•˜๋‚˜๋‘˜์”ฉ ํผ์ฆ ๋งž์ถฐ๋‚˜๊ฐ€๋“ฏ ํ•ด๋ณด๋‹ค๋ณด๋ฉด ๋‚ด ์ž์‹ ์ด ๋ฐ”๋€Œ์–ด ์žˆ๊ฒ ์ง€.