๐Ÿ‡ฐ๐Ÿ‡ท|ํ”Œ๋žซํผ ๊ฐœ๋ฐœ: ์—…๋ฐ์ดํŠธย 16

์—ฌ๋Ÿฌ๋ถ„ ์•ˆ๋…•ํ•˜์„ธ์š”! ๋ณธ ๋ณด๋„๋Š” 11์›” 26์ผ๋ถ€ํ„ฐ 12์›” 9์ผ๊นŒ์ง€์˜ ๊ธฐ๊ฐ„์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด ๊ธฐ๊ฐ„ ๋™์•ˆ ์šฐ๋ฆฌ๋Š” The Abyss ์ธํ”„๋ผ๋ฅผ ๊ฐœ์„ ํ•˜๊ณ  ๋‹ค๋ฅธ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ SDK ์ง„ํ™”(RBAC, theabyss_api.dll, ์›น ๊ฒŒ์ž„์šฉ ๋‚ด์žฅํ˜• JS API)์— ์ดˆ์ ์„ ๋งž์ท„์Šต๋‹ˆ๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ‚คํŠธ (SDK)ย ๋ฐœ์ „:

1. ๋งค๊ฐœ ๋ณ€์ˆ˜ํ™”๋œ ์—ญํ•  ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ํ†ต์ œ (PRBAC)

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

  • ์—ญํ•  (์‚ฌ์šฉ์ž, ๊ทธ๋ฃน, ๊ธฐ๋Šฅ ๋ฐ ๊ถŒํ•œ์„ ๋‚˜ํƒ€๋ƒ„);
  • ๊ทธ๋žœํŠธ (๊ตฌ์„ฑ์›, ๋ด‰์‡„ ๋ฐ ๊ถŒํ•œ ํ‘œ์‹œ).

PRBAC๋Š” ์—ญํ• ์„ ๋” ์ž‘๊ณ  ๋” ๋‹จ์ˆœํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ™•์‹คํžˆ ํ”Œ๋žซํผ์˜ ํ›จ์”ฌ ๋” ๊ฐ•๋ ฅํ•œ ๊ด€๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฃน๋“ค์€ ๋งค๊ฐœ ๋ณ€์ˆ˜ํ™”๋  ๋•Œ ๋” ์œ ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๊ฒฐ์˜๋Š” ์ƒํ™ฉ์— ๋”ฐ๋ผ ํ•ด์„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PRBAC์˜ ์ข…์†์„ฑย ๋งต
์ข…์†์„ฑ ๋งต ์ƒ์„ฑย ํ”„๋กœ์„ธ์Šค

2. ์„œ๋ฒ„ ๋Œ€ ์„œ๋ฒ„ ์„ธ์…˜ ์ธ์ฆ ์‹œ์Šคํ…œ

๋˜ํ•œ ๊ฒŒ์ž„ ํ†ตํ•ฉ์— ํ•„์š”ํ•œ ์„œ๋ฒ„ ๋Œ€ ์„œ๋ฒ„(S2S) ์„ธ์…˜ ์ธ์ฆ ์‹œ์Šคํ…œ ๊ธฐ๋Šฅ๋„ ํ™•์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ SDK ์„ค๋ช…์„œ์— ์ž์„ธํžˆ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

3. Theabyss_api.dll

12์›”์— The Abyss ๊ฐœ๋ฐœํŒ€์€ ๋” ์ปค์กŒ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ์ƒˆ๋กœ์šด ํŒ€์› ์„ ์ž„ C++ ๊ฐœ๋ฐœ์ž์ธ Oleg Krasnov๋Š” ๋ชจ๋“  The Abyss API ๋ฐฉ๋ฒ•์„ ํฌํ•จํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. Oleg๋Š” ๊ณ ๊ฐ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ ์ผํ•˜๋Š” ์ฃผ์š” ์ธ๋ฌผ ์ค‘ ํ•œ ์‚ฌ๋žŒ์ด ๋  ๊ฒƒ์ด๋ฉฐ, Sergey Zakharchenko(์šฐ๋ฆฌ ์‹œ์Šคํ…œ ์•„ํ‚คํ…ํ„ฐ) ๋ฐ C# ํ”„๋กœ๊ทธ๋ž˜๋จธ ํŒ€๊ณผ ๊ธด๋ฐ€ํžˆ ํ˜‘๋ ฅํ•ด ์ผํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์›น ๊ฒŒ์ž„์šฉ ๋‚ด์žฅํ˜• JSย API

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

๋ผ์ด์„ ์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œย (LMS)

์šฐ๋ฆฌ๋Š” The Abyss ํ”Œ๋žซํผ์˜ ์ตœ์ดˆ AAA ๊ฒŒ์ž„์ด ๋  ํ”„๋กœ์ ํŠธ์ธ Atomic Heart ์˜ ์‚ฌ์ „ ์ฃผ๋ฌธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ตœ๊ทผ์˜ ์Šคํ”„๋ฆฐํŠธ ๋™์•ˆ ์†Œ๊ฐœ๋œ LMS์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์˜ ๊ตฌํ˜„ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

The Abyss ํ”Œ๋žซํผ์˜ ํ…Œ์ŠคํŒ…๋ฐย ์ธํ”„๋ผ

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ The Abyss ์ธํ”„๋ผ๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ ์Šคํ”„๋ฆฐํŠธ:

  • ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ์˜ ์ ์šฉ ๋ฒ”์œ„๊ฐ€ (์ผ์ •๋ณด๋‹ค ํ›จ์”ฌ ์•ž์„œ๋Š”) 80% ์ˆ˜์ค€์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ…Œ์ŠคํŠธ ์‹คํ–‰์€ 10๋ถ„ ๋งŒ์— ์ „์ฒด ์‹œ์Šคํ…œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค;
  • ์œ ๋Ÿฝ ์ตœ๋Œ€์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์ค‘ ํ•˜๋‚˜์—์„œ ์ƒˆ๋กœ์šด ์„œ๋ฒ„๋ฅผ ์ค€๋น„ํ–ˆ๊ณ  ์šด์˜์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค;
  • Kubernetes ์„œ๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ƒˆ๋กœ์šด ์„œ๋ฒ„์— ์„ค์น˜๋˜๊ณ , ๊ฐœ๋ฐœ์ž์˜ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ๊ตฌ์„ฑ ๋ฐ ์ค€๋น„๋ฉ๋‹ˆ๋‹ค;
  • GitLab์— ์žˆ๋˜ ์šฐ๋ฆฌ์˜ ๋ชจ๋“  ๋ฆฌํฌ์ง€ํ„ฐ๋ฆฌ๋Š” Kubernetes๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค;
  • ์ƒˆ ์œ„์น˜ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ CI/CD ๋ฐฐ์น˜๋Š” ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

์•ˆ์ •์„ฑ ๋ฐย ๋‚ด๊ฒฐํ•จ์„ฑ

RabbitMQ๋ฅผ ์šด์†ก์„ ์œผ๋กœ ํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ๋‚ด๋ถ€ ํ”„๋ ˆ์ž„์›Œํฌ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๋‹จ๊ธฐ ๊ณ„ํš์—๋Š” ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋กœ์˜ ๋ชจ๋“  ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ „์†ก์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๋„ํ‘œ๋Š” ์šฐ๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ฐ€์žฅ ์ •๊ตํ•œ ๋…ผ๋ฆฌ์ ์ธ ๋ถ€๋ถ„ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

The Potatoโ„ข ํ”„๋ ˆ์ž„์›Œํฌ์˜ย ๋ถ€๋ถ„
์ ์‘ํ˜• ๋‹คํฌ ํ…Œ๋งˆย ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ

์ ์‘ํ˜• ์–ด๋‘์šด ์ƒ‰์ƒย ๋””์ž์ธ

์ด ํƒ€์Šคํฌ์˜ ์ผํ™˜์œผ๋กœ ์ˆ˜ํ–‰ํ•œ ์ž‘์—…์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • ๊ฒŒ์ž„ ํŽ˜์ด์ง€ ๋ฐ ๋ฉ”์ธ ํŽ˜์ด์ง€โ€Šโ€”โ€Š๋ฐ”ํƒ• ํ™”๋ฉด์šฉ ์ ์‘ํ˜• ๋‹คํฌ ์ƒ‰์ƒ ๋””์ž์ธ์„ ์œ„ํ•œ ๊ธฐ์ˆ  ์Šคํƒ(ReactJS/Redux)์ด 100%๋กœ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค;
  • โ€œ๋ ˆํผ๋Ÿด ํ†ต๊ณ„โ€โ€Šโ€”โ€Š์‹œ๊ฐ์  ํ”„๋กœํ† ํƒ€์ž…์ด ์™„์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค;
  • ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ โ€œ๋‚ด ๊ฒŒ์ž„โ€, โ€œํ† ํฐ ์ž…๊ธˆโ€, โ€œํ† ํฐ ์ถœ๊ธˆโ€ ๊ธฐ๋Šฅ ๋“ฑ์˜ ๋ชจ๋‹ฌ ๋ฐ ์‚ฌ์šฉ์ž ์ง€์› ์ฐฝ์„ ์„ค๊ณ„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€์ž…๋‹ˆ๋‹ค. The Abyss ํŒ€์€ ํ•œ ๋‹ฌ์— ๋‘ ๋ฒˆ ๊ฐœ๋ฐœ ๊ณผ์ •์— ๋Œ€ํ•ด์„œ ๋ณด๊ณ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ณด๋„๋Š” 2018๋…„ 12์›” 24์ผ์— ๊ณต๊ฐœ๋ฉ๋‹ˆ๋‹ค.

๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ๋†“์น˜์ง€ ๋งˆ์„ธ์š”! ๋ณด์—ฌ๋“œ๋ฆด ๊ฒƒ์ด ์•„์ฃผ ๋งŽ์Šต๋‹ˆ๋‹ค!

ํ–‰์šด์„ ๋น•๋‹ˆ๋‹ค.

The Abyss ํŒ€ ๋“œ๋ฆผ


Telegram (KR) โ€ข Discord โ€ข Facebook โ€ข Twitter โ€ข LinkedIn โ€ข BitcoinTalk โ€ข Reddit โ€ข Vimeo โ€ข GitHub