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

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

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

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

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

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

๊ฒฐ๋ก ์ ์œผ๋กœ CQRS(Command Query Responsibility Segregation)๋Š” ์ฃผ๋กœ ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™, ๋†’์€ ํŠธ๋žœ์žญ์…˜ ์†๋„ ๋ฐ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ๋ณผ๋ฅจ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ตœ์‹  ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์˜ ํ™•์žฅ์„ฑ, ์„ฑ๋Šฅ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ๋ช…๋ น๊ณผ ์ฟผ๋ฆฌ ์ฑ…์ž„์„ ๋ถ„๋ฆฌํ•˜๊ณ , ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ตœ์ ํ™”ํ•˜๊ณ , ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ†ต์‹ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™๊ธฐํ™”ํ•˜๋Š” ์›์น™์€ AppMaster ํ”Œ๋žซํผ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ด€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. CQRS๋ฅผ ํ™œ์šฉํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๋Š” ์‚ฌ์šฉ ์‚ฌ๋ก€์˜ ๊ณผ์ œ์™€ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๊ฐ•๋ ฅํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋™์‹œ์— AppMaster ์˜ no-code ๋„๊ตฌ ๋ฐ ํ™˜๊ฒฝ, ์ž๋™ ์ฝ”๋“œ ์ƒ์„ฑ ๋ฐ ๊ธฐ์ˆ  ๋ถ€์ฑ„ ๋ถ€์กฑ์˜ ์ด์ ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.