상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
버섯 농사, 초보자를 위한 7가지 팁
아침용 팬케이크를 건강하게 만드는 방법이 있을까?
바쁜 아침 10분 만에 만들 수 있는 오트밀 레시피는?
라벤더는 실내에서도 키울 수 있나요?
잼에 반드시 설탕이 들어가야 하는 이유는 무엇인가?
은퇴 전 부채 정리, 꼭 필요한 이유
은퇴 후 자동차 유지, 꼭 필요한가
은퇴 후 사회적 역할 계속하기, 어떻게
은퇴 준비, 보험 점검 필수 사항
마누카꿀 하루 권장 섭취량은 어느 정도인가요?
60대 나이에 따른 근육 성장 속도 차이는 어느 정도인가?
60대 운동을 안 하면 근육량은 얼마나 빨리 줄어드는가?
Previous
Next
수정하기 - 자바스크립트에서 함수의 재사용성을 높이기 위한 디자인 패턴은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
<a href='https://sangseek.com/sangseeks/자바/ko'>자바</a>스크립트에서 함수의 재사용성을 높이기 위한 <a href='https://sangseek.com/sangseeks/디자인 패턴/ko'>디자인 패턴</a>은 여러 가지가 있으며, 이들 각각은 특정한 상황에서 유용하게 사용될 수 있습니다. 함수의 재사용성을 높이는 것은 코드의 유지보수성을 향상시키고, 중복 코드를 줄이며, 전체적인 코드 품질을 개선하는 데 중요한 역할을 합니다. 아래에서는 자바스크립트에서 자주 사용되는 몇 가지 디자인 패턴을 소개하겠습니다. 1. 모듈 패턴 (Module Pattern) 모듈 패턴은 관련된 기능을 그룹화하여 코드의 구조를 개선하고, 네임스페이스 충돌을 방지하는 데 유용합니다. 이 패턴은 클로저를 사용하여 내부 상태를 은닉하고, 외부에 필요한 메서드만 노출합니다. ```javascript const Counter = (function() { let count = 0; // private variable return { increment: function() { count++; return count; }, decrement: function() { count--; return count; }, getCount: function() { return count; } }; })(); console.log(Counter.increment()); // 1 console.log(Counter.increment()); // 2 console.log(Counter.getCount()); // 2 ``` 이 패턴을 사용하면 `count` 변수를 외부에서 직접 접근할 수 없게 되어, 데이터의 무결성을 유지할 수 있습니다. 2. 팩토리 패턴 (Factory Pattern) 팩토리 패턴은 객체를 생성하는 방법을 정의하여, 객체 생성 로직을 캡슐화합니다. 이 패턴을 사용하면 다양한 객체를 쉽게 생성할 수 있으며, 코드의 재사용성을 높일 수 있습니다. ```javascript function createPerson(name, age) { return { name: name, age: age, greet: function() { console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`); } }; } const john = createPerson('John', 30); const jane = createPerson('Jane', 25); john.greet(); // Hello, my name is John and I am 30 years old. jane.greet(); // Hello, my name is Jane and I am 25 years old. ``` 팩토리 패턴을 사용하면 객체 생성 로직을 중앙 집중화하여, 코드의 중복을 줄이고 유지보수를 쉽게 할 수 있습니다. 3. <a href='https://sangseek.com/sangseeks/커링/ko'>커링</a> (Currying) 커링은 다중 인자를 받는 함수를 단일 인자를 받는 함수의 연속으로 변환하는 기법입니다. 이를 통해 함수를 부분적으로 적용할 수 있어, 재사용성을 높일 수 있습니다. ```javascript function multiply(a) { return function(b) { return a * b; }; } const double = multiply(2); console.log(double(5)); // 10 console.log(double(10)); // 20 ``` 커링을 사용하면 특정 인자를 고정하여 새로운 함수를 생성할 수 있어, 코드의 재사용성을 높이는 데 유리합니다. 4. 고차 함수 (Higher-Order Functions) 고차 함수는 함수를 인자로 받거나 함수를 반환하는 함수를 의미합니다. 이 패턴은 함수의 재사용성을 높이고, 코드의 가독성을 향상시키는 데 도움을 줍니다. ```javascript function withLogging(fn) { return function(...args) { console.log(`Calling function with args: ${args}`); return fn(...args); }; } const add = (a, b) => a + b; const addWithLogging = withLogging(add); console.log(addWithLogging(2, 3)); // Calling function with args: 2,3 // 5 ``` 고차 함수를 사용하면 기존 함수를 수정하지 않고도 새로운 기능을 추가할 수 있어, 코드의 재사용성을 높일 수 있습니다. 5. <a href='https://sangseek.com/sangseeks/옵저버 패턴/ko'>옵저버 패턴</a> (Observer Pattern) 옵저버 패턴은 객체의 상태 변화에 따라 다른 <a href='https://sangseek.com/sangseeks/객체들/ko'>객체들</a>이 자동으로 통지받는 구조입니다. 이 패턴은 이벤트 기반 프로그래밍에서 자주 사용되며, 코드의 재사용성을 높이는 데 기여합니다. ```javascript class Subject { constructor() { this.observers = []; } subscribe(observer) { this.observers.push(observer); } notify(data) { this.observers.forEach(observer => observer.update(data)); } } class Observer { update(data) { console.log(`Observer received data: ${data}`); } } const subject = new Subject(); const observer1 = new Observer(); const observer2 = new Observer(); subject.subscribe(observer1); subject.subscribe(observer2); subject.notify('Hello, Observers!'); // Observer received data: Hello, Observers! // Observer received data: Hello, Observers! ``` 옵저버 패턴을 사용하면 여러 객체가 동일한 이벤트에 반응할 수 있어, 코드의 재사용성을 높일 수 있습니다. 결론 자바스크립트에서 함수의 재사용성을 높이기 위한 디자인 패턴은 다양합니다. 모듈 패턴, 팩토리 패턴, 커링, 고차 함수, 옵저버 패턴 등은 각각의 상황에 맞게 사용될 수 있으며, 이를 통해 코드의 유지보수성과 가독성을 향상시킬 수 있습니다. 이러한 패턴들을 적절히 활용하면, 더 효율적이고 재사용 가능한 코드를 작성할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기