Osticket: ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฉ”๋‰ด๋ฅผ ํด๋ฆญํ•  ๋•Œ /scp์— app.php๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2015๋…„ 07์›” 24์ผ  ยท  20์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: osTicket/osTicket

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ๋ฉ”๋‰ด๋ฅผ ์ถ”๊ฐ€ํ•œ ํ›„

    Application::registerAdminApp('Multi Tenancy', 'multitenancy.php', array(
        iconclass => 'api'
    ));

๋ฉ”๋‰ด ํ•ญ๋ชฉ์ด "์‘์šฉ ํ”„๋กœ๊ทธ๋žจ" ๋ฐ ํ•˜์œ„ ๋ฉ”๋‰ด "๋‹ค์ค‘ ํ…Œ๋„Œ์‹œ"์™€ ํ•จ๊ป˜ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ "์‘์šฉ ํ”„๋กœ๊ทธ๋žจ"์„ ํด๋ฆญํ•˜๋ฉด osticket ์Šคํฌ๋ฆฝํŠธ์— ์—†๋Š” apps.php๋กœ ๋ฆฌ๋””๋ ‰์…˜๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ๊ฒ€ํ† ํ•˜์‹ญ์‹œ์˜ค.

cause unknown

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@Temepest74

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

ํ˜„์žฌ ์‹œ๋ฆฌ์ฆˆ( 1.14.x / 1.15.x )์— ๋Œ€ํ•œ ๋ชจ๋“  ์ฃผ์š” ๊ฐœ๋ฐœ์„ ์ค‘๋‹จํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋งˆ๋ฌด๋ฆฌ/์žฌ์ž‘์„ฑํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ดˆ์ ์„ v2.0(์™„์ „ํžˆ ํ˜„๋Œ€์ ์ธ UI/UX๋กœ ์ „์ฒด ์ฝ”๋“œ๋ฒ ์ด์Šค ์žฌ์ž‘์„ฑ)์œผ๋กœ ์˜ฎ๊ธฐ๋ฉด์„œ ํ˜„์žฌ ์‹œ๋ฆฌ์ฆˆ์— ๋Œ€ํ•œ ์ฃผ์š” ๊ฐœ๋ฐœ์„ ์ค‘๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ๋ฒ„๊ทธ ์ˆ˜์ •, ๋ณด์•ˆ ํŒจ์น˜ ๋ฐ ์ž ์žฌ์ ์œผ๋กœ ์ž‘์€ ์ถ”๊ฐ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ด์ง€๋งŒ ์ฃผ์š” ์ฝ”๋“œ ๋ณ€๊ฒฝ ๋ฐ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ v2.0์€ _ํ›จ์”ฌ_ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜์—ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ

๊ฑด๋ฐฐ.

๋ชจ๋“  20 ๋Œ“๊ธ€

osTicket ๋ฒ„์ „?

osTicket 1.9.6, ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ  ์ตœ์‹  ๋ฆด๋ฆฌ์Šค์—์„œ๋„ ๋ˆ„๋ฝ๋œ ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

/apps/.htaccess ํŒŒ์ผ์€ ํŠธ๋ž˜ํ”ฝ์„ /apps/dispatcher.php ๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. IIS๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”, IIS๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

_apps.php_์™€์˜ ๋งํฌ๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์•ฑ ํด๋”์˜ _htaccess_๋ฅผ ๊ณ ๋ คํ•˜๋ฉด ๋ฉ”๋‰ด ๋งํฌ๊ฐ€ _apps.php_์—์„œ _/apps_ ํด๋”๋กœ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. centos 7์—์„œ ์•„ํŒŒ์น˜ ์‹คํ–‰ํ•˜๊ธฐ

๋‚ด ์ž์‹ ์˜ ์„ค์น˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ๊ณ ๊ฐ(osTicket Reports)๋„ ์ด ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. apps.php๋ฅผ ํด๋ฆญํ•˜๋ฉด 404๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ตœ์‹  ์„ค์น˜๋Š” CentOS 7์— ์žˆ์Šต๋‹ˆ๋‹ค.

[scott<strong i="6">@rowleys</strong> ~]$ hostnamectl
<snip>
       Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
       Kernel: Linux 3.10.0-693.5.2.el7.x86_64
       Architecture: x86-64
</snip>

[scott<strong i="7">@rowleys</strong> ~]$ httpd -v
Server version: Apache/2.4.6 (CentOS)

์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. https://forum.osticket.com/d/96924-plugin-development-how-to-use-the-dispatcher-to-route-links-to-your-plugin/2๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
๋˜ํ•œ #1072๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ์ข…๋ฃŒ๋œ ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

( @SoftwareMods ' ๋ณด๊ณ ์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ).

์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜์…จ๋‚˜์š”?

์œ„์— ๋งํฌ๋œ ํฌ๋Ÿผ ๊ฒŒ์‹œ๋ฌผ ์—์„œ ์„ค๋ช…ํ–ˆ๋“ฏ์ด scp/apps/dispatcher.php 17๋ฒˆ์งธ ์ค„์˜ ์ž˜๋ชป๋œ if ๋ฌธ์„ ์ฃผ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ํ• ์ˆ˜ ์—†์–ด. ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์šด์ด ์—†์—ˆ์–ด. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์›๋ž˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด๊ฑฐ๋‚˜ ํ’€ ์š”์ฒญ์„ ์ œ์ถœํ•˜๊ฑฐ๋‚˜ ๊ณ ์œ ํ•œ OSTicket ํฌํฌ๋ฅผ ๋ฐฐํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค./

์šด์ด ์—†์—ˆ์–ด. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์›๋ž˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด๊ฑฐ๋‚˜ ํ’€ ์š”์ฒญ์„ ์ œ์ถœํ•˜๊ฑฐ๋‚˜ ๊ณ ์œ ํ•œ OSTicket ํฌํฌ๋ฅผ ๋ฐฐํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค./

@JediKev @ntzier ์ด ๋ฌธ์ œ๊ฐ€ ์ข…๋ฃŒ๋˜์–ด์„œ๋Š” ์•ˆ ๋  ๊ฒƒ ๊ฐ™์€๋ฐ์š”?

OST ํŒ€์ด ๋ฌธ์ œ/๋กœ๊ทธ ๋“ฑ์„ ์žฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋•๊ธฐ ์œ„ํ•ด ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

@joeldeteves

์ด๋™ scp/apps/dispatcher.php ์ด์ƒ if (basename($_SERVER['SCRIPT_NAME'])==basename(__FILE__)) ์ถ”๊ฐ€ var_dump($_SERVER['SCRIPT_NAME'], __FILE__);die; ๊ฒ€ํ† ๋ฅผ ์œ„ํ•ด ์—ฌ๊ธฐ์— ์ถœ๋ ฅ์„ ๊ฒŒ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฑด๋ฐฐ.

@JediKev ๋‹˜ , ๋ง์”€ํ•˜์‹  ๋Œ€๋กœ ํ–ˆ์ง€๋งŒ ์•„๋ฌด๊ฒƒ๋„ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด scp/apps.php๋กœ ๋ฆฌ๋””๋ ‰์…˜๋˜๊ณ  404 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
image

@Temepest74

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

ํ˜„์žฌ ์‹œ๋ฆฌ์ฆˆ( 1.14.x / 1.15.x )์— ๋Œ€ํ•œ ๋ชจ๋“  ์ฃผ์š” ๊ฐœ๋ฐœ์„ ์ค‘๋‹จํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋งˆ๋ฌด๋ฆฌ/์žฌ์ž‘์„ฑํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ดˆ์ ์„ v2.0(์™„์ „ํžˆ ํ˜„๋Œ€์ ์ธ UI/UX๋กœ ์ „์ฒด ์ฝ”๋“œ๋ฒ ์ด์Šค ์žฌ์ž‘์„ฑ)์œผ๋กœ ์˜ฎ๊ธฐ๋ฉด์„œ ํ˜„์žฌ ์‹œ๋ฆฌ์ฆˆ์— ๋Œ€ํ•œ ์ฃผ์š” ๊ฐœ๋ฐœ์„ ์ค‘๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ๋ฒ„๊ทธ ์ˆ˜์ •, ๋ณด์•ˆ ํŒจ์น˜ ๋ฐ ์ž ์žฌ์ ์œผ๋กœ ์ž‘์€ ์ถ”๊ฐ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ด์ง€๋งŒ ์ฃผ์š” ์ฝ”๋“œ ๋ณ€๊ฒฝ ๋ฐ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ v2.0์€ _ํ›จ์”ฌ_ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜์—ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ

๊ฑด๋ฐฐ.

@JediKev

์˜ค, ์ •๋ง ์ž˜ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฒ ์ด์Šค๋Š” ๋•Œ๋•Œ๋กœ ์•ฝ๊ฐ„ ๋ณต์žกํ•ด ๋ณด์ด์ง€๋งŒ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ธฐ๋ฅผ ์ •๋ง ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช‡ ์ฃผ ์•ˆ์— OSTicket 1.15.x ์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ž‘์„ฑํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. 2.0 ์šฉ์œผ๋กœ ์™„์ „ํžˆ ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@JediKev ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@ํ˜ธ์ด๋งˆ๋ฅด

์˜ค ์˜ˆ lol ์šฐ๋ฆฌ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ(์™„์ „ํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ ORM ํฌํ•จ)๋กœ ์ „ํ™˜ํ•˜๊ณ  ํ”„๋ŸฐํŠธ ์—”๋“œ์— ReactJS + Semantic UI๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ์ฝ”๋“œ๋ฒ ์ด์Šค๋Š” _์™„์ „ํžˆ_ ๋‹ค๋ฅผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฑด๋ฐฐ.

@Temepest74

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

ํ˜„์žฌ ์‹œ๋ฆฌ์ฆˆ( 1.14.x / 1.15.x )์— ๋Œ€ํ•œ ๋ชจ๋“  ์ฃผ์š” ๊ฐœ๋ฐœ์„ ์ค‘๋‹จํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋งˆ๋ฌด๋ฆฌ/์žฌ์ž‘์„ฑํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ดˆ์ ์„ v2.0(์™„์ „ํžˆ ํ˜„๋Œ€์ ์ธ UI/UX๋กœ ์ „์ฒด ์ฝ”๋“œ๋ฒ ์ด์Šค ์žฌ์ž‘์„ฑ)์œผ๋กœ ์˜ฎ๊ธฐ๋ฉด์„œ ํ˜„์žฌ ์‹œ๋ฆฌ์ฆˆ์— ๋Œ€ํ•œ ์ฃผ์š” ๊ฐœ๋ฐœ์„ ์ค‘๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ๋ฒ„๊ทธ ์ˆ˜์ •, ๋ณด์•ˆ ํŒจ์น˜ ๋ฐ ์ž ์žฌ์ ์œผ๋กœ ์ž‘์€ ์ถ”๊ฐ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์ด์ง€๋งŒ ์ฃผ์š” ์ฝ”๋“œ ๋ณ€๊ฒฝ ๋ฐ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ์—†์Šต๋‹ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ v2.0์€ _ํ›จ์”ฌ_ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜์—ฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ

๊ฑด๋ฐฐ.

๋งค์šฐ ํฅ๋ฏธ ์ง„์ง„ํ•œ!

ํŠนํžˆ ์ƒˆ๋กญ๊ณ  ๋ชจ๋˜ํ•œ UI ๐Ÿ˜

@JediKev ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰