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

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

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

๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ no-code ํ”Œ๋žซํผ์ธ AppMaster ๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ Inner Join ์ž‘์—…์˜ ์ค‘์š”์„ฑ์„ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. AppMaster ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๊ฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ)์„ ์ƒ์„ฑํ•˜๊ณ , ์‹œ๊ฐ์  BP Designer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์„ค๊ณ„ํ•˜๊ณ , REST API ๋ฐ WSS ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”Œ๋žซํผ์€ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ์„œ ๋ชจ๋“  PostgreSQL ํ˜ธํ™˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์›ํ™œํ•œ ํ†ตํ•ฉ์„ ์ด‰์ง„ํ•˜์—ฌ ๋‚ด๋ถ€ ์กฐ์ธ ์ž‘์—… ๋ฐ ๊ธฐํƒ€ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ๊ฐ•๋ ฅํ•œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Inner Join์˜ ํšจ์œจ์„ฑ์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ๊ฐ ์ •๋ณด์™€ ์ฃผ๋ฌธ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ„๋„์˜ ํ…Œ์ด๋ธ”์ด ์žˆ๋Š” ์ „์ž ์ƒ๊ฑฐ๋ž˜ ํ”Œ๋žซํผ์˜ ์˜ˆ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์‹ญ์‹œ์˜ค. ๋‘ ํ…Œ์ด๋ธ”์—๋Š” ๊ณตํ†ต ์†์„ฑ์œผ๋กœ 'customer_id'๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Inner Join์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‘ ํ…Œ์ด๋ธ”์˜ 'customer_id' ์†์„ฑ์„ ์ผ์น˜์‹œ์ผœ ๊ณ ๊ฐ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ด„์ ์ธ ๋ฐ์ดํ„ฐ์„ธํŠธ์™€ ๊ฐ ์ฃผ๋ฌธ ์„ธ๋ถ€์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๊ฐ ํ•ญ๋ชฉ์— ํŠน์ • ๊ณ ๊ฐ์˜ ์ •๋ณด์™€ ๊ณ ๊ฐ์ด ์ฃผ๋ฌธํ•œ ์„ธ๋ถ€ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ์ถœ๋ ฅ ํ…Œ์ด๋ธ”์ด ๋ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๋‚ด๋ถ€ ์กฐ์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ SQL(๊ตฌ์กฐ์  ์ฟผ๋ฆฌ ์–ธ์–ด) ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SELECT * FROM customers INNER JOIN orders ON customers.customer_id = orders.customer_id;

์ด SQL ๋ฌธ์€ `customers` ํ…Œ์ด๋ธ”๊ณผ `orders` ํ…Œ์ด๋ธ”์˜ `customer_id`๊ฐ€ ์ผ์น˜ํ•˜๋Š” ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™€ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฐํ•ฉํ•˜๊ณ  ์ด๋ฅผ ๋‹จ์ผ ๋ณตํ•ฉ ๋ฐ์ดํ„ฐ์„ธํŠธ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ์กฐ์ธ ์ž‘์—…์€ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ๋ฐ ํ†ตํ•ฉ ์ž‘์—…์„ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”ํ•˜๋ฏ€๋กœ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์— ์—†์–ด์„œ๋Š” ์•ˆ ๋  ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

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

๋˜ํ•œ ์ธ๋ฑ์‹ฑ ๋ฐ ์ฟผ๋ฆฌ ๊ณ„ํš ๋ถ„์„๊ณผ ๊ฐ™์€ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ์ˆ ์€ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์—์„œ ํšจ์œจ์ ์ธ Inner Join ์ž‘์—…์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Go(Golang)์—์„œ ์ƒ์„ฑ๋œ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜๋Š” AppMaster ๋ณต์žกํ•œ ๋‚ด๋ถ€ ์กฐ์ธ ์ฟผ๋ฆฌ ๋ฐ ๊ธฐํƒ€ ๋ฐ์ดํ„ฐ ์ž‘์—…์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋œ ๊ณ ๊ธ‰ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด AppMaster ์‚ฌ์šฉ์ž๋Š” ๋‚ด๋ถ€ ์กฐ์ธ์„ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ง„์ •ํ•œ ์ž ์žฌ๋ ฅ์„ ํ™œ์šฉํ•˜์—ฌ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์ˆ˜์ค€์˜ ๊ณ ์„ฑ๋Šฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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