๋๋ฒ๊น ¶
๋๋ฒ๊ทธ ๋ชจ๋ ์ค์ ¶
Rhymix/XE์์ ๊ฐ๋ฐ ์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ๋๋ฒ๊ทธ ๋ชจ๋๋ฅผ ํ์ฑํํ์ฌ ์์ธํ ์ค๋ฅ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ค์ ๋ฐฉ๋ฒ¶
/config/config.user.inc.php
ํ์ผ์ ๋ค์ ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค:
<?php
// ๋๋ฒ๊ทธ ๋ชจ๋ ํ์ฑํ
define('__DEBUG__', 1);
// ๋๋ฒ๊ทธ ์ถ๋ ฅ ๋ ๋ฒจ ์ค์ (0: ์์, 1: ํ์ผ, 2: ํ๋ฉด)
define('__DEBUG_OUTPUT__', 2);
// ํน์ IP์์๋ง ๋๋ฒ๊ทธ ์ ๋ณด ํ์ (๋ณด์์ ๊ถ์ฅ)
define('__DEBUG_PROTECT__', '123.456.789.0');
?>
๋๋ฒ๊ทธ ๋ ๋ฒจ ์ต์ ¶
__DEBUG__
: ๋๋ฒ๊ทธ ๋ชจ๋ on/off0
: ๋นํ์ฑํ (๊ธฐ๋ณธ๊ฐ)-
1
: ํ์ฑํ -
__DEBUG_OUTPUT__
: ๋๋ฒ๊ทธ ์ ๋ณด ์ถ๋ ฅ ์์น 0
: ์ถ๋ ฅํ์ง ์์1
: ํ์ผ๋ก ์ ์ฅ (files/_debug/
๋๋ ํ ๋ฆฌ)-
2
: ํ๋ฉด์ ์ง์ ์ถ๋ ฅ -
__DEBUG_PROTECT__
: ๋ณด์ ์ค์ - IP ์ฃผ์ ์ง์ ์ ํด๋น IP์์๋ง ๋๋ฒ๊ทธ ์ ๋ณด ํ์
- ์ด์ ์๋ฒ์์๋ ๋ฐ๋์ ์ค์ ๊ถ์ฅ
์ฃผ์์ฌํญ¶
-
์ฑ๋ฅ ์ํฅ: ๋๋ฒ๊ทธ ๋ชจ๋ ํ์ฑํ ์ CSS/JS minify ๊ธฐ๋ฅ์ด ๋นํ์ฑํ๋์ด ์ฑ๋ฅ์ด ์ ํ๋ ์ ์์ต๋๋ค.
-
๋ณด์ ์ฃผ์: ์ด์ ์๋ฒ์์๋ ์ ๋ ๋๋ฒ๊ทธ ๋ชจ๋๋ฅผ ํ์ฑํํ์ง ๋ง์ธ์. ๋ฏผ๊ฐํ ์ ๋ณด๊ฐ ๋ ธ์ถ๋ ์ ์์ต๋๋ค.
-
ํ์ผ ๊ถํ: ํ์ผ๋ก ๋๋ฒ๊ทธ ์ ๋ณด๋ฅผ ์ ์ฅํ ๊ฒฝ์ฐ
files/_debug/
๋๋ ํ ๋ฆฌ์ ์ฐ๊ธฐ ๊ถํ์ด ํ์ํฉ๋๋ค.
์ผ๋ฐ์ ์ธ ๋๋ฒ๊น ๋ฐฉ๋ฒ¶
1. ๋ณ์ ํ์ธ¶
// Rhymix ๋๋ฒ๊ทธ ํจ์
debug('๋ณ์ ๋ด์ฉ ํ์ธ');
debugPrint($variable);
// XE ๋ ๊ฑฐ์
debugPrint($variable, $title = null);
2. ์ฟผ๋ฆฌ ๋๋ฒ๊น ¶
// ์ฟผ๋ฆฌ ์คํ ์ ๋๋ฒ๊ทธ ๋ชจ๋ ์ค์
$output = executeQuery('module.getModuleInfo', $args);
if (!$output->toBool()) {
debugPrint($output);
}
3. ์๋ฌ ๋ก๊ทธ ํ์ธ¶
์๋ฌ ๋ก๊ทธ๋ ๋ค์ ์์น์์ ํ์ธํ ์ ์์ต๋๋ค:
- PHP ์๋ฌ ๋ก๊ทธ: ์๋ฒ ์ค์ ์ ๋ฐ๋ผ ๋ค๋ฆ
- Rhymix ์๋ฌ ๋ก๊ทธ: files/_debug/
๋๋ ํ ๋ฆฌ
4. ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ ํ์ฉ¶
- F12๋ฅผ ๋๋ฌ ๊ฐ๋ฐ์ ๋๊ตฌ ์ด๊ธฐ
- Console ํญ์์ JavaScript ์๋ฌ ํ์ธ
- Network ํญ์์ ์์ฒญ/์๋ต ํ์ธ
๋ฌธ์ ํด๊ฒฐ ํ¶
-
ํ๋ฉด์ด ๋ฐฑ์ง๋ก ๋์ฌ ๋
- ๋๋ฒ๊ทธ ๋ชจ๋๋ฅผ ํ์ฑํํ์ฌ ์๋ฌ ํ์ธ
- PHP ์๋ฌ ๋ก๊ทธ ํ์ธ
- ํ์ผ ๊ถํ ๋ฌธ์ ํ์ธ -
์ฟผ๋ฆฌ๊ฐ ์คํ๋์ง ์์ ๋
- XML ์ฟผ๋ฆฌ ํ์ผ ๋ฌธ๋ฒ ํ์ธ
- ํ ์ด๋ธ๋ช , ์ปฌ๋ผ๋ช ํ์ธ
- ์กฐ๊ฑด์ ๋ฌธ๋ฒ ํ์ธ -
๋ชจ๋์ด ์๋ํ์ง ์์ ๋
- ๋ชจ๋ ์ค์น ์ํ ํ์ธ
- ๊ถํ ์ค์ ํ์ธ
- ์บ์ ํ์ผ ์ญ์ (files/cache/
)
์ ์ฉํ ๋๋ฒ๊น ๋๊ตฌ¶
- XE/Rhymix Profiler: ์คํ ์๊ฐ, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, ์ฟผ๋ฆฌ ๋ถ์
- Xdebug: PHP ๋๋ฒ๊น ํ์ฅ
- Chrome DevTools: ํ๋ก ํธ์๋ ๋๋ฒ๊น
- Postman: API ํ ์คํธ