Command Pattern - 디자인 패턴 참고서적 : Head First Design Pattern 소스코드 다운로드 : http://www.wickedlysmart.com/headfirstdesignpatterns/code.html 패턴 정의 #7 - Command Pattern 커맨드 패턴을 이용하면 요구 사항을 객체로 캡슐화 할 수 있으며, 매개변수를 써서 여러 가지 다른 요구 사항을 집어넣을 수도 있습니다. 또한 요청 내용을 큐에 저장하거나 로그로 기록할 수도 있으며, 작업취소 기능도 지원 가능합니다. 커맨드 패턴은 그 원리를 이해하면 그리 어렵지 않게 접근할 수 있습니다. Command 객체에서는 execute() 메소드만 공개해 두고.. execute() 메소드에서는 각 Receiver 객..
Singleton Pattern - 디자인 패턴 참고서적 : Head First Design Pattern 소스코드 다운로드 : http://www.wickedlysmart.com/headfirstdesignpatterns/code.html 패턴 정의 #6 - Singleton Pattern 싱글턴 패턴 (Singleton Pattern)은 해당 클래스의 인스턴스가 하나만 만들어지고, 어디서든지 인스턴스에 접근할 수 있도록 하기 위한 패턴입니다. 가장 널리 사용하는 디자인 패턴이 아닌가 합니다. 굳이 디자인 패턴을 모르더라도 자바 프로그래밍에서 자주 사용하기도 하죠~~ 싱글턴 패턴은 클래스에서 자신의 단 하나뿐인 인스턴스를 관리하도록 만들면 됩니다. 그리고 다른 어떤 클래스에서도 자신의 인스턴스를 추가로..
Abstract Factory Pattern - 디자인 패턴 참고서적 : Head First Design Pattern 소스코드 다운로드 : http://www.wickedlysmart.com/headfirstdesignpatterns/code.html 패턴 정의 #5 - Abstract Factory Pattern 추상 팩토리 패턴에서는 인터페이스를 이용하여 서로 연관된, 또는 의존하는 객체를 구상 클래스를 지정하지 않고도 생성할 수 있습니다. 디자인 원칙 1. 추상화된 것에 의존하도록 만들어라. 구상 클래스에 의존하도록 만들지 않도록 한다. 추상 팩토리 패턴을 사용하면 클라이언트에서 추상 인터페이스를 통해서 일련의 제품들을 공급받을 수 있습니다. 이때, 실제로 어떤 제품이 생산되는지는 전혀 알 필요도..
Factory Method Pattern - 디자인 패턴 참고서적 : Head First Design Pattern 소스코드 다운로드 : http://www.wickedlysmart.com/headfirstdesignpatterns/code.html 패턴 정의 #4 - Factory Method Pattern 팩토리 메소드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만듭니다. 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브 클래스에 맡기는 것이죠. Creator 추상 클래스에서 객체를 만들기 위한 메소드, 즉 팩토리 메소드를 위한 인터페이스를 제공하고 있습니다. Creator 추상 클래스에 구현되어 있는 다른 메소..
Decorator Pattern - 디자인 패턴 참고서적 : Head First Design Pattern 소스코드 다운로드 : http://www.wickedlysmart.com/headfirstdesignpatterns/code.html 패턴 정의 #3 - Decorator Pattern 데코레이터 패턴(Decorator Pattern)에서는 객체에 추가적인 요건을 동적으로 첨가한다. 데코레이터는 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다. 디자인 원칙 1. 클래스는 확장에 대해서는 열려 있어야 하지만 코드 변경에 대해서는 닫혀 있어야 한다. 데코레이터 패턴은 포함관계를 나타냅니다. 기본 Component를 각 Decorator 클래스가 포함함으로써.. 원하는 결..
Observer Pattern - 디자인 패턴 참고서적 : Head First Design Pattern 소스코드 다운로드 : http://www.wickedlysmart.com/headfirstdesignpatterns/code.html 패턴 정의 #2 - Observer Pattern 옵저버 패턴(Observer Pattern)에서는 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의합니다. 디자인 원칙 1. 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해야 한다. 옵저버 패턴은 주제(Subject)와 옵저버(Observer)에 의해 정의됩니다. 옵저버는 주제에 의존하고..
Strategy Pattern - 디자인 패턴 참고서적 : Head First Design Pattern 소스코드 다운로드 : http://www.wickedlysmart.com/headfirstdesignpatterns/code.html 자바의 디자인 패턴을 좀 정리해 두려고 합니다. 나중에 찾아보기 편하려구요~~ 앞으로 이 부분을 공부하면서 연재할 계획입니다.!! 패턴 정의 #1 - Strategy Pattern 스트래티지 패턴 (Strategy Pattern)에서는 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. 스트래티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 디자인 원칙 1. 애플리케이션에서 달라지는 부분을 찾아내고, 달라지..
지난 시간에 이어서 SCORM의 CMI 데이터 모델에 대한 정리를 마무리 하도록 하겠습니다. 11. Learner ID cmi.learner_id SCO를 사용하는 학습자의 아이디 또는 구분자 GetValue 미니주석) 보통 LMS에 로그인 할 때 사용하는 ID가 있습니다. 그걸 의미한다고 보시면 됩니다. 12. Learner Name cmi.learner_name SCO를 사용하는 학습자의 이름 GetValue 미니주석) 역시 LMS에서 사용하는 학습자의 이름입니다. learner_id나 learner_name은 사용자가 설정할 수 없습니다. 즉, SetValue를 지원하지 않는 것이죠.. 13. Learner Preference cmi.learner_preference._children cmi.lea..
SCORM RTE에서 이야기한 CMI Data Model을 정리해서 올려놓겠습니다. 아마도 이 자료가 필요한 분들이 많을 거라고 생각됩니다. 처음 SCORM을 접했을 때, 가장 많이 봤던 부분이기도 하구요~~ 이미 다른 정리된 좋은 자료가 있을지 모르지만.. 미니주석이라는 설명으로 제가 나름 파악한 내용도 추가해 놓도록 할께요~~ 각 엘리먼트 다음에 GetValue, SetValue 등이 표시될 겁니다. GetValue, SetValue가 모두 있으면 읽고 쓰기가 가능하다는 것이구요.. GetValue 는 읽기만 가능하구, SetValue는 쓰기가 가능하다는 것입니다. 위 말이 잘 이해가 안되면 이전 강좌를 참고하세요~~ 그리고 스펙에 나와 있는 데이터 타입이나 에러 처리등 기타 상세한 부분은 정리하지 ..
API Wrapper 함수 앞의 Photoshop 예제를 다운로드 했다면 (혹시 받지 않았으면 자료모음에서 받으시기 바랍니다.) 다음 위치의 파일을 보시기 바랍니다. photoshop/util/Photoshop_APIWrapper.js 이 파일을 텍스트 에디터로 열어 보시면.. 위 함수와 이름은 비슷한데.. doInitialize, doTeminate.. 등으로 이루어진 것을 볼 수 있습니다. 이것이 바로 Wrapper 함수라고 보시면 되구요. 내부에서 Initialize, Teminate.. 등을 호출하고 있지요~~ 이런 Wrapper를 왜 사용할까요? 그대로 쓰기 보다는 사용자의 다양한 요구를 받아들여서 적절히 수정해서 적용할 수 있는 융통성을 주기 위해서가 아닐까 하네요... Wrapper 함수의 ..