Question
โข
์๋
ํ์ญ๋๊น, ์ ๋ฐ์ฌ๋. ์ง๋ ๋งคํธ๋ฉ ๊ต์ก์ ๊ณผ์ ๋ฅผ ์ด์ ์ผ ์ ์ถํฉ๋๋ค. ๋ํ์์์ ๋๋์ง ์์ ์ฃผ๋จธ๋ ์ฌ์ ์ผ๋ก ์ธํ Late Submission์ ๋๊ทธ๋ฌ์ด ๋ง์์ผ๋ก ์ดํดํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ์บ์ฌํฉ๋๋ค.
โข
๋ค๋ง ํ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ ๋ ๊ฒฐ๊ณผ๊ฐ ์ ์ฅ๋ ๋, ์ด๋ฏธ Result_01์ด ์กด์ฌํ๋ค๋ฉด ์ ๊ฒฐ๊ณผ๋ Result_02, ๊ทธ ๋ค์์ Result_03๊ณผ ๊ฐ์ด ์ ์ฅ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ํ์ง๋ง CodingStyle_Core๋ฅผ ์์ ํด๋ด๋ ์ฌ์ ํ ์๋ก์ด ๊ฒฐ๊ณผ๊ฐ ๊ธฐ์กด์ Result_01์ ๋ฎ์ด์ฐ๊ธฐ ํ์์ผ๋ก ์ ์ฅ ๋ฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋ฉด ์ข์์ง ์ฌ์ญค๋ด
๋๋ค.
Answer
์ํ๋ ๋ก์ง์ด ์ ๊ตฌํ ๋์ง ์์๋ ์ด์
์ง๋ฌธ์ด "์คํฌ์ ๊ท์น์ ์ ์๋๋ฐ ์ Claude๊ฐ ๊ทธ๊ฑธ ๋ฌด์ํ ์ฝ๋๋ฅผ ๋ง๋ค์๋๋" ์ธ๊ฑฐ ๊ฐ์๋ฐ,
Claude๊ฐ ๊ท์น์ ๋ฌด์ํ ๊ฒ ์๋๋ผ,ย ๊ทธ ๊ท์น์ ์ฝ๋๋ก ์ฎ๊ธธ ๋งํ ๊ตฌ์ฒด์ ํจํด์ด ์คํฌ ์์ ์์๊ธฐ ๋๋ฌธ.
์์ฐ์ด ๊ท์น vs ๊ตฌ์ฒด์ ์ฝ๋ ํ ํ๋ฆฟ
CodingStyle_Core.md ยง4์ ์ ์ ๋ด์ฉ์ ๋ค์ ๋ณด๋ฉด ์ด๋ฐ ์์ย ์ฐ๋ฌธ ์ค๋ช
์:
When creating an output, check the '[3] Output/' folder and see the latest result. If there are no results created yet, generate the result name 'Results_01/'. If there is a result that is already created, generate the new result after the already existing result.
์ด๊ฑด ์ฌ๋์ด ์ฝ์ผ๋ฉด "ํด๋ ์ค์บํด์ max+1 ํด์ผ๊ฒ ๊ตฌ๋"๋ผ๊ณ ์ถ๋ก ์ด ๋์ง๋ง, Claude ์
์ฅ์์๋ย ์ด ๊ท์น์ MATLAB ์ฝ๋๋ก ์ด๋ป๊ฒ ์ฎ๊ธธ์ง์ ๋ํ ๊ตฌ์ฒด์ ์์๊ฐ ์์.
์คํฌ์ย references/ย ํด๋๋ฅผ ๋ณด๋ฉด:
โข
Ex_MainStructure.mย โ main ์คํฌ๋ฆฝํธ ๊ณจ๊ฒฉ์ ์์ง๋งย simName = 'Results_01'ย ํ๋์ฝ๋ฉ
โข
Ex_OutputManagement.mย โ SaveResults ํจํด์ ์์ง๋ง outDir ์๋ ์ฆ๊ฐ ๋ก์ง ์์
โข
๋๋จธ์ง reference ํ์ผ โ ์๋ ์ฆ๊ฐ์ ๋ฌด๊ด
์ฆ, "๊ท์น์ .md์ ์์ง๋ง, ๊ทธ ๊ท์น์ ๊ตฌํํ .m ํ
ํ๋ฆฟ์ด ์๋" ์ํ์์.
Claude๋ ์ด๋ฐ ์ํฉ์์ reference ํ์ผ์ ํจํด์ ๊ทธ๋๋ก ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์, ์์ฐ์ค๋ฝ๊ฒย simName = 'Results_01'ย ๊ณ ์ ํจํด์ด ์์ฑ๋จ.
๋ณธ์ธ ์ฝ๋์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ฌ๋๊ฐ
main_doublePendulumCart.mย 13โ16์ค์ ๋ณด๋ฉด:
**simName** = 'Results_01';
**outDir** = fullfile('[2] Output', **simName**);
if ~exist(**outDir**, 'dir'); mkdir(**outDir**); end
MATLAB
๋ณต์ฌ
โข
simName์ด ๋ฌธ์์ด ๋ฆฌํฐ๋ด๋ก ๊ณ ์ โ ๋งค ์คํ๋ง๋ค ๊ฐ์ ๊ฐ
โข
if ~existย ๋ฌธ์ "ํด๋๊ฐ ์์ ๋๋ง mkdir"์ด๋ฏ๋ก ์ด๋ฏธ ํด๋๊ฐ ์์ผ๋ฉด ๊ทธ๋ฅ ํต๊ณผ
โข
๊ฒฐ๊ณผ์ ์ผ๋ก ์ถ๋ ฅ์ ํญ์ ๊ฐ์ ํด๋์ ๋ฎ์ด์ฐ๊ธฐ๋จ
์ด ํจํด์ ์ ํํย Ex_MainStructure.m์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ์ด๋ฉฐ, ํ
ํ๋ฆฟ์ ์๋ ์ฆ๊ฐ ๊ตฌํ์ด ๋น ์ ธ ์์๋ ๊ฒ๋ฟ์.
ํด๊ฒฐ๋ฒ: ์คํฌ์ ๊ตฌํ ์์(.m) ์ถ๊ฐ
๊ท์น์ ์ฐ๋ฌธ์ผ๋ก๋ง ๋์ง ๋ง๊ณ ,ย ๊ฐ์ ๊ท์น์ ์ฝ๋๋ก ๋ณด์ฌ์ฃผ๋ reference .m ํ์ผ์ ์ถ๊ฐํด์ผ ํจ.
๊ทธ๋ฌ๋ฉด ๋ค์์ Claude๊ฐ main ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค ๋ ์๋์ผ๋ก ์ด ํจํด์ ๋ฐ๋ผ๊ฐ.
Step 1:ย references/์ย Ex_AutoIncrementOutput.mย ์ถ๊ฐ
%% Auto-Increment Output Directory Pattern
% Scan output root, find latest Results_NN, create next index.
% UPDATED: 2026-04-13
**outRoot** = '[2] Output';
if ~exist(**outRoot**, 'dir'); mkdir(**outRoot**); end
**existing** = dir(fullfile(**outRoot**, 'Results_*'));
**nums** = [];
for k = 1:length(**existing**)
if **existing**(k).isdir
**tok** = regexp(**existing**(k).name, '^Results_(\d+)$', 'tokens', 'once');
if ~isempty(**tok**); **nums**(end+1) = str2double(**tok**{1}); end
end
end
**nextIdx** = max([0, **nums**]) + 1;
**simName** = sprintf('Results_%02d', **nextIdx**);
**outDir** = fullfile(**outRoot**, **simName**);
mkdir(**outDir**);
MATLAB
๋ณต์ฌ
Step 2: SKILL.md Quick Reference Map์ ํ ์ค ์ถ๊ฐ
| Set up auto-incremented output folder | `references/Ex_AutoIncrementOutput.m` |
Markdown
๋ณต์ฌ
Step 3:ย Ex_MainStructure.m์ Simulation Identity ๋ธ๋ก๋ ์ ํจํด์ผ๋ก ๊ต์ฒด
โข
references/Ex_MainStructure.m์ Claude๊ฐ main ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค ๋ย ๊ฐ์ฅ ๋จผ์ ์ฐธ๊ณ ํ๋ ํ
ํ๋ฆฟ ํ์ผ์.
์ด ํ์ผ ์์ฒด๊ฐ ํ๋์ฝ๋ฉ ํจํด์ ๋ณด์ฌ์ฃผ๊ณ ์๋ ํ, Step 1์์ ๋ณ๋ ์ฐธ์กฐ ํ์ผ์ ์ถ๊ฐํด๋ Claude๋ ์ฌ์ ํ Ex_MainStructure์ ํจํด์ ๋ฐ๋ผ๊ฐ ๊ฐ๋ฅ์ฑ์ด ๋์
โข
๋ฐ๋ผ์ ์ด ํ์ผ ์์ Simulation Identity ๋ธ๋ก๋ ํจ๊ป ๊ณ ์ณ ๋์์ผ ์ถฉ๋ ์์ด ์ผ๊ด๋ ์ฝ๋๊ฐ ์์ฑ๋จ
Skill Design Principle
์คํฌ์์ย ์์ฐ์ด ๊ท์น๊ณผย ๊ตฌํ ์์(.m)ย ๋ ์๋ก ๋ค๋ฅธ ์ฑ๋์:
โข
.mdย ๊ท์น๋ง ์์ ๋ โ Claude๊ฐ ์ถ๋ก ์ผ๋ก ์ฝ๋๋ฅผ ๋ง๋ค ์ ์์ง๋ง, reference .m ํ์ผ์ด ๋ค๋ฅธ ํจํด์ ๋ณด์ด๋ฉด reference๋ฅผ ์ฐ์ ํจ
โข
.mย ์์๋ง ์์ ๋ โ ํจํด์ ๋ฐ๋ฅด์ง๋ง ์ ์ฉ ์กฐ๊ฑด/์ด์ ๋ฅผ ๋์น ์ ์์
โข
๋ ๋ค ์์ ๋ย โ ๊ฐ์ฅ ์์ ์ ์ผ๋ก ์๋๋๋ก ์๋ํจ
์ด๋ฒ ์ฌ๋ก๋ย .md์๋ง ๊ท์น์ ์ ๊ณ ย .m์๋ ๊ตฌํ์ด ์์ด์, Claude๊ฐ reference ํ์ผ์ ํ๋์ฝ๋ฉ ํจํด์ ๋ฐ๋ฅธ ์ผ์ด์ค์.
P.S. 2026 MATLAB ๊ต์ก์๋ฃ์ ๋ด์ฉ ๋ฐ ์์ค ์ฝ๋๋ ๋น๊ณต๊ฐ๋ผ ์ฌ๋ ค๋ ์ฒจ๋ถํ์ผ์ ์ญ์ ํด๋์.

