์์ฉ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๊ฐ ์ปค์ง๊ณ ๋ณต์ก์ฑ๋น์ฆ๋์ค ๋ก์ง์ ๊น๋ํ๊ฒ ์ ๋ฆฌํ๊ธฐ๊ฐ ๋ ์ด๋ ค์์ง๋๋ค. ์ฌ์ฉ์ ๋์์ ์ํด ํธ๋ฆฌ๊ฑฐ๋๋ ๋ก์ง ๋ธ๋ก์ด ๋ถ์ฐ๋์ด ์๊ฑฐ๋, switch ๋ฌธ์ด ์ค๋ณต๋๊ฑฐ๋, ์ด๋ค ์์ ์ ์ํํ ์ง ๊ฒฐ์ ํ๊ณ ์ด๋ฅผ ํ๊ณณ์์ ์ฒ๋ฆฌํ๋ ์ฝ๋๊ฐ ๋์ ๋๊ธฐ ์์ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ํจํด์ ์ผ๋ฐ์ ์ด๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ Command ํจํด์ด ๋์์ด ๋ ์ ์์์ ๋ํ๋ด๋ ์ ํธ์ผ ์ ์์ต๋๋ค.
์ปค๋งจ๋ ํจํด์ ์์ฒญ์ด๋ ์ก์ ์ ๋ ๋ฆฝํ ๊ฐ์ฒด๋ก ๋ณํํ๋ ๋์ ๋์์ธ ํจํด์ ๋๋ค. ๋์์ ์ง์ ํธ์ถํ๋ ๋์ , ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํํด์ผ ํ ์์ ์ ์บก์ํํ๋ ์ปค๋งจ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค. ์ด๋ฌํ ์ปค๋งจ๋ ๊ฐ์ฒด๋ ์ ์ฅ, ์ ๋ฌ, ๋๊ธฐ, ์ทจ์ ๋๋ ๋์ค์ ์คํํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์์คํ ์ ์ ์ฐ์ฑ, ๋ชจ๋์ฑ, ๊ทธ๋ฆฌ๊ณ ๋ช ํํ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๋ฆฌํฉํ ๋ง ๋ช ๋ น ํจํด์ ์ ์ง ๊ด๋ฆฌ์ ์ ํ์ ์ด ๋ ์ ์์ต๋๋ค. ์ก์ ์ ํธ์ถํ๋ ๊ฐ์ฒด์ ์ก์ ์ ์ํํ๋ ๊ฐ์ฒด๋ฅผ ๋ถ๋ฆฌํ์ฌ ์์คํ ์ ํ์ฅ์ฑ์ ๋์ฌ์ค๋๋ค. ๋ํ ์ก์ ์ ์ฌ์ฌ์ฉ์ฑ, ํ ์คํธ ๋ฐ ์ถ์ ์ฑ์ ๋์ฌ์ฃผ๋๋ฐ, ํนํ ์ฌ๋ฌ ์ก์ ์ด ์ ์ฌํ ๊ตฌ์กฐ๋ฅผ ๊ณต์ ํ์ง๋ง ๋์ ๋ฐฉ์์ด ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ์ฉํฉ๋๋ค.
์์ ๊ฐ์ ๊ฐ์ง๊ณ ๋ฆฌํฉํ ๋งํ์ธ์
SMART TS XL ๋ณต์กํ ๋ฆฌํฉํ ๋ง์ ๋์ฑ ์์ ํ๊ณ ๋น ๋ฅด๊ฒ ๋ง๋ค์ด์ค๋๋ค!
Click Here๋ช ๋ น ํจํด์ผ๋ก๋ถํฐ ์ด์ ์ ์ป์ ์ ์๋ ์ฝ๋ ์ธ์
๋ฆฌํฉํ ๋ง์ ์ ์ ํ ๋ฌธ์ ์ ์ ์ฉํ ๋ ๊ฐ์ฅ ํจ๊ณผ์ ์ ๋๋ค. ๋ช ๋ น ํจํด์ ํน์ ๋ฌธ์ , ํนํ ๋์์ ๋งค๊ฐ๋ณ์ํ, ๋๊ธฐ์ด์ ์ถ๊ฐ, ์คํ ์ทจ์ ๋๋ ์ ์ฐํ ๋ฐฉ์์ผ๋ก ์คํํด์ผ ํ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ํจํด์ ์ ์ฉํ๊ธฐ ์ ์ ์ฝ๋๋ฒ ์ด์ค์์ ๋ช ๋ น ํจํด์ด ๋ช ํ์ฑ๊ณผ ์ ์ด ๊ธฐ๋ฅ์ ํฅ์์ํฌ ์ ์์์ ๋ํ๋ด๋ ์ผ๋ฐ์ ์ธ ๊ตฌ์กฐ์ ์งํ๋ฅผ ํ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ฐ๋ณต ์กฐ๊ฑด๋ฌธ๊ณผ ๋ถ๊ธฐ ๋ ผ๋ฆฌ
์ผ๋ฐ์ ์ธ ์งํ ์ค ํ๋๋ ๊ธด ์ฌ์ฌ์ ์กด์ฌ์
๋๋ค. if-else or switch ์
๋ ฅ ๊ฐ์ ๋ฐ๋ผ ๋์์ ์ ํํ๋ ๋ช
๋ น๋ฌธ์
๋๋ค. ์:
์๋ฐ๋ณต์ฌํธ์งif (action.equals("print")) {
document.print();
} else if (action.equals("email")) {
document.sendByEmail();
} else if (action.equals("archive")) {
document.archive();
}
์ด ํจํด์ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋ก์ง๊ณผ ๋์์ ์ํํ๋ ๋ก์ง์ ๊ธด๋ฐํ๊ฒ ๊ฒฐํฉํฉ๋๋ค. ์๋ก์ด ๋์์ ์ถ๊ฐํ๋ ค๋ฉด ์ด ๋ธ๋ก์ ์์ ํด์ผ ํ๋ฏ๋ก ๋ฒ๊ทธ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๊ณ ๊ฐ๋ฐฉ/ํ์ ์์น์ ์๋ฐํ๊ฒ ๋ฉ๋๋ค. ๋ช ๋ น ํจํด์ ๋์ ํ๋ฉด ๊ฐ ๋์์ ๋ ๋ฆฝํ ํด๋์ค๋ก ์ถ์ถํ๊ณ ์กฐ๊ฑด๋ฌธ์ ๋ช ๋ น ์คํ์ผ๋ก ๋์ฒดํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ณต์ก์ฑ์ด ์ค์ด๋ค๊ณ ์์คํ ํ์ฅ์ด ๋ ์ฌ์์ง๋๋ค.
์คํ ์ทจ์ ๋๋ ๋ค์ ์คํ ๋ ผ๋ฆฌ ๋ฐ ์ง์ฐ ์คํ
์คํ ์ทจ์, ๋ค์ ์คํ, ๋งคํฌ๋ก ๋๋ ์ง์ฐ ์คํ์ ์ง์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ์ข ์ก์ ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋จ์๋ก ์ ์ฅํ๋ ๋ฐ ์์กดํฉ๋๋ค. ์ก์ ์ ๋ฉ์๋ ํธ์ถ์ ์ง์ ์์ฑํ๋ฉด ๋ฐ๋ณตํ๊ฑฐ๋ ๋๋๋ฆฌ๊ธฐ๊ฐ ์ด๋ ค์์ง๋๋ค.
๋ช
๋ น ๊ฐ์ฒด๋ ๋์๊ณผ ๊ด๋ จ ๋ฐ์ดํฐ๋ฅผ ๋จ์ผ ๋จ์๋ก ์บก์ํํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด, DeleteFileCommand ํด๋์ค์๋ ๋ค์์ด ํฌํจ๋ ์ ์์ต๋๋ค. execute() ํ์ผ์ ์ญ์ ํ๋ ๋ฐฉ๋ฒ๊ณผ undo() ๋ณต์ํ๋ ๋ฐฉ๋ฒ์
๋๋ค. ์ด๋ฌํ ๊ฐ์ฒด๋ ์คํ์ด๋ ํ์ ์ถ๊ฐ๋ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์
์ด ์คํ ์์์ ๋กค๋ฐฑ ๋์์ ์๋ฒฝํ๊ฒ ์ ์ดํ ์ ์์ต๋๋ค.
๋ฉ๋ด ์์คํ , UI ์์ ๋ฐ ์์ ๋๊ธฐ์ด
์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฒํผ, ๋ฉ๋ด ํญ๋ชฉ, ๋ฐ๋ก๊ฐ๊ธฐ๋ ๋ชจ๋ ๋์์ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค. ์ด๋ฌํ ์ปจํธ๋กค์ด ํจ์์ ์ง์ ๋ฐ์ธ๋ฉ๋๋ฉด ์ฝ๋๊ฐ ๋น ๋ฅด๊ฒ ๋ณต์กํด์ง๊ณ ์์ ํ๊ธฐ ์ด๋ ค์์ง๋๋ค. ๊ฐ ๋์์ ๋ช ๋ น์ผ๋ก ๋ฆฌํฉํ ๋งํ๋ฉด UI์ ํด๋น ๋์์ด ํธ๋ฆฌ๊ฑฐํ๋ ๋ก์ง์ ์์ ํ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋ฒํผ์ ์ฐ๊ฒฐํ์ฌ ํธ์ถํ ์ ์์ต๋๋ค. SaveDocumentCommand. ์ด ๋ช
๋ น์ ๋จ์ถํค๋ ์๋ํ ์คํฌ๋ฆฝํธ์ ๊ฐ์ ๋ค๋ฅธ ํธ๋ฆฌ๊ฑฐ์์๋ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ช
๋ น์ ์ฌ์ฉํ๋ฉด ๋์์ ๋ชจ๋ํํ ์ ์์ผ๋ฉฐ, ๊ฐ๋ฐ์๋ ๋ด๋ถ ๋ก์ง์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ๋ช
๋ น์ ์ฌํ ๋น, ์ฌ์ฌ์ฉ ๋๋ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๊ตฌ์กฐ์ ๊ธฐํธ๋ ๋ช ๋ น ํจํด์ด ์ํคํ ์ฒ๋ฅผ ๋จ์ํํ๊ณ ์ ์ฐ์ฑ์ ๊ฐ์ ํ ์ ์๋ ๋ถ๋ถ์ ์ ํํ ํ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๋ช ๋ น ํจํด์ ๋ํ ๋จ๊ณ๋ณ ๋ฆฌํฉํ ๋ง
๋ช ๋ น ํจํด์ผ๋ก ๋ฆฌํฉํ ๋งํ๋ ค๋ฉด ๋์์ ์บก์ํ๋ ๋ช ๋ น ๊ฐ์ฒด๋ก ์ ์ง์ ์ผ๋ก ๋ถ๋ฆฌํด์ผ ํฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ง์ ๋ฉ์๋ ํธ์ถ๊ณผ ์ ์ด ๊ตฌ์กฐ๋ฅผ ๋ถ๋ฆฌ๋๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ ผ๋ฆฌ ๋จ์๋ก ๋์ฒดํฉ๋๋ค. ์๋ ๋จ๊ณ์์๋ ์ ์ฐจ์ ๋๋ ์กฐ๊ฑด์ ์ฝ๋๊ฐ ๋ง์ ์ฝ๋๋ฅผ ๋ช ๋ น ๊ธฐ๋ฐ ์ค๊ณ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
1๋จ๊ณ ํ๋ณด์ ์์ ์๋ณ
๋จผ์ ์กฐ๊ฑด์ด๋ ์
๋ ฅ์ ๋ฐ๋ผ ํน์ ๋์์ ํธ๋ฆฌ๊ฑฐํ๋ ์ฝ๋ ๋ถ๋ถ์ ์ฐพ์ผ์ธ์. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ ์ ์์ต๋๋ค. if-else ์ฒด์ธ, ์ค์์น ๋ฌธ ๋๋ ๋ฌธ์์ด์ด๋ ์ด๊ฑฐํ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๋์์ ์ ๋ฌํ๋ ๋ชจ๋ ๋ก์ง. ์ด๋ฌํ ์ฝ๋ ๋ธ๋ก์ ๋ฉ๋ด ํธ๋ค๋ฌ, ์์
๊ด๋ฆฌ์ ๋๋ ์๋น์ค ์ค์ผ์คํธ๋ ์ด์
๊ณ์ธต์ ์์ฃผ ๋ํ๋ฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ ผ๋ฆฌ์ ์ง์คํ์ธ์.
- ์ฌ์ฉ์ ๋๋ ์์คํ ์ ์ํด ํธ๋ฆฌ๊ฑฐ๋๋ ์์ ์ ๋ํ๋ ๋๋ค.
- ๊ฒฉ๋ฆฌ๋ ์ ์๋ ์์ ๋จ์๋ฅผ ์ํํฉ๋๋ค.
- ํฅํ ๊ฐ๋ฐ ์ ์ฌ์ฌ์ฉ, ์ง์ฐ ๋๋ ์ญ์ ๋ ์ ์์
2๋จ๊ณ ๋ช ๋ น ์ธํฐํ์ด์ค ๋๋ ๊ธฐ๋ณธ ํด๋์ค ๋ง๋ค๊ธฐ
๋ชจ๋ ๋ช
๋ น ํด๋์ค๊ฐ ๊ตฌํํ ๊ธฐ๋ณธ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์์ด ํฌํจ๋ฉ๋๋ค. execute() ๋ฐฉ๋ฒ ๋ฐ ์ ํ์ ์ผ๋ก undo() ๋กค๋ฐฑ์ด ํ์ํ ๊ฒฝ์ฐ ๋ฉ์๋์
๋๋ค. Java์ ๊ฒฝ์ฐ ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์๋ฐ๋ณต์ฌํธ์งpublic interface Command {
void execute();
}
๋ ๊ณ ๊ธ ์ฌ๋ก์์๋ ์คํ ์ทจ์, ์ค๋ช ๋๋ ์ง๋ ฌํ์ ๋ํ ๋ฉ์๋๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
3๋จ๊ณ ๊ตฌ์ฒด์ ๋ช ๋ น ํด๋์ค ๊ตฌํ
1๋จ๊ณ์์ ์๋ณ๋ ๊ฐ ๋์์ ๋ํด ๋ก์ง๊ณผ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์บก์ํํ๋ ํด๋น ๋ช ๋ น ํด๋์ค๋ฅผ ์์ฑํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋์๋ณ ์ฝ๋๊ฐ ํ ๊ณณ์ ์ ์ฅ๋๊ณ ์์คํ ์ ๋ค๋ฅธ ๋ถ๋ถ์์ ์์ ์ํ ๋ฐฉ์์ ์ ํ์๊ฐ ์์ต๋๋ค.
์:
์๋ฐ๋ณต์ฌํธ์งpublic class PrintDocumentCommand implements Command {
private Document document;
public PrintDocumentCommand(Document document) {
this.document = document;
}
public void execute() {
document.print();
}
}
4๋จ๊ณ ์ง์ ํธ์ถ์ ๋ช ๋ น ์คํ์ผ๋ก ๋ฐ๊พธ๊ธฐ
์๋ ์ฝ๋๋ก ๋์๊ฐ ๋์ ์ ํ ๋ก์ง์ ๋ช ๋ น ์์ฑ ๋ฐ ์คํ ๋ก์ง์ผ๋ก ๋์ฒดํฉ๋๋ค. ์ด ์์ ์ ์๋์ผ๋ก ์ํํ๊ฑฐ๋ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๋์์ ๋ช ๋ น ์ธ์คํด์ค์ ๋งคํํ ์ ์์ต๋๋ค.
์ค๋ฌผ:
์๋ฐ๋ณต์ฌํธ์งif (action.equals("print")) {
document.print();
}
๋ฆฌํฉํ ๋ง๋จ:
์๋ฐ๋ณต์ฌํธ์งCommand command = new PrintDocumentCommand(document);
command.execute();
์ด๋ฌํ ๋ณ๊ฒฝ์ผ๋ก ํธ๋ฆฌ๊ฑฐ ๋ฉ์ปค๋์ฆ์ด ์์ ์์ฒด์์ ๋ถ๋ฆฌ๋์ด ๋ช ๋ น์ด ์ธ์คํด์คํ๋๊ณ ์คํ๋๋ ๋ฐฉ์์ ๋ ํฐ ์ ์ฐ์ฑ์ด ํ์ฉ๋ฉ๋๋ค.
5๋จ๊ณ ํด๋ผ์ด์ธํธ ๋๋ ํธ์ถ์๋ฅผ ํตํ ๋ช ๋ น ์ฃผ์ ๋ฐ ๊ด๋ฆฌ
๋๊ท๋ชจ ์์คํ ์์๋ ํธ์ถ์ ๋๋ ๋์คํจ์ฒ ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ช ๋ น ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ์ด ๊ตฌ์ฑ ์์๋ ๋์ค์ ์ฌ์ฉํ ๋ช ๋ น์ ์ ์ฅํ๊ฑฐ๋, ํ์ ์ ์ฅํ๊ฑฐ๋, ์คํ ์ทจ์ ์คํ์ ์ง์ํ ์ ์์ต๋๋ค.
์๋ฐ๋ณต์ฌํธ์งpublic class CommandInvoker {
private Queue<Command> commandQueue = new LinkedList<>();
public void addCommand(Command command) {
commandQueue.add(command);
}
public void executeAll() {
while (!commandQueue.isEmpty()) {
commandQueue.poll().execute();
}
}
}
์ด ๋จ๊ณ์์๋ ๋ช ๋ น ์ผ๊ด ์ฒ๋ฆฌ, ๋ก๊น , ๋กค๋ฐฑ ๋๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์คํ์ ํ์ฑํํ์ฌ ํจํด์ ๋์ฑ ๊ฐ๋ ฅํ๊ฒ ๋ง๋ญ๋๋ค.
๋ช ๋ น ํจํด์ ์ฌ์ฉํ๊ธฐ ์ ๊ณผ ํ์ ์ฝ๋ ์์
Command ํจํด์ด ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ๋จ์ํํ๋์ง ๋ ์ ์ดํดํ๊ธฐ ์ํด ์ค์ ์ฌ๋ก๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด ๋ณํ์ ์กฐ๊ฑด๋ฌธ ์ค์ฌ์ ๋ก์ง์ ๋ชจ๋ํ๋๊ณ ์ ์ฐํ ๋ช ๋ น ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
๋ฌธ์ ๋น๊ตฌ์กฐํ๋ ์์ ์ฒ๋ฆฌ
์๋งค ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ณธ์ ์ธ ์ฃผ๋ฌธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์๋ฐ๋ณต์ฌํธ์งpublic void processOrder(String action, Order order) {
if (action.equals("ship")) {
order.ship();
} else if (action.equals("cancel")) {
order.cancel();
} else if (action.equals("refund")) {
order.refund();
}
}
์ด ๋ฉ์๋๋ ์ธ ๊ฐ์ง ํน์ ๋์๊ณผ ๋ฐ์ ํ๊ฒ ๊ฒฐํฉ๋์ด ์์ต๋๋ค. ์ ๋์์ ์ถ๊ฐํ๋ ค๋ฉด ์ด ๋ฉ์๋๋ฅผ ์ง์ ์์ ํด์ผ ํ๋ฉฐ, ๊ฐ ๋์์ ํ ์คํธํ๋ ค๋ฉด ํน์ ์กฐ๊ฑด์์ ๋ฉ์๋๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.
๋ฆฌํฉํ ๋ง ์ถ์ถ ๋ช ๋ น
๋จผ์ , ์ ์ํ์ธ์ Command ์ธํฐํ์ด์ค :
์๋ฐ๋ณต์ฌํธ์งpublic interface Command {
void execute();
}
์ด์ ๊ฐ ๋์์ ๋ํ ๊ตฌ์ฒด์ ์ธ ๋ช ๋ น ํด๋์ค๋ฅผ ๋ง๋ญ๋๋ค.
์๋ฐ๋ณต์ฌํธ์งpublic class ShipOrderCommand implements Command {
private Order order;
public ShipOrderCommand(Order order) {
this.order = order;
}
public void execute() {
order.ship();
}
}
public class CancelOrderCommand implements Command {
private Order order;
public CancelOrderCommand(Order order) {
this.order = order;
}
public void execute() {
order.cancel();
}
}
public class RefundOrderCommand implements Command {
private Order order;
public RefundOrderCommand(Order order) {
this.order = order;
}
public void execute() {
order.refund();
}
}
๋ง์ง๋ง์ผ๋ก ๋ช ๋ น ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๋ก ์ฃผ์ ๋ ผ๋ฆฌ๋ฅผ ๋ฆฌํฉํ ๋งํฉ๋๋ค.
์๋ฐ๋ณต์ฌํธ์งpublic class OrderProcessor {
private Map<String, Function<Order, Command>> commandMap = new HashMap<>();
public OrderProcessor() {
commandMap.put("ship", ShipOrderCommand::new);
commandMap.put("cancel", CancelOrderCommand::new);
commandMap.put("refund", RefundOrderCommand::new);
}
public void processOrder(String action, Order order) {
Function<Order, Command> commandCreator = commandMap.get(action);
if (commandCreator != null) {
Command command = commandCreator.apply(order);
command.execute();
} else {
throw new IllegalArgumentException("Unknown action: " + action);
}
}
}
๊ฒฐ๊ณผ๋ ๋ ๊นจ๋ํ๊ณ ๋ชจ๋์์ด๋ฉฐ ํ์ฅ์ด ๋ ์ฝ์ต๋๋ค.
๋ช ๋ น ํจํด์ด ์ ์ฉ๋ ๊ฒฝ์ฐ:
- ๊ฐ ์์ ์ ์ด์ ๊ฒฉ๋ฆฌ๋์ด ํ ์คํธํ๊ธฐ ์ฌ์ด ๋ ๋ฆฝํ ํด๋์ค์ ๋๋ค.
- ์ฃผ์
OrderProcessor๊ฐ ํ๋์ ์ธ๋ถ ์ฌํญ์ ๋ํด ๋ ์ด์ ์ฑ ์์ ์ง์ง ์์ต๋๋ค. - ์๋ก์ด ์์ ์ ์ถ๊ฐํ๋ ๊ฒ์ ์๋ก์ด ๋ช ๋ น ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ๋งํผ ๊ฐ๋จํฉ๋๋ค.
- ์คํ ์ทจ์๋ ์ง์ฐ ์คํ๊ณผ ๊ฐ์ ์ ํ์ ๊ธฐ๋ฅ์ ์ ์ด ํ๋ฆ์ ๋ณ๊ฒฝํ์ง ์๊ณ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ด ๊ตฌ์กฐ๋ ์๊ฒฉํ๊ฒ ๋ฌถ์ธ ์ ์ฐจ์ ์ฝ๋๋ฅผ ์ ์ฐํ๊ณ ๊ฐ๋ฐฉ์ ์ธ ์์คํ ์ผ๋ก ๋ณํํฉ๋๋ค.
์ฅ์ ๊ณผ ๋จ์
๋ช ๋ น ํจํด์ ์ฌ์ฉํ ๋ฆฌํฉํ ๋ง์ ์ข ์ข ๋ ์ฒด๊ณ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ์ง๋ง, ๋๋ฆ์ ์ฅ๋จ์ ์ด ์์ต๋๋ค. ๋ ๊ฐ์ง ์ธก๋ฉด์ ๋ชจ๋ ์ดํดํ๋ฉด ์ด ํจํด์ ํจ๊ณผ์ ์ผ๋ก ์ ์ฉํ๊ณ ๋ ๋จ์ํ ์๋๋ฆฌ์ค์์ ๋ถํ์ํ ๋ณต์ก์ฑ์ ํผํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๋ช ๋ น์ด ๋ชจ๋์ฑ๊ณผ ํ ์คํธ์ฑ์ ๊ฐ์ ํ๋ ๊ฒฝ์ฐ
๋ช ๋ น ํจํด์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฐ์ฐ์ ์ผ๊ธ ๊ฐ์ฒด๋ก ์ฒ๋ฆฌํด์ผ ํ ๋ ๊ฐ์ฅ ์ ์ฉํฉ๋๋ค. ์บก์ํ๋๋ฉด ๋ช ๋ น์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋จ์๊ฐ ๋์ด ํธ์ถ์๊ฐ ๊ตฌํ์ ์ดํดํ ํ์ ์์ด ์ ๋ฌ, ์ ์ฅ ๋๋ ์ง์ฐ๋ ์ ์์ต๋๋ค.
์ฃผ์ ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ฐ ๊ฒฐํฉ: ํธ์ถ์๋ ๋ ์ด์ ๋์์ด ์ด๋ป๊ฒ ์ํ๋๋์ง ์ ํ์๊ฐ ์์ต๋๋ค.
- ์บก์ํ: ๊ฐ ๋ช ๋ น์๋ ์คํํ๋ ๋ฐ ํ์ํ ๋ ผ๋ฆฌ์ ์ปจํ ์คํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
- ํ์ฅ ์ฑ: ์๋ก์ด ๋์์ ์ ์ด ๋ ผ๋ฆฌ๋ฅผ ํธ์งํ๋ ๊ฒ์ด ์๋๋ผ ์๋ก์ด ํด๋์ค๋ฅผ ๋ง๋ค์ด์ ์ถ๊ฐ๋ฉ๋๋ค.
- ํ ์คํธ ๊ฐ๋ฅ์ฑ: ๊ฐ๋ณ ๋ช ๋ น์ UI๋ ์ ์ด ๊ตฌ์กฐ ์์ด ๊ฒฉ๋ฆฌ๋์ด ํ ์คํธ๋ ์ ์์ต๋๋ค.
- ์คํ ์ทจ์ ๋ฐ ์ฌ์ ์ง์: ์์ ์ ์ฒด๊ณ์ ์ผ๋ก ๊ธฐ๋กํ๊ณ ๋๋๋ฆด ์ ์์ต๋๋ค.
์ด๋ฌํ ํน์ฑ์ผ๋ก ์ธํด Command๋ ๋ณต์กํ ์ฌ์ฉ์ ์์ , ์ํฌํ๋ก, ์์ ์๋ํ ๋๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ฒ๋ฆฌ๊ฐ ํ์ํ ์์คํ ์ ๋งค์ฐ ์ ํฉํฉ๋๋ค.
์ ์ฌ์ ๋จ์ ๊ณ์ธต ํ์ฐ ๋ฐ ๊ฐ์ ์ฑ
Command๋ ๊ตฌ์กฐ๋ฅผ ๋์ ํ๋ ๋์์ ์ถ์ํ ๊ณ์ธต์ ์ถ๊ฐํฉ๋๋ค. ์๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ๊ฐ๋ณ ๊ธฐ๋ฅ์ ๊ฒฝ์ฐ, ์ด๋ฌํ ๊ณ์ธต ๊ตฌ์กฐ๋ ๊ณผํ๊ฒ ๋๊ปด์ง ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ์ฐ๋ ค ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์๊ท๋ชจ ์์ ์ด ๋๋ฌด ๋ง์์: ๊ฐ ์์ ์ด ๋ณ๋์ ํ์ผ์ด ๋์ด ํ๋ก์ ํธ์ ํฌ๊ธฐ์ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํ ์ ์์ต๋๋ค.
- ์ฐํ: ์ ์ด๊ฐ ์ฌ๋ฌ ํด๋์ค์ ์ธํฐํ์ด์ค์ ๋ถ์ฐ๋๋ฉด ๋ ผ๋ฆฌ๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ด ๋ ์ด๋ ค์์ง๋๋ค.
- ์ค์ ์ค๋ฒํค๋: ์ ์ฒด ๋ช ๋ น ๊ตฌ์กฐ(๋ ์ง์คํธ๋ฆฌ, ํธ์ถ์, ๋ช ๋ น ๊ฐ์ฒด)๋ฅผ ์์ฑํ๋ ค๋ฉด ๊ฐ๋จํ ๋ฉ์๋ ํธ์ถ๋ณด๋ค ๋ ๋ง์ ๋ณด์ผ๋ฌํ๋ ์ดํธ๊ฐ ํ์ํฉ๋๋ค.
์ด๋ฌํ ๋จ์ ์ ํด๊ฒฐํ๋ ค๋ฉด ํฌํผ ํฉํ ๋ฆฌ, ์ผ๋ฐ ๋ช ๋ น ํด๋์ค๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๊ฐ๋จํ ๋์์ ๋งคํฌ๋ก ๋ช ๋ น์ผ๋ก ๊ตฌ์ฑํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํ์ ๋จ์ํ ์ํคํ ์ฒ๋ฅผ ์ํ ๊ฒ์ด ์๋๋ผ, ์กฐ์ง์ด๋ ์ ์ฐ์ฑ ์ธก๋ฉด์์ ์๋ฏธ ์๋ ์ด์ ์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ ์ด ํจํด์ ์ ์ฉํด์ผ ํฉ๋๋ค.
๋ช ๋ น๊ณผ ์ ์ด์ธ๋ฆฌ๋ ํจํด
๋ช ๋ น ํจํด์ ๋ค๋ฅธ ๋์์ธ ํจํด๊ณผ ํจ๊ป ์ฌ์ฉํ๋ฉด ํจ๊ณผ์ ์ ๋๋ค. ์ด๋ฅผ ๋ณด์ํ๋ ๋ช ๊ฐ์ง ํจํด์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํฉ์ฑ๋ฌผ: ์ฌ๋ฌ ๋ช ๋ น์ ํ๋์ ๋งคํฌ๋ก ๋ช ๋ น์ผ๋ก ๊ฒฐํฉํฉ๋๋ค.
- ์ ๋ต: ํธ์ถ์๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ์คํ ๋ก์ง์ ๋์ ์ผ๋ก ๊ต์ฒดํฉ๋๋ค.
- ๊ธฐ๋ ๋ฌผ: ๋ช ๋ น์ ์คํํ๊ธฐ ์ ์ ์ํ๋ฅผ ์ ์ฅํ์ฌ ์คํ ์ทจ์๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ๊ด์ฐฐ์: ๋ช ๋ น์ด ์๋ฃ๋๊ฑฐ๋ ์คํจํ ๋ ๋ฆฌ์ค๋์๊ฒ ์๋ฆฝ๋๋ค.
์ด๋ฌํ ํ์ด๋ง์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค, ๋๋ฉ์ธ ์ค์ฌ ๋์์ธ, ๋ฐ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํจํด์ ๋์ฑ ๊ฐ๋ ฅํ๊ฒ ๋ง๋ญ๋๋ค.
์ฌ์ฉ SMART TS XL ๋ฆฌํฉํ ๋ง ๊ธฐํ๋ฅผ ๋ฐ๊ฒฌํ๋ ค๋ฉด
์ค์ ๊ธฐ์ ์์คํ ์์ ๋ช ๋ นํ ํจํด์ ์ ์ฐจ์ ๋ ผ๋ฆฌ, ๋ฐ๋ณต๋๋ ๊ตฌ์กฐ, ๊ทธ๋ฆฌ๊ณ ๋ฌธ์ํ๋์ง ์์ ์ ์ด ํ๋ฆ์ ์ฌ๋ฌ ๊ณ์ธต์ ๋ฌปํ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฌํ ํจํด์ ์๋์ผ๋ก ์๋ณํ๋ ๊ฒ์ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค. ๋ฐ๋ก ์ด ๋ถ๋ถ์ด SMART TS XL ๊ฐ๋ ฅํ ๋๋งน์ด ๋ฉ๋๋ค. ์จ๊ฒจ์ง ๊ตฌ์กฐ, ๋ฐ๋ณต๋๋ ๋์, ๋จํธํ๋ ์์ ์ ํ๋ฉดํํ๋ ๋ฐ ๋์์ด ๋๋ฉฐ, ์ด๋ฅผ Command ๊ฐ์ฒด๋ก ๋ฆฌํฉํ ๋งํ๋ ๋ฐ ์ด์์ ์ ๋๋ค.
๋ช ๋ น๊ณผ ์ ์ฌํ ํจํด์ ์์ํ๋ ์ฝ๋ ๋ณต์ ๊ฐ์ง
๋ช
๋ น ํ๋ณด๋ ์ข
์ข
์ฌ๋ฌ ๋ชจ๋์ด๋ ํ์ผ์ ๋ถ์ฐ๋ ๊ฑฐ์ ์ค๋ณต๋ ๋
ผ๋ฆฌ ๋ธ๋ก์ผ๋ก ๋ํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฐ๋ณต๋๋ if-else ์ฌ์ฉ์ ์
๋ ฅ์ด๋ ์์ฒญ ์ ํ์ ๋ฐ๋ผ ๋ค๋ฅธ ํจ์๋ฅผ ํธ์ถํ๋ ๋ธ๋ก์ด๋ ๋ฐ๋ณต๋๋ switch-case ๋ถ๊ธฐ์
๋๋ค.
SMART TS XL ์ ์ฒด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ถ์ํ์ฌ ์ ํํ ๋ณต์ ๋ณธ๊ณผ ๊ทผ์ ๋ณต์ ๋ณธ์ ๋ชจ๋ ์ฐพ์๋ ๋๋ค. ์ด๋ ์ฌ๋ฌ ๋์์ด ๋์ผํ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅด๊ณ ์์์ ๋ํ๋ด๋ ๋ช ํํ ์งํ์ด๋ฉฐ, ์ด๋ฅผ ๋ช ๋ น ํด๋์ค๋ก ํตํฉํ๊ธฐ์ ์ ํฉํฉ๋๋ค.
์ด๋ฌํ ์กฐ๊ฐ๋ค์ ์๋ณํจ์ผ๋ก์จ, SMART TS XL ๋ฐ๋ณต์ ์ธ ๋ ผ๋ฆฌ๊ฐ ์ด๋์ ์๋์ง, ๋ฌด์์ ์ถ์ํํ ์ ์๋์ง ์ฐพ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ๋จ์ถ๋ฉ๋๋ค.
์ ์ฐจ ๋ชจ๋ ๊ฐ ์์ ํ๋ฆ ์๊ฐํ
๋ ๊ฑฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๋น์ฆ๋์ค ์ก์ ์ด ํญ์ ์บก์ํ๋๋ ๊ฒ์ ์๋๋๋ค. ๋์ ์ผ๋ จ์ ์ ํ, ํฌํจ ๋๋ ์์ ์ ํตํด ํธ๋ฆฌ๊ฑฐ๋ฉ๋๋ค. SMART TS XL ์ด๋ฌํ ํ๋ฆ์ ์๊ฐ์ ์ผ๋ก ๋งคํํ์ฌ ๊ฐ๋ฐ์๊ฐ ์์คํ ์ ์ด๋ ๋ถ๋ถ์ด ํน์ ์์ ์ ์ํํ๋์ง ์ดํดํ ์ ์์ต๋๋ค.
๋ฆฌํฉํ ๋งํ ๋ ์ด๋ฌํ ์๊ฐ์ ๋ช ํ์ฑ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด๋ ํ์ด ์์ ์ ์์๊ณผ ๋์ ์ ํํ ํ์ ํ๊ณ ๋ก์ง์ ๋ช ๋ น์ผ๋ก ๋ฌถ์ด์ผ ํ ์ง, ์๋๋ฉด ๋ ์ธ๋ถํํด์ผ ํ ์ง ๊ฒฐ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ด๋ฌํ ํ๋ฆ ๊ฐ์์ฑ์ ๋จ์ผ ์ฌ์ฉ์ ์์ ์ ์ดํดํ๋ ๋ฐ COBOL, SQL, Java ๋ฐ ์์ ์ ์ด ๊ณ์ธต์ด ํฌํจ๋ ์ ์๋ ๋๊ท๋ชจ ํฌ๋ก์ค ํ๋ซํผ ํ๊ฒฝ์์ ํนํ ์ค์ํฉ๋๋ค.
ํจํด ์ถ์ถ์ ์ํ AI ๊ธฐ๋ฐ ์ ์
GPT ํตํฉ์ ์ฌ์ฉํ๋ฉด SMART TS XL ์ด์ AI ์ง์ ์ฝ๋ ํด์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๊ฐ๋ฐ์๋ ์ฝ๋์ ํน์ ๋ถ๋ถ์ ๊ฐ์กฐ ํ์ํ๊ณ ์์คํ ์ ๋ค์์ ์์ฒญํ ์ ์์ต๋๋ค.
- ๋ช ๋ น ์คํ์ผ ์บก์ํ๋ฅผ ์ ์ํฉ๋๋ค
- ๋ ผ๋ฆฌ๋ฅผ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํจํด์ผ๋ก ๋ถํดํฉ๋๋ค.
- ํ๋ก์์ ๋ด์ ์ฑ ์์ ์ฃผ์์ ๋ฌ๋ค
์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๊ฐ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ์ค๋ช ์ ์๋์ผ๋ก ์์ฑํ ์ ์๋๋ก ํ์ฌ ๋ฆฌํฉํ ๋ง์ ํ์ํ ์๊ฐ์ ๋จ์ถํฉ๋๋ค. ๋ํ, ์๋ก์ด ํ์์ด ์ฝ๋ ๋ธ๋ก์ ์ฉ๋์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํจํด์ ๋ถํฉํ๋์ง ๋น ๋ฅด๊ฒ ํ์ ํ ์ ์์ผ๋ฏ๋ก ์จ๋ณด๋ฉ์ด ๋ ์ํํด์ง๋๋ค.
์ ์ ์ฝ๋ ๋ถ์, ํด๋ก ๊ฐ์ง, ์คํ ํ๋ฆ ๋งคํ ๋ฐ AI ์์ฑ ํต์ฐฐ๋ ฅ์ ๊ฒฐํฉํ์ฌ SMART TS XL ํจํด ๊ธฐ๋ฐ ๋ฆฌํฉํ ๋ง์ ๋ฐ๋ณต ๊ฐ๋ฅํ๊ณ ์ถ์ ๊ฐ๋ฅํ๋ฉฐ ํ์ฅ ๊ฐ๋ฅํ ํ๋ก์ธ์ค๋ก ์ ํํฉ๋๋ค.
ํ๋์ ์ผ๋ฅ ์๋ฏผ์ผ๋ก ์ ํ
์ปค๋งจ๋ ํจํด์ ๋จ์ํ ๋์์ธ ๊ธฐ๋ฒ ๊ทธ ์ด์์ ๋๋ค. ๊ฐ๋ฐ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋์์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๊ทผ๋ณธ์ ์ผ๋ก ๋ฐ๊พธ๋ ๊ฒ์ ๋๋ค. ๋ก์ง์ ์กฐ๊ฑด๋ฌธ์ ๋ด์ฅํ๊ฑฐ๋ UI ํธ๋ค๋ฌ์ ๋ถ์ฐํ๋ ๋์ , ์ปค๋งจ๋ ํจํด์ผ๋ก ๋ฆฌํฉํ ๋งํ๋ฉด ์ก์ ์ ๋ชจ๋ํํ๊ณ ํ ์คํธ ๊ฐ๋ฅํ๋ฉฐ ์ ์ฐํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
๋์์ ์ ์ฉ ๊ฐ์ฒด๋ก ์บก์ํํ๋ฉด ์คํ ์์ ๊ณผ ๋ฐฉ์์ ์ ์ดํ ์ ์์ต๋๋ค. ์์คํ ์ ํ์ฅ์ฑ์ ๋์ด๊ณ ๋๋จธ์ง ์ฝ๋๋ฒ ์ด์ค๋ ๊ฐ ๋์์ ๋ด๋ถ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ช ํ์ฑ์ด ํฅ์๋๊ณ ํ ์คํธ๊ฐ ๊ฐ์ํ๋๋ฉฐ ์คํ ์ทจ์, ์ค์ผ์ค๋ง, ์๋ํ์ ๊ฐ์ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค.
๋ช ๋ น์ ์์ ์๊ฐ ๊ณ์ ์ฆ๊ฐํ๋ ์ฑ์ฅํ๋ ์์คํ ์์ ํนํ ์ ์ฉํฉ๋๋ค. ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฉ์๋ ํธ์ถ์ ๊ทธ๋ฌผ๋ง์ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ ๋์ , ์๋ก์ด ํด๋์ค๋ฅผ ์ถ๊ฐํ์ฌ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์์ต๋๋ค. ์ด๋ ํด๋ฆฐ ์ํคํ ์ฒ ์์น์ ๋ถํฉํ๋ฉฐ ์ฅ๊ธฐ์ ์ธ ๋ณต์ก์ฑ์ ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๊ฐ์ ๋๊ตฌ SMART TS XL ํนํ ๋๊ท๋ชจ ๋๋ ๋ ๊ฑฐ์ ์ฝ๋๋ฒ ์ด์ค์์ ์ด ๋ฆฌํฉํ ๋ง์ ๋ํ ์ ๊ทผ์ฑ์ ๋์ฌ์ค๋๋ค. ํจํด์ ๊ฐ์งํ๊ณ , ํ๋ฆ์ ์๊ฐํํ๊ณ , ์ ์์ ์์ฑํจ์ผ๋ก์จ ํ์ด ๋ช ๋ น ํจํด์ ์ ์ฉ ๋ฒ์์ ๊ท๋ชจ์ ๋ง๊ฒ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ํ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ๋์์ ์ผ๋ฅ ๊ฐ์ฒด๋ก ๋ฐ๊พธ๋ฉด ๋ณต์ก์ฑ์ ๊ตฌ์กฐ๋ฅผ ๋ถ์ฌํ๊ณ ์ฝ๋๊ฐ ์์ ๊ฐ์ ๊ฐ์ง๊ณ ์ฑ์ฅํ ์ ์์ต๋๋ค.