2023๋…„ 6์›” 20์ผยท3๋ถ„ ์ฝ๊ธฐ

Go๋ฅผ ์‚ฌ์šฉํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค

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

Go๋ฅผ ์‚ฌ์šฉํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค

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

๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ์™€ ๊ธฐ๋Šฅ์„ ๋‹จ์ผ ์ฝ”๋“œ๋ฒ ์ด์Šค๋กœ ๋ฌถ๋Š” ๊ธฐ์กด์˜ ๋ชจ๋†€๋ฆฌ์‹ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋‹ฌ๋ฆฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ ์„œ๋น„์Šค๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์ดํ•ด, ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ํŠน์ • ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋ฉฐ ๋ถˆํ•„์š”ํ•œ ์„œ๋น„์Šค ๊ฐ„ ์ข…์†์„ฑ์„ ์ƒ์„ฑํ•˜์ง€ ์•Š๋„๋ก ๊ตฌํ˜„์ด ์ตœ๋Œ€ํ•œ ๊ฐ„๋‹จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

Go์™€ ํ•จ๊ป˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์˜ ์ด์ 

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

  1. ๊ฐ•๋ ฅํ•œ ์„ฑ๋Šฅ: Go๋Š” ๋‹จ์ˆœ์„ฑ๊ณผ ํšจ์œจ์„ฑ์— ์ค‘์ ์„ ๋‘” ์ปดํŒŒ์ผ๋œ ์–ธ์–ด๋กœ, ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚œ ๊ณ ์„ฑ๋Šฅ, ์งง์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Go์˜ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋Š” ์ตœ์†Œํ•œ์˜ ์ผ์‹œ ์ค‘์ง€๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŠนํžˆ ์ˆ˜๋งŽ์€ ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์„ฑ๋Šฅ๊ณผ ์‘๋‹ต์„ฑ์ด ํ•„์š”ํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋™์‹œ์„ฑ: Go๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ตœ์†Œํ•œ์˜ ๋…ธ๋ ฅ์œผ๋กœ ํšจ์œจ์ ์ธ ๋™์‹œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณ ๋ฃจํ‹ด ๋ฐ ์ฑ„๋„์„ ํ†ตํ•ด ๋™์‹œ์„ฑ์„ ์ตœ๊ณ  ์ˆ˜์ค€์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๊ฐ€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๊ณ  ์ƒ๋‹นํ•œ ๋™์‹œ ์›Œํฌ๋กœ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—์„œ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ฐ„๋‹จํ•œ ๊ตฌ๋ฌธ: Go๋Š” ๋‹จ์ˆœ์„ฑ์„ ์—ผ๋‘์— ๋‘๊ณ  ์„ค๊ณ„๋˜์–ด ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ ์„œ๋น„์Šค๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ•œ ๋‹จ์ˆœํ•˜๊ณ  ๋…๋ฆฝ์ ์ด์–ด์•ผ ํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋กœ ์ž‘์—…ํ•  ๋•Œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  4. ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์—์ฝ”์‹œ์Šคํ…œ: Go์—๋Š” ํฌ๊ด„์ ์ธ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์™ธ๋ถ€ ์ข…์†์„ฑ์— ํฌ๊ฒŒ ์˜์กดํ•˜์ง€ ์•Š๊ณ ๋„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Go์˜ ์„ฑ์žฅํ•˜๋Š” ์ƒํƒœ๊ณ„๋Š” gRPC, Gin ๋ฐ Echo์™€ ๊ฐ™์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐœ๋ฐœ์— ๋ช…์‹œ์ ์œผ๋กœ ๋ถ€ํ•ฉํ•˜๋Š” ๋งŽ์€ ์„ฑ์ˆ™ํ•˜๊ณ  ์‹ค์ „ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์นœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ž๋ž‘ํ•ฉ๋‹ˆ๋‹ค.
  5. ํšจ์œจ์ ์ธ ์ปดํŒŒ์ผ ๋ฐ ์‹คํ–‰: Go๋Š” ๋น ๋ฅธ ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋น ๋ฅธ ์ปดํŒŒ์ผ ์‹œ๊ฐ„๊ณผ ๊ฐ€๋ฒผ์šด ๋ฐ”์ด๋„ˆ๋ฆฌ ์ถœ๋ ฅ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ฆ๋ถ„ ๋ฐ ์—ฐ์† ๋ฐฐํฌ ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ์ž˜ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.
  6. ๊ฐ•๋ ฅํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์›: Go์—๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์–ธ์–ด ๋ฐ ์ƒํƒœ๊ณ„์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ ๋ฐ ๊ฐœ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ด‘๋ฒ”์œ„ํ•œ ์ง€์‹ ๊ธฐ๋ฐ˜์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋Œ€๊ทœ๋ชจ์˜ ํ™œ๋ฐœํ•œ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ด์ ์„ ํ†ตํ•ด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐœ๋ฐœ์— Go๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ตœ์‹  ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์™€ ์ž˜ ์ผ์น˜ํ•˜๋Š” ๊ณ ์„ฑ๋Šฅ, ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Go์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐœ๋ฐœ์„ ์œ„ํ•ด Go๋ฅผ ์ฑ„ํƒํ•  ๋•Œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๋”ฐ๋ผ ์„œ๋น„์Šค๋ฅผ ๋ณต์›ํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ Go์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๋ชจ๋ฒ” ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค.

  1. ์ž˜ ์ •์˜๋œ ๊ณ„์•ฝ์œผ๋กœ API ์„ค๊ณ„: ๋ช…ํ™•ํ•˜๊ณ  ์ผ๊ด€๋œ API ๊ณ„์•ฝ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„์˜ ์•ˆ์ •์ ์ธ ํ†ต์‹ ์— ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. API๋Š” ํ†ต์‹  ๋ฐ ์ž˜ ์ •์˜๋œ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ํ‘œ์ค€ํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ํ•จ๊ป˜ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ RESTful ์›์น™์„ ๋”ฐ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. gRPC์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํšจ์œจ์ ์ด๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ํ˜•์‹์ด ์•ˆ์ „ํ•œ API๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ด์™€ ๊ด€๋ จํ•˜์—ฌ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋А์Šจํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋œ ์„œ๋น„์Šค: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๋…๋ฆฝ์ ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ถˆํ•„์š”ํ•œ ์„œ๋น„์Šค ๊ฐ„ ์ข…์†์„ฑ์„ ํ”ผํ•˜๊ณ  ์„œ๋น„์Šค๊ฐ€ ๊ณต์šฉ API๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์„œ๋น„์Šค ๊ฐ„ ์ƒํ˜ธ ์ž‘์šฉ์˜ ๋ณต์žก์„ฑ์„ ์ค„์ด๊ณ  ์—…๋ฐ์ดํŠธ ๋ฐ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋ณด๋‹ค ์‰ฝ๊ณ  ํƒ„๋ ฅ์ ์ธ ํ™˜๊ฒฝ์„ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋ถ„๋ฆฌ: ๊ฐœ๋ณ„ ์„œ๋น„์Šค ๋‚ด์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์บก์Аํ™”ํ•˜์—ฌ API ๊ณ„์•ฝ ๋ฐ ํ†ต์‹  ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋” ์‰ฌ์›Œ์ง€๊ณ  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๊ฐ„์— ๋ฌธ์ œ๋ฅผ ๋” ์ž˜ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๊ตฌํ˜„: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—๋Š” ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ๋ณต์›๋ ฅ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ํฌ๊ด„์ ์ธ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹  ์‹คํŒจ, ์ž˜๋ชป๋œ ์ž…๋ ฅ ๋ฐ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ ์ ˆํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์žฅ์• ๊ฐ€ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ์—ฐ์†์ ์œผ๋กœ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  ์„œ๋น„์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํŒจํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  5. ์„ฑ๋Šฅ ๋ฏธ์„ธ ์กฐ์ •: Go๋Š” ๊ฐ•๋ ฅํ•œ ์„ฑ๋Šฅ ๊ธฐ๋Šฅ์ด ํŠน์ง•์ด์ง€๋งŒ ์ด๋ฅผ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๋ ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฏธ์„ธ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์„ฑ๋Šฅ์„ ์ธก์ • ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์—ฐ๊ฒฐ ํ’€๋ง, ์บ์‹ฑ ๋ฐ ๋™์‹œ์„ฑ ํŒจํ„ด๊ณผ ๊ฐ™์€ ์š”์†Œ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•˜๊ณ  ์ˆ˜์š”์— ๋”ฐ๋ผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  6. ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ ์ž๋™ํ™”: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ ์ฑ„ํƒ์˜ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์€ ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. CI/CD(์ง€์†์ ์ธ ํ†ตํ•ฉ ๋ฐ ์ง€์†์ ์ธ ๋ฐฐํฌ) ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ๊ตฌ์ถ•, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ์‹ ์†ํ•œ ์ฆ๋ถ„ ์—…๋ฐ์ดํŠธ๋ฅผ ์ง€์›ํ•˜๊ณ  ๋ฐฐํฌ ๊ด€๋ จ ์‹คํŒจ์˜ ์œ„ํ—˜์„ ์ค„์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๋”ฐ๋ฅด๊ณ  Go๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ด์ ์„ ํ™œ์šฉํ•˜๋ฉด ํšจ์œจ์ ์ด๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์žฅ๊ธฐ์ ์ธ ์„ฑ๊ณต์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Go ๊ธฐ๋ฐ˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ฃผ์š” ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด

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

DDD(๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„)

Domain-Driven Design์€ ๋„๋ฉ”์ธ์˜ ๋ณต์žก์„ฑ๊ณผ ๋…ผ๋ฆฌ์— ์ดˆ์ ์„ ๋งž์ถ˜ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. Go ๊ธฐ๋ฐ˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—์„œ DDD๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ํ•ด๊ฒฐํ•˜๋Š” ์‹ค์ œ ๋ฌธ์ œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ชจ๋ธ๋งํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋ฉฐ, ์ด๋Š” ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ด๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋ชฉํ‘œ์— ๋ถ€ํ•ฉํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. DDD๋Š” ๊ฐ๊ฐ ํŠน์ • ๋„๋ฉ”์ธ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋Š” ๋ชจ๋“ˆ์‹ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ น ์ฟผ๋ฆฌ ์ฑ…์ž„ ๋ถ„๋ฆฌ(CQRS)

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

์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(EDA)

์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋Š” ์„œ๋น„์Šค ๊ฐ„์˜ ๋” ๋‚˜์€ ํ†ต์‹ ์„ ์œ„ํ•ด ๋„๋ฉ”์ธ ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑ, ๊ฐ์ง€ ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค. Go ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— EDA๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ๋‹ค๋ฅธ ์„œ๋น„์Šค์™€ ์‰ฝ๊ฒŒ ํ†ตํ•ฉ๋˜์–ด ์ „์ฒด ์‹œ์Šคํ…œ ์ƒํ˜ธ ์ž‘์šฉ์ด ๊ฐ„์†Œํ™”๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์„œ๋น„์Šค ๊ฐ„์˜ ๊ฒฐํ•ฉ์„ ์ค„์—ฌ ํ™•์žฅ์„ฑ๊ณผ ์œ ์ง€ ๊ด€๋ฆฌ์„ฑ์„ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค.

์ŠคํŠธ๋žญ๊ธ€๋Ÿฌ ํŒจํ„ด

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

์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜

๋Ÿฐํƒ€์ž„์— ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ํ™•์žฅํ•˜๋ ค๋ฉด Kubernetes, Docker Swarm ๋˜๋Š” Amazon ECS์™€ ๊ฐ™์€ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋Š” ์ปจํ…Œ์ด๋„ˆํ™”๋œ Go ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌ, ํ™•์žฅ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์€ ๋ฆฌ์†Œ์Šค ํ™œ์šฉ์„ ๊ฐœ์„ ํ•˜๊ณ  ์„œ๋น„์Šค ๊ฐ„์˜ ๊ฒฉ๋ฆฌ๋ฅผ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

์‚ฌ๋ก€ ์—ฐ๊ตฌ: Go๋ฅผ ์‚ฌ์šฉํ•œ AppMaster ์˜ ๋ฐฑ์—”๋“œ ์ƒ์„ฑ

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

AppMaster ํ”Œ๋žซํผ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ™œ์šฉ

AppMaster Go๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ no-code ํ”Œ๋žซํผ์˜ ์ผ๋ถ€๋กœ ๊ณ ๊ฐ์„ ์œ„ํ•œ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ณ ๊ฐ์€ ๋ฐฑ์—”๋“œ ๊ตฌ์„ฑ ์š”์†Œ, REST API ๋ฐ WebSocket endpoints ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด AppMaster ํ–ฅ์ƒ๋œ ํ™•์žฅ์„ฑ, ์œ ์ง€ ๊ด€๋ฆฌ์„ฑ ๋ฐ ํšจ์œจ์„ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AppMaster ์˜ ๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„ ๊ตฌํ˜„

AppMaster ์‹œ๊ฐ์ ์ธ Business Process Designer๋ฅผ ํ†ตํ•ด Domain-Driven Design์„ ์ง€์›ํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ๋„๋ฉ”์ธ ๊ธฐ๋Šฅ์„ ์ค‘์‹ฌ์œผ๋กœ ํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ •์˜ํ•˜๊ณ  ๋ถ„๋ฆฌํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์—์„œ ๋ช…ํ™•ํ•œ ๋ชจ๋“ˆ์‹ ์„œ๋น„์Šค ๊ฒฝ๊ณ„๋ฅผ โ€‹โ€‹์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜ ์ฑ„ํƒ

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

AppMaster.io์˜ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜

Go ๊ธฐ๋ฐ˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์•ˆ์ •์ ์ธ ๊ด€๋ฆฌ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ํ™•์žฅ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด AppMaster Kubernetes ๋ฐ Docker Swarm๊ณผ ๊ฐ™์€ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ์™€ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค. AppMaster ์‚ฌ์ „ ํŒจํ‚ค์ง€๋œ ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ณ ๊ฐ์—๊ฒŒ ์ œ๊ณตํ•จ์œผ๋กœ์จ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๋™์‹œ์— ์ผ๊ด€๋œ ์„ฑ๋Šฅ ๋ฐ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง, Go ์ฝ”๋“œ ์ƒ์„ฑ
PostgreSQL ์Šคํ‚ค๋งˆ๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  AppMaster๊ฐ€ ํ”„๋กœ๋•์…˜์šฉ Go ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ํ•˜์„ธ์š”.
๋ฐฑ์—”๋“œ ์ƒ์„ฑ

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

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ž˜ ์ •์˜๋œ API๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•˜๋Š” ์ž‘๊ณ  ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค ๋ชจ์Œ์œผ๋กœ ๊ตฌ์ถ•๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์ž…๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—์„œ Go๊ฐ€ ์ธ๊ธฐ ์žˆ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

Go์˜ ๋‹จ์ˆœ์„ฑ, ๋™์‹œ์„ฑ ๋ชจ๋ธ, ์„ฑ๋Šฅ ๋ฐ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋„คํŠธ์›Œํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ์ง€์› ๋•๋ถ„์— Go๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ตฌํ˜„์— ์„ ํ˜ธ๋˜๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค.

Go์™€ ํ•จ๊ป˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์ด์ ์ด ์žˆ๋‚˜์š”?

์ผ๋ถ€ ์ด์ ์—๋Š” ํ™•์žฅ์„ฑ, ์˜ค๋ฅ˜ ๊ฒฉ๋ฆฌ, ๋ฐฐํฌ ๋ฐ ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ, ์„œ๋น„์Šค์˜ ๋…๋ฆฝ์ ์ธ ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ, ๋‹ค์–‘ํ•œ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์— ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ๊ณผ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

Go์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋‚˜์š”?

Go์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์ข…์ข… ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•ด HTTP/JSON ๋˜๋Š” gRPC์™€ ๊ฐ™์€ ๊ฒฝ๋Ÿ‰ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค๊ฐ€ ํšจ์œจ์ ์ด๊ณ  ์•ˆ์ •์ ์œผ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

Go๋กœ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ์•Œ์•„์•ผ ํ•  ๋ฌธ์ œ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

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

Go์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ๊ณผ ํŠธ๋žœ์žญ์…˜์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋‚˜์š”?

Go ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์ข…์ข… ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ๋ฉ”์‹œ์ง€ ํ์™€ ๊ฐ™์€ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ์˜์กดํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ณ  ์—ฌ๋Ÿฌ ์„œ๋น„์Šค์—์„œ ํŠธ๋žœ์žญ์…˜์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์‰ฌ์šด ์‹œ์ž‘
๋ฉ‹์ง„๋งŒ๋“ค๊ธฐ

๋ฌด๋ฃŒ ์š”๊ธˆ์ œ๋กœ AppMaster๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.
์ค€๋น„๊ฐ€ ๋˜๋ฉด ์ ์ ˆํ•œ ๊ตฌ๋…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๋‹ค
Go๋ฅผ ์‚ฌ์šฉํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค | AppMaster