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

์†Œํ”„ํŠธ์›จ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋”์šฑ ๋ถ„์‚ฐ๋˜๊ณ  ์ƒํ˜ธ ์—ฐ๊ฒฐ๋จ์— ๋”ฐ๋ผ ํšจ์œจ์ ์ธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ํ•„์š”์„ฑ์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. Gartner์˜ ๋ณด๊ณ ์„œ์— ๋”ฐ๋ฅด๋ฉด 2023๋…„๊นŒ์ง€ ์ƒˆ๋กœ์šด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ์˜ 40% ์ด์ƒ์ด ์„œ๋ฒ„๋ฆฌ์Šค ๋˜๋Š” FaaS(Function-as-a-Service) ์•„ํ‚คํ…์ฒ˜์˜ ์‚ฌ์šฉ์„ ํฌํ•จํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ณต์žกํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์›Œํฌํ”Œ๋กœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์žˆ์–ด ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ ์ค‘์š”์„ฑ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.

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

์›Œํฌํ”Œ๋กœ ์ž๋™ํ™”์˜ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋ก ๊ณผ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ํ•ต์‹ฌ ์ธก๋ฉด์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

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

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

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

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

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

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

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