์ค์ ๋ ๋์์ธ ํจํด(์: ์ฑ๊ธํค, ํฉํฐ๋ฆฌ, ์ต์๋ฒ)์ ๋ฐ๋ฅด์ง ์๋ ์ฝ๋๋ ๊ธด๋ฐํ ๊ฒฐํฉ, ์ ์ฐ์ฑ ๋ถ์กฑ, ์ค๋ณต๋ ์ฝ๋์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ ์ ์์ต๋๋ค.
Copilot Chat์ ์ฌ์ฉํ๋ฉด ์ ์ ํ ๋์์ธ ํจํด์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ๋ณด๋ค ์ ์ฐํ๊ณ ์ ์ง ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ฐ๋ณต ์ธ์คํด์คํ๋ฅผ ํฉํฐ๋ฆฌ ํจํด์ผ๋ก ๋ณํํ๊ฑฐ๋ ๊ด์ฐฐ์ ํจํด์ ์ฌ์ฉํ์ฌ ๊ธด๋ฐํ๊ฒ ์ฐ๊ฒฐ๋ ํด๋์ค๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฐธ๊ณ ํญ๋ชฉ
์ด ๋ฌธ์์ ์ค๋ช ๋ ์๋ต์ ์์ ์ ๋๋ค. Copilot Chat ์๋ต์ ๋น๊ฒฐ์ ์ ์ด๋ฏ๋ก ์ฌ๊ธฐ์ ํ์๋ ์๋ต๊ณผ ๋ค๋ฅธ ์๋ต์ ์ป์ ์ ์์ต๋๋ค.
์์ ์๋๋ฆฌ์ค
์ด JavaScript ์ฝ๋๋ ๊ฐ๊ฐ name
๋ฐ age
์์ฑ์ ์ฌ์ฉํ์ฌ Person
๊ฐ์ฒด ์ธ ๊ฐ๋ฅผ ๋ง๋ญ๋๋ค. ๊ทธ๋ฐ ๋ค์, ์ฌ๋์ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ๋์ด๋ฅผ ๊ฒ์ํ๊ณ ์ธ์ํฉ๋๋ค.
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
var people = {};
function addPerson(name, age) {
people[name] = new Person(name, age);
}
function getAge(name) {
if (people[name]) {
console.log(name + " is " + people[name].age + " years old.");
} else {
console.log("Person not found.");
}
}
addPerson("Ana", 30);
addPerson("Mario", 25);
addPerson("Louise", 40);
getAge("Mario");
์์ ํ๋กฌํํธ 1
What design patterns could improve this code? Don't show me code examples.
์์ ์๋ต 1
Copilot๋ ๋ค์๊ณผ ๊ฐ์ ํจํด์ ์ ์ํฉ๋๋ค.
- ์ฑ๊ธํค ํจํด:
people
๊ฐ์ฒด์ ์ธ์คํด์ค๊ฐ ํ๋๋ง ์๋์ง ํ์ธํฉ๋๋ค. - ํฉํฐ๋ฆฌ ํจํด:
Person
๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ํ ํฉํฐ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค. - ๋ชจ๋ ํจํด: ์ ์ญ ๋ค์์คํ์ด์ค๋ฅผ ์ค์ผํ์ง ์๋๋ก ๋ชจ๋ ๋ด์
people
๊ฐ์ฒด์ ๊ด๋ จ ํจ์๋ฅผ ์บก์ํํฉ๋๋ค.
์์ ํ๋กฌํํธ 2
์ด์ Copilot์๊ฒ ๊ฐ์ฅ ์ ์ ํ๋ค๊ณ ์๊ฐ๋๋ ํจํด์ ๊ตฌํํ๋๋ก ์์ฒญํ ์ ์์ต๋๋ค.
Refactor this code using the module pattern
์์ ์๋ต 2
const PersonModule = (function() {
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
const people = {};
function addPerson(name, age) {
people[name] = new Person(name, age);
}
function getAge(name) {
if (people[name]) {
console.log(name + " is " + people[name].age + " years old.");
} else {
console.log("Person not found.");
}
}
return {
addPerson,
getAge
};
})();
PersonModule.addPerson("Ana", 30);
PersonModule.addPerson("Mario", 25);
PersonModule.addPerson("Louise", 40);
PersonModule.getAge("Mario");
๋ชจ๋ ํจํด์ ์ฝ๋ ์กฐ์ง์ ๊ฐ์ ํ๊ณ , ๋ฐ์ดํฐ ๊ฐ์ธ ์ ๋ณด๋ฅผ ํฅ์ํ๋ฉฐ, ๋ช ๋ช ์ถฉ๋ ์ํ์ ์ค์ฌ ์ฝ๋๋ฅผ ๋ณด๋ค ์ ์ง ๊ด๋ฆฌํ๊ณ ํ์ฅ์ฑ ์๊ฒ ๋ง๋ญ๋๋ค.