Gangs of Four 의 Design Pattern 이 일단 기본서적입니다. 쉽게 썼다는 책들도 이 책의 내용가지고 쉽게 풀어쓴거라고 보면 됩니다.
일단 그 책은 지르시구요
그러고나서 Design Pattern 책(한글판 있습니다) 펴들고 하드커버 안쪽에 보면 패턴들이 어떤 때 쓰는건지 짧게 요약된 거 보시면 어떤 경우에 필요한지 알 수 있습니다.
(사실 인터넷 검색만 해봐도 널려있지만요; ;)
그거보고 대충 어떤 패턴이 필요한지 먼저 감을 잡으신 뒤, 한번 읽어보고 이해가 안되면 풀이된 책들을 찾으러 다녀보시면 됩니다(-_-)
그리고 UML은 프로그램 모델링 언어입니다. 프로그램이 어떻게 생겨먹었는지 설계할 때 사용되는 기본적인 방식들의 집합이라고 보면 됩니다.
UML말고 다른걸로 비유하자면, 순서도 그릴 때 보면 마름모는 if 를 나타낸다 뭐 이런식으로 약속된 그런겁니다.
( 객체지향이나 뭐 이런 방법론과 연관을 많이 시키지만, 실제로 방법론과는 무관합니다. )
그리고 이걸 어째 툴로 만들다보니 레셔널로즈나 아고라, argoUML 같은 UML 작성 툴들이 있는데,
이런걸로 어째어째 설계하면 인터페이스들까지는 설계된대로 자동코딩 해주는 그런 기능도 있습니다.
2006.07.10 23:46:30 (*.183.243.118)
neolith
HeadFirstDesignPatterns 와 UML 실전에서는 이것만 쓴다 를 추천합니다
Wiley에서 나온 Java Design Pattern을 보세요.
GoF책이 원전이긴 하지만, C++ 기준으로 되어있고, 상당히 추상적인데 반해
Wiley책은 많이 쓰이는 Java를 기준으로 코딩예제를 보여주기때문에 훨씬 이해가 쉽습니다.
2006.07.11 11:02:04 (*.78.64.79)
음..
음.. 이런 디자인 패턴이 있구나. 이걸 써봐야지 해서 억지로 프로그램에 넣으려고 한다면 아마도 구조가 엉망이 될 겁니다.
잘 만든 사람들의 소스를 많이 참고하고, 계속 몸으로 익혀서 자기도 모르는 사이에 패턴이 적용되어 있을 때에 비로소 디자인 패턴이 뭔지를 깨닫게 되지 않을까 싶습니다. -_-
패턴들을 고안한 사람들도 만들다 보니 몸에 배여서 하나의 룰로 정착된 것일 테니까요. 우리도 같은 과정을 밟아야 유연하게 디자인 패턴을 사용할 수 있을 것 같네요.
GoF의 Design Patterns가 기본서이긴 합니다만, 개인적으로는 여러 디자인 패턴들이 잘 적용되어 있는 소스들을 보고 연구하는 게 더 낫지 않나하는 생각입니다.
이런 소스들을 많이 구할 수 없다는게 문제긴 하지만 -_-
2006.07.11 11:34:11 (*.85.37.56)
bard
GoF의 Design Patterns 는 Reference 성격이 강해서 비추입니다.
학규옹이 추천한 HeadFirstDesignPatterns를 강력히 추천합니다. 이야기식으로 풀어나가서 읽기에 부담도 없으며, 디자인패턴을 제시하고 설명하는 식이 아닌 문제를 서술적으로 풀어나가고 그것을 해결하는 과정중에서 자연스럽게 디자인패턴을 익힐 수 있는 구조라 입문서로는 최고라고 생각합니다.
GoF의 Design Patterns는 HFDesignPatterns를 본 후 필요할 때 찾아볼 수 있도록 옆에다 두는건 괜찮을듯 하네요. ^^;
2006.07.11 12:34:22 (*.51.64.79)
게임초보
자바의 기본기가 닦여 있다면 "HeadFirst Design Pattern"을 추천합니다.
C++을 이미 어느 정도 익혔다면 "Gof디자인 패턴 이렇게 활용한다.(장세찬)"를 추천합니다.
2006.07.11 12:41:44 (*.67.220.110)
랩하는좀비
에. 답변 주신분들 전부 감사드립니다.
그래서 결론은 책이 2개로 압축되어 있는데
c++을 어느 정도 안다면 GOF
자바를 잘 안다면 '대가리먼저 디자인 패턴' ..이로군요.
리플들 보면 '대가리먼저'가 압도적인 지지율을 보이고 있는데. ...전 자바를 모른단 말이죠-_-;
음음, 좀 더 고민해 봐야겠습니다.
2006.07.11 12:55:13 (*.219.105.195)
자갈공명
저 역시 HeadFirst Design Pattern 강추입니다. 자바 문법설명책이 아니기때문에 자바는 모르더라도 C++을 안다면 이해하는데 무리는 없습니다.
서점에 나가서 한번 보시면 대략 예제코드보는데 무리가 없음을 알게되실겁니다.( 참고로 전 자바책한번 본적 없습니다. 전에 Refactoring도 자바지만 전혀 무리가 없었구요 )
특히 GoF의 DesignPattern의 딱딱함에 지루해하셨다면 더더욱 강추!!
2006.07.11 12:57:09 (*.85.37.56)
bard
대가리먼저... ㅋㅋㅋ..
HeadFirst에 나오는 자바 문법은 기초적인것 뿐입니다. C++를 어느정도 안다는 가정을 해보면, HeadFirstDesignPatterns에 나오는 자바문법을 익히는데 걸리는 시간은
한두시간이면 족합니다. 어차피 언어는 표현의 한 도구일 뿐 그 의미는 C++이나 자바나 별반 다를바 없고, 자바란놈의 태생이 C++로 부터 나온 녀석이라 문법도 거기에서
거기입니다. (C#과 자바가 비슷하듯)
HeadFirstJava란 놈도 있는데, 조금이라도 C++/C/Java 중 하나를 아시는 분이라면 서점가서 슥슥~ 훑어보시기만 하면 HeadFirstDesignPatterns를 읽고 이해하는데
아무런 장애가 없으리라 생각이 됩니다.
2006.07.11 14:26:43 (*.67.220.110)
랩하는좀비
그럼, 마음결정했습니다. 비가 오니 서점까지 가기는 그렇고; 언제나 그랬듯이 인터넷에서 즐러야지요=_= 레임분들의 조언덕에 지른책이 좀 있는데
다 만족해서 이번에도 믿고 지를렵니다.
...그러고보니 학규님도 대가리먼저 로군요. ...이거 개념글?(죄송)
답변 주신 모든 분들 감사드리며. 좋은 하루 되십시오.
언제나 좀비가 함께 하...(후다닥)
2006.07.12 10:20:54 (*.70.61.227)
snowflower
저도.. 'ㅁ' 그림책.. 헤드퍼스트디자인패턴
헤드퍼스트/헤드러시 시리즈는 컴퓨터서적임에도 불구하고 거의 그림책이에요 +_+
읽기 좋지만 싫어하는 분도 계시다는..
2006.07.12 12:18:57 (*.118.69.84)
박현만
이번에 디자인 패턴을 스터디했는데 하면서 느낀 점은 게임에서 디자인 패턴은 필수구나 라는 것 이었습니다. 아마 공부하시다 보면 님도 느끼실 수 있을것입니다^^
스타크래프트 개발 현장을 인용해서 패턴소개하는 것들이 있는데 그거보면 잼있어요 ㅋㅋ
일단 그 책은 지르시구요
그러고나서 Design Pattern 책(한글판 있습니다) 펴들고 하드커버 안쪽에 보면 패턴들이 어떤 때 쓰는건지 짧게 요약된 거 보시면 어떤 경우에 필요한지 알 수 있습니다.
(사실 인터넷 검색만 해봐도 널려있지만요; ;)
그거보고 대충 어떤 패턴이 필요한지 먼저 감을 잡으신 뒤, 한번 읽어보고 이해가 안되면 풀이된 책들을 찾으러 다녀보시면 됩니다(-_-)
그리고 UML은 프로그램 모델링 언어입니다. 프로그램이 어떻게 생겨먹었는지 설계할 때 사용되는 기본적인 방식들의 집합이라고 보면 됩니다.
UML말고 다른걸로 비유하자면, 순서도 그릴 때 보면 마름모는 if 를 나타낸다 뭐 이런식으로 약속된 그런겁니다.
( 객체지향이나 뭐 이런 방법론과 연관을 많이 시키지만, 실제로 방법론과는 무관합니다. )
그리고 이걸 어째 툴로 만들다보니 레셔널로즈나 아고라, argoUML 같은 UML 작성 툴들이 있는데,
이런걸로 어째어째 설계하면 인터페이스들까지는 설계된대로 자동코딩 해주는 그런 기능도 있습니다.