디자인 패턴(GoF) 카다로그

디자인 패턴(GoF)

 

생성패턴(Creational Patterns)

-Abstract Factory 패턴
-Builder 패턴
-Factory Method 패턴
-Prototype 패턴
-Singleton 패턴

구조패턴(Structual Patterns)

-Adapter 패턴
-Bridge 패턴
-Composite 패턴
-Decorator 패턴
-Facade 패턴
-Flyweight 패턴
-Proxy 패턴


행위패턴(Behavioral Patterns)

-Chain of Responsibility 패턴
-Command 패턴
-Interpreter 패턴
-Iterator 패턴
-Mediator 패턴
-Memento 패턴
-Observer 패턴
-State 패턴
-Strategy 패턴
-Template Method 패턴
-Visitor 패턴

칼루
나만의 강의 2006. 6. 1. 15:39
,

객체지향 설계에 대한 미신 -상속 vs. 합성-

* 출처: 웹하드

객체 지향 설계에 대한 미신

 

 불과 10여 년 전만 하더라도 객체 지향 프로그래밍은 많은 이들에게 낯설게만 느껴졌지만(혹시 저만 그랬던가요?) 이제는 C++ JAVA와 같은 객체 지향 언어들이 다수의 소프트웨어 개발자들에게 지지를 받고 있고 최근에 나오는 수많은 개발 방법론들이 대부분 객체 지향을 기반으로 하고 있을 만큼 소프트웨어 업계 전반적으로 객체 지향 기법 및 이론들이 널리 퍼져 있는 것이 현실입니다. 그러나 아직까지 많은 책들과 대학 수업에서 객체 지향에 대해서 시대에 뒤떨어졌거나 심지어는 잘못된(정확히 말하자면 잘못된 생각이었고 이제는 수정되어야 할) 내용들을 언급하거나 가르치고 있는 것이 현실입니다.

 따라서 이번에는 실제적으로 프로젝트에서 합리적인 객체 지향 설계를 위해 우리가 버려야 할 과거의 인습 중 하나에 대해서 언급하고자 합니다.(참고로 이 글은 많은 부분 '알기 쉬운 디자인 패턴(원제 : Design Patterns Explained, Alan shalloway, James R. Trott )' 8장 내용을 토대로 하고 있습니다.)

 

 과거에 잘못 소개된 객체 지향 개념들 중 대표적인 것은 다음과 같습니다.

 1. 상속은 기능의 확장이다.

 2. 객체는 데이터+메소드이다.

 3. 캡슐화는 데이터 은닉이다.


>더보기


칼루
나만의 강의 2006. 3. 9. 12:40
,

AMD와 Intel CPU의 부동소수점 연산 차이

이런 경우도 생기는군요. 울회사 컴터는 AMD + nVidia / Intel + ATI / AMD + ATI / Intel + nVidia

이런식으로 컴퓨터 조합을 다양하게 맞추고 있습니다. 테스트 목적으로..

그러다보니 이런 버그도 바로 찾게 되는군요. ^^a

 

일명 "거상버그"라고 불렀답니다. ㅎㅎ 인텔 시퓨에선 나오지 않지만, AMD 시퓨에서만 회전할때 가끔씩 캐릭터의 행렬값이 쓰레기가 되버리는 버그였죠.

여기저기에 AMD와 Intel 시퓨의 차이를 찾아 다녔지만, 찾지 못했답니다. ㅠ_ㅠ

 

단지 AMD의 부동소수점 연산이 더 좋다! 라는거였죠. 결국 이유는 찾아냈답니다.

아크코사인에 1.0 이상의 값이 들어가면서 쓰레기 값이 나온건데, AMD에서 계산은 1.000001 이였다죠. -_-;;;;;;;;;;

 

허나 인텔에선 1.0000 / 이쯤에서 나머지 값이 짤라지더군요. 버려진다고 해야하나?

어쨌든 부동소수점 계산 차이로 만들어진 버그였슴당. ㅎㅎ

칼루
나만의 강의 2006. 1. 8. 17:30
,

Visual 6.0 / dsw 새창에서 띄우는 방법

6.0하고 닷넷을 같이 설치하면 *.dsw 및 모든 관련 파일이 닷넷으로 설정됩니다.

이것도 참 불편하죠 ㅎㅎ

그리고 dsw는 기본적으로 새창으로 안뜹니다. 이미 창이 열려있으면 그 프로젝트를 저장하고 거기에 뜨게 되죠.

 

그것을 해결할 방법을 찾았답니다. ㅎㅎ

 

* Visual C++ 6.0 을 기본으로, 새창띄우기

아무 폴더(내컴퓨터 제외)를 여시고 위에 도구->폴더옵션->파일확장자->DSW 까지 갑니다.

그러면 밑에 메뉴에 변경,복원 또는 변경,고급 메뉴가 있습니다. 닷넷이나 기타 다른 프로그램을 연결했을 경우 변경,복원 으로 나오고, 그런경우가 아니라면 변경,고급으로 나옵니다.

 

복원으로 나올시 복원을 누루시면 고급으로 바뀌게 됩니다. 그리고 고급메뉴로 갑시다.

고급에서 오른쪽 편집을 클릭, 오른쪽 "찾아보기"를 눌러서 VC++6.0의 실행파일을 찾아줍시다.

보통은 아래 경로

 

"C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE"

 

찾아보기로 경로를 입력하고 나서 경로를 잘 보시면 맨 마지막에 %1이 붙어 있습니다.

만약 이 %1에 쌍따움표가 안붙어 있다면 붙여주어야 합니다. 그럼 아래와 같이 됩니다.

 

"C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE" "%1"

 

그리고 DDE사용에 채크가 되어 있으면, 밑에 응용프로그램란에 MSDEV 라고 써주면 끝

 

닷넷 같은 경우는 그냥 알아서 셋팅되어 있으니 굳이 손댈 필요는 없겠죠 ㅎ

칼루
나만의 강의 2005. 11. 19. 21:02
,

비트맵 예제 프로그램에 대해서

현재 비트맵 예제 프로그램을 만들고 있다. 음....꽤 복잡하지만 여러가지로 괜찮은 성능을 보여준다. CBMP 라는 클래스로 만들어져 있다. 물론 이 클래스가 완벽한 클래스이지는 않다.

복사 생성자 처리도 안되어져 있으며, 지원되는 부분과 메모리 핸들러에 관련된 처리도 없다.

 

그외에 연산자 오버로딩 같은것도 안되어 있다. 클래스를 만들때에는 최소한의 완전한 클래스를 만들라고 했는데.......그게 꽤나 복잡하단 말여 -_-;;

복사 생성자 까지는 지원하게 될 것 같다. 하지만 너무나 많은걸 바라지 마라 ㅋㅋ

 

어쨌든 언제나 그래왔듯이 CBMP 라는 클래스를 중심으로 이루어져 있다.

WinMain과 프로시저는 따로 때어났다. (두개의 소스 파일로 나뉘어져있다) 그것은 프로시저가 커질수 있기 때문에 따로 때어났다.

 

그리고 모든 객체의 생성 및 관리는 WinMain에서 한다. 물론 클래스 자체에서 자신의 메모리 관리는 하게 되겠다만, 그 클래스 객체의 생성은 메인에서 이루어지며, 다른 곳에선 이것을 불러서 쓰는 구조이다.

 

최근에 들어서 이런 구조로 사용을 하고 있기 때문에 이 예제도 이렇게 구조가 되어져 간다.

 

예제 프로그램은 굉장히 간단하게 만들려고 했는데, 그렇게 간단하게는 안되는 것 같다. ^^a

 

어쨌든 아직까지는 순조롭다. 언제 완성될지 모르겠지만 ㅋ

칼루
나만의 강의 2005. 5. 28. 16:29
,

비트맵 강좌에 대해서

비트맵 강좌가 굉장히 늦어지고 있다. 현재 완성도 약 30%

강좌는 MS Word 2003으로 쓰는 중이다. 생각보다 분량이 어마어마하게 많다.

그저 하루 불태우면 되겠지...싶었는데 써야될것도 많고....여튼 굉장히 많다 -_-;;

예제 프로그램도 만들어야 되고.....

 

앞으로 얼마나 더 걸릴지 모르겠다. 하지만 조금씩 이라도 만들어져 가고 있으니....

자꾸만 더 많은 내용을 넣고 싶어서, 분량이 늘어나는 것 같다. ㅋ

나중에 100 페이지, 막 이렇게 되는거 아닌가 모르겠다. -_-;;;

칼루
나만의 강의 2005. 5. 27. 13:49
,

3D 에서 행렬을 사용하는 이유

그것은 값을 효과적으로, 처리하기 위함이였다.

'나만의 강의' 카테고리의 다른 글

비트맵 예제 프로그램에 대해서  (0) 2005.05.28
비트맵 강좌에 대해서  (3) 2005.05.27
동적이라는 말..  (0) 2005.04.03
[펌] [신제품] 해피해킹키보드 라이트 2  (2) 2005.03.20
[펌] 프랭클린 플래너  (0) 2004.12.10
칼루
나만의 강의 2005. 5. 16. 21:29
,

동적이라는 말..

프밍세계(??)에서는 꽤나 자주 나오는 말이다. 동적하고 정적.. 이렇게 2개...동적은 움직이는 거구 정적은 안움직이는거라고 이해하면 편하겠다 ㅎ

정적이라는 것은 한번 정하면 그것이 변하지 않는 것이다. 숫자로 표현하면 상수 같은 걸까나?

동적은 그 반대로 유연하게 자유롭게 그때그때 맞게 바뀌는 것이다.


..more


칼루
나만의 강의 2005. 4. 3. 16:30
,

[펌] [신제품] 해피해킹키보드 라이트 2

     
 
작년 10월 소개한 해피해킹키보드 프로페셔널 키보드는 그 뛰어난 품질에도 불구하고 지나치게 비싸다는 비난을 받아야했다. 사실 키보드에 30만원이 넘는 비용을 투자하기란 어지간한 마니아라도 쉽지 않은 일이다. 오늘 소개하는 해피해킹키보드 라이트2는 프로페셔널 버전의 기계식 대신 멤브레인 방식을 택함으로써 획기적으로 가격을 낮춘 제품이다.
 
  
  
  
흰 색과 검은 색의 두 가지 색상으로 판매되는 라이트 버전은 표준 사이즈 키보드의 크기와 키감을 그대로 살리면서도 공간 활용을 극대화했다. 맥OS X에도 완전 대응하고 키 톱을 맥용으로 만들 수 있는 것은 물론, CD-ROM의 이젝트 키나 멀티미디어 키 등을 임의의 키에 마음대로 배정하는 것도 가능하다고.
일반 키보드와 맞춰보니 한 치의 오차 없이 대응한다. 크기는 작지만 실제 키 간격이 동일하기 때문에 타이핑 감은 일반 키보드 그대로다. 썬 타입3 키보드 배열을 모방한 유닉스 키 배열을 채용한 것도 눈에 띈다. 페이지다운, 업, 백 스페이스 등 자주 사용하는 키를 FN 키와 조합해 사용해야 하지만 이내 익숙해진다.
 
 
  
  
  
2개의 USB 포트는 보너스. 공간 활용을 최대화하는 제품이다보니 더욱 반갑게 느껴진다. 마우스나 USB 메모리를 연결하니 좁고 어수선한 PC 주변이 어느새 쾌적해졌다. 멤브레인치고는 상당히 쾌적하게 느껴지는 키감도 장점. 그러나 100mA 전류 제한으로 모터 구동형 USB 기기는 연결하기 어렵다.
USB 포트를 내장한 PDA에 연결하니 훌륭한 노트북으로 변신했다. 한영 전환을 위해 레지스트리 값을 일부 변경해야 하지만 예전의 소프트키보드를 생각하면 그야말로 감지덕지. 소니 U시리즈 노트북이 부럽지 않다. 어지간한 아파트 1평에 1000만원이 넘는 요즘, 조그마한 자투리 공간의 가치도 결코 만만치 않다.
 
     
   
 
모델명
HAPPYHACKING KEYBOARD LITE2
크기
294.0×120.5×38.6mm
무게
680g
색상
라이트 그레이, 블랙
키 사양
멤브레인 스위치
3.8mm 스트로크, 소프트 스냅, 19.05mm 피치 (커서 키 제외)
가격
9만 8000원
문의
펀샵(www.funshop.co.kr)
* 상기 제품은 기사를 위해 구입한 제품으로 구매를 원하시면 이메일을 리플로 남겨주시기
   바랍니다. 가격 8만원에 선착순 판매입니다.
* 구입을 원하는 독자 분들을 위해 가격 할인 행사를 펼칩니다. 가격 9만원에 기간은 2월 6일
   까지 입니다. 링크의 공동구매 웹페이지에서 구입하실 수 있습니다.
 
    

 

출처 : ZDNet Korea (http://www.zdnet.co.kr/)

 

ps : 개인적으로 키보드 촉감에 무척 민감한 편입니다. 용산 조립PC에 붙어나오는 멍청한

키보드는 두드러기 날 정도로 싫어하죠.

예전, IBM PC에 붙어있던 기계식 키보드를 무척 좋아했고, 집 창고에는 IBM PC AT 시절에

사용하던 86키 키보드를 보관하고 있습니다.  키보드 바이오스가 변경된 후로 한/영 키가

먹지 않아 사용을 못하고 있습니다.

 

하지만, 키 숫자를 엄청 줄여놓은 노트북 키보드는 별로 좋아하지 않는데..... 제가 노트북을

사용하지 않는 이유입니다.  그리고 대부분의 노트북 키보드가 좀 멍청하죠. 키가 눌렸는지

알기 어렵죠. 하지만 이정도 제품이라면 검토해 볼 만 하겠네요.

 

 

 

칼루
나만의 강의 2005. 3. 20. 22:56
,

[펌] 프랭클린 플래너

  제가 책을 쓰면서 메모에 대한 자료를 찾다가 이 프랭클린 플래너에 대한 정보를 얻게 되었습니다. 처음에는 단순한 다이어리 정도로만 생각했는데, 아는 사람을 통해서 PC용으로 만들어진 프로그램을 받아 몇일 사용해 보니깐 잘 짜여진 인생 계획서 같은 느낌입니다.
  정리 정돈 잘 못하시는 분들에게는 이것을 사용한다는 것이 참 힘든 일인지 모르겠는데요. 중요한 건 계획적으로 그리고, 내가 해야 할 일을 정확하게 파악하고 하루, 더 길게는 인생을 살아간다는 것이 얼마나 중요한지 그리고, 목표를 가지고 그것을 향해 노력하는 것과 시간이 흘러가는데로 그냥 지내는 것과는 성공했느냐 실패했느냐를 떠나서 분명히 차이가 있습니다.
 
  참고로 PC용 프로그램의 이름은 planplus입니다.
칼루
나만의 강의 2004. 12. 10. 06:31
,
Powerd by Tistory, designed by criuce
rss