API๋กœ ๊ธฐ์—… ๋ฐ์ดํ„ฐ ์•ˆ์ „ํ•˜๊ฒŒ ๋…ธ์ถœ์‹œํ‚ค๊ธฐ  

LoopBack์„ ํ™œ์šฉํ•˜์—ฌ ๊ธฐ์—… ๋‚ด ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์„ ์œ„ํ•œ API์ƒ์„ฑ ๋ฐ ๋…ธ์ถœํ•˜๊ธฐ

Last updated

๊ฐ€์ƒ์˜ ๋ฌผ๋ฅ˜ ํšŒ์‚ฌ์ธ Acme Freight๋ฅผ ํ†ตํ•ด, LoopBack๊ณผ API Connect๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์—…์˜ ์ผ๋ฐ˜์ ์ธ ํ™œ์šฉ ์‚ฌ๋ก€์ธ, ๊ธฐ์—… ๋‚ด์˜ ์ž์‚ฐ ์ •๋ณด๋ฅผ API๋ฅผ ํ†ตํ•ด ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Acme Freight๋Š” ์˜คํ”ˆ์†Œ์Šค Node.js ํ”„๋ ˆ์ž„์›Œํฌ์ธ LoopBack์„ ์‚ฌ์šฉํ•ด ERP (์ „์‚ฌ์  ์ž์›๊ด€๋ฆฌ) ์‹œ์Šคํ…œ์— ์žˆ๋Š” ์ž์‚ฐ์— API๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ํ•ด๋‹น ์ •๋ณด๋Š” API Connect์ƒ์˜ ๋‹จ์ผ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด์„œ ์‹ ๊ทœ ๋ฐ ๊ธฐ์กด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์•ˆ์ „ํ•˜๊ฒŒ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.


‘์ฝ”๋“œ ๋ณด๊ธฐ’ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด GitHub์—์„œ ํ•œ๊ธ€ README ํŒŒ์ผ์„, ‘๋™์˜์ƒ ๋ฐ๋ชจ ๋ณด๊ธฐ’ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋ฐ๋ชจ ๋™์˜์ƒ์ด ํฌํ•จ๋œ ๊ด€๋ จ ํ•œ๊ธ€ ํฌ์ŠคํŒ…์„ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

By Sai Vennam, Joe Sepi, Ashley McClelland, Ram Vennam

Overview

๊ฐ€์ƒ์˜ ๋ฌผ๋ฅ˜ํšŒ์‚ฌ Acme Freight๋Š” ๊ธฐ์—… ๋‚ด ์ž์‚ฐ ์ค‘ ์ผ๋ถ€๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Logistic Wizard๋ผ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ 3๊ฐœ์˜ Cloud Foundry ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋‹ค์ˆ˜์˜ OpenWhisk ์•ก์…˜์„ ํฌํ•จํ•œ ์—ฌ๋Ÿฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. (Acme Freight็คพ์™€ ์„œ๋ฒ„๋ฆฌ์Šค์— ๋Œ€ํ•œ ๋” ๋งŽ์€ ์ •๋ณด๋Š” Make apps smarter with serverless (์˜๋ฌธ)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”)

Acme Freight๋Š” ์‹ ๊ทœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ธฐ์กด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•œ API๋ฅผ ๋น ๋ฅด๊ฒŒ ์ƒ์„ฑํ•˜๊ณ  ๋…ธ์ถœ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ์˜คํ”ˆ์†Œ์Šค Node.js ํ”„๋ ˆ์ž„์›Œํฌ์ธ LoopBack์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Acme Freight็คพ๋Š” LoopBack์„ ์‚ฌ์šฉํ•ด ๊ธฐ์กด ERP์‹œ์Šคํ…œ๊ณผ ํ†ตํ•ฉ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋ฉฐ, API Connect์€ ๊ด€๋ฆฌ๋˜๋Š” API๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณต๊ฐœ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

LoopBack์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ์กด ๋ฐ์ดํ„ฐ ์†Œ์Šค์—์„œ CRUD APIs๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ  ๋…ธ์ถœ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. LoopBack์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ๊ธฐ๋ณธ ๊ฐ€์ด๋“œ๋ฅผ ์›ํ•˜์‹œ๋ฉด ์ด ๋น„๋””์˜ค ํŠœํ† ๋ฆฌ์–ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ๊ธฐ์กด MongoDB ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋กœ๋ถ€ํ„ฐ 5๋ถ„ ์•ˆ์— API๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Flow

  1. Web User๊ฐ€ ์ƒํ’ˆ ๋ฐฐ์†ก ๋ฐ ๊ด€๋ จ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.
  2. ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋กœ Web UI๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.
  3. Controller๊ฐ€ ์‹œ์Šคํ…œ ์„œ๋น„์Šค ๊ฐ„์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  4. OpenWhisk Recommendations๋Š” ์†Œ๋งค์  ์ฃผ๋ณ€์˜ ๋‚ ์”จ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ถ”๊ฐ€์ ์ธ ์ƒํ’ˆ ๋ฐฐ์†ก์— ๋Œ€ํ•œ ๊ถŒ๊ณ ์‚ฌํ•ญ์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  5. ์ „์‚ฌ์  ์ž์›๊ด€๋ฆฌ(ERP) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ œํ’ˆ, ๋ฌผ๋ฅ˜์„ผํ„ฐ, ์†Œ๋งค์—…์ฒด, ๋ฐฐ์†ก๊ณผ ๊ฐ™์€ ๊ธฐ์—…์˜ ์ž์›์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋…ธ์ถœ์‹œํ‚ค๊ฑฐ๋‚˜ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  6. Secure Gateway ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ๊ธฐ์—… ๋‚ด๋ถ€ (์˜จํ”„๋ ˆ๋ฏธ์Šค) ๋˜๋Š” ์™ธ๋ถ€ ํด๋ผ์šฐ๋“œ ๋ฐ์ดํ„ฐ์— ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  7. Firewall ์€ ๊ธฐ์—… ๋‚ด๋ถ€ (์˜จํ”„๋ ˆ๋ฏธ์Šค) ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.
  8. ๊ธฐ์—… ๋‚ด๋ถ€ (์˜จํ”„๋ ˆ๋ฏธ์Šค) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ธฐ์—…์˜ ์ž์›์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

Components

LoopBack

ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚œ ์˜คํ”ˆ์†Œ์Šค Node.js ํ”„๋ ˆ์ž„์›Œํฌ

API Connect

API์™€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ƒ์„ฑํ•˜๊ณ  ์šด์˜ํ•ฉ๋‹ˆ๋‹ค.

IBM Cloud Functions

ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚œ ์„œ๋ฒ„๋ฆฌ์Šค ํ™˜๊ฒฝ์ด๋ฉฐ, ์˜จ๋””๋งจ๋“œ ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. (FaaS - Function as a service๋กœ๋„ ๋ถˆ๋ฆผ)

Cloud Foundry

์˜คํ”ˆ์†Œ์Šค ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•, ๋ฐฐํฌ, ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Technologies

API Management

API๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ํ•ด๋‹นAPI์— ๋Œ€ํ•œ ๋ฌธ์„œํ™”, ์ ‘์† ํ†ต์ œ ๋ฐ ํ†ต๊ณ„ ์ถ”์ ์ด ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ์˜ API ์ œ๊ณต์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ

ํด๋ผ์šฐ๋“œ

์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ปดํ“จํŒ… ๋ฐ IT ๋ฆฌ์†Œ์Šค์— ์—‘์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค

Databases

๋ฐ์ดํ„ฐ์˜ ์ €์žฅ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ €์žฅ์†Œ.

Serverless Computing

์ด๋ฒคํŠธ์— ๋Œ€์‘ํ•ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ์ด๋ฒคํŠธ-์•ก์…˜ ํ”Œ๋žซํผ(FaaS, Function as a service๋กœ๋„ ๋ถˆ๋ฆผ)์ž…๋‹ˆ๋‹ค.

Related Blogs

IBM Q Experience๋กœ ์‹œ์ž‘ํ•˜๋Š” ์–‘์ž์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹ค์Šต

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

๊ณ„์† ์ฝ๊ธฐ IBM Q Experience๋กœ ์‹œ์ž‘ํ•˜๋Š” ์–‘์ž์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹ค์Šต

ํ•œ๊ตญ์ธํ„ฐ๋„ท์ง„ํฅ์› & ํ•œ๊ตญIBM์ด ํ•จ๊ป˜ํ•˜๋Š” Fintech Ground-up Program ํ›„๊ธฐ (3์ฃผ์ฐจ 3์ผ AI Watson ์„œ๋น„์Šค)

์•ˆ๋…•ํ•˜์„ธ์š” SG์ž…๋‹ˆ๋‹ค. ^^ ๋ฒŒ์จ ์—ฌ๋Ÿฌ๋ถ„๊ณผ ์ด๋ ‡๊ฒŒ ๊ธ€๋กœ ๋งŒ๋‚˜๋Š”๊ฒŒ ์„ธ๋ฒˆ์งธ ์ด์ž 3์ผ์งธ๋„ค์š”. ๋งค์ผ ๊ธ€์„ ์˜ฌ๋ฆฐ๋‹ค๋Š”๊ฒŒ ์‰ฝ์ง€ ์•Š๋‹ค๋Š”๊ฑธ ๊นจ๋‹ฌ์œผ๋ฉด์„œ, ์›Œ์šฐ ๋Œ€๋‹จ๋“ค ํ•˜์‹œ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์กด๊ฒฝํ•ฉ๋‹ˆ๋‹ค. DeveloperWorks/kr ์— ๊ธ€์„ ์˜ฌ๋ฆฌ์‹œ๋Š” ๋ชจ๋“  ๋ถ„๋“ค~ ๋ณต๋ฐ›์œผ์‹ค๊บผ์—์š”~!! ์–ด์จŒ๋“  ์˜ค๋Š˜๋„ ์–ด๊น€์—†์ด ๊ฐ•์˜์žฅ์— ๋„์ฐฉ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ญ์‹œ ๊น”๋”ํ•˜๊ณ  ๊นจ๋—ํ•œ ๊ฐ•์˜์žฅ ํ™˜๊ฒฝ ^^ ์˜ค๋Š˜์€ ๋กœ๋น„๋ฅผ ๊ตฌ๊ฒฝ์„ ์ข€ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ข‹๋„ค์š”~ ํ˜„๋ž€ํ•˜๊ฒŒ ๋Œ์•„๊ฐ€๋Š” ์‹ธ์ธ์ด์ฆˆ๊ฐ€ ๋ˆˆ์— ๋„์—ฌ KISA...

๊ณ„์† ์ฝ๊ธฐ ํ•œ๊ตญ์ธํ„ฐ๋„ท์ง„ํฅ์› & ํ•œ๊ตญIBM์ด ํ•จ๊ป˜ํ•˜๋Š” Fintech Ground-up Program ํ›„๊ธฐ (3์ฃผ์ฐจ 3์ผ AI Watson ์„œ๋น„์Šค)

LoopBack์œผ๋กœ ๊ธฐ์—… ๋ฐ์ดํ„ฐ ์•ˆ์ „ํ•˜๊ฒŒ ๋…ธ์ถœ์‹œํ‚ค๊ธฐ

์›๋ฌธ ์ถœ์ฒ˜ Unlock enterprise data with LoopBack ๋ ˆ๊ฑฐ์‹œ ์„œ๋น„์Šค, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์œ„์น˜ํ•œ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋Š” ํ†ต์ƒ ์ ‘๊ทผ์ด ์–ด๋ ต์ง€๋งŒ, ๊ผญ ๊ทธ๋ ‡์ง€๋งŒ์€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ›จ์”ฌ ๋” ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ํˆด๊ณผ ๋ฐฉ๋ฒ•๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ฐ€์ƒ์˜ ๋ฌผ๋ฅ˜ํšŒ์‚ฌ์ธ Acme Freight็คพ๊ฐ€ ์–ด๋–ป๊ฒŒ ์˜คํ”ˆ์†Œ์Šค API ํ”„๋ ˆ์ž„์›Œํฌ์ธ LoopBack์„ ํ™œ์šฉํ•ด ๊ธฐ์—…์ด ๊ฐ€์ง„ ์ผ๋ฐ˜์ ์ธ ๊ณ ๋ฏผ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. (์ž์„ธํ•œ ๋‚ด์šฉ์€ API๋กœ ๊ธฐ์—… ๋ฐ์ดํ„ฐ ์•ˆ์ „ํ•˜๊ฒŒ ๋…ธ์ถœ์‹œํ‚ค๊ธฐ...

๊ณ„์† ์ฝ๊ธฐ LoopBack์œผ๋กœ ๊ธฐ์—… ๋ฐ์ดํ„ฐ ์•ˆ์ „ํ•˜๊ฒŒ ๋…ธ์ถœ์‹œํ‚ค๊ธฐ

Related Links