Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

DesignPatterns/2011년스터디

From ZeroWiki
Revision as of 00:42, 20 April 2011 by imported>linflus

출석체크

김준석 김수경 서지혜 임상현
3/19 O O O X
3/27 X O O O
4/2 O O O O
4/10 O O O O
4/29 O O O O

3월 19일

  • DoWeHaveToStudyDesignPatterns?
  • HowToStudyDesignPatterns?
  • 진행 방식

3월 27일

후기

김수경

  1. HolubOnPatterns 0장에 대해 함께 이야기했다. 나 혼자 0장을 안 읽어와서 민망했다. 1장은 꼭 읽어와야지.
  2. High Cohesion Low Coupling과 SOLID(SRP, OCP, LSP, ISP, DIP)에 대해 다시 생각해보는 시간이 되었다.
    1. SRP(Single Response Principle)에 대해 얘기하면서 '책임'이란 무엇인가에 대한 이야기가 나왔다. 삽질 경험이 없는 사람에게 객체지향 원칙을 설명할 때 '책임'이 무엇인지 어떻게 이해시켜야 할지 모르겠다. 오늘 얘기하면서 낸 결론도 경험이 없으면 이해하기 어렵다는 것…
    2. DIP에서 의존관계 역전이 대체 무엇을 역전시킨다는 것인지 알게되었다. 기존에는 Highlevel 모듈이 Lowlevel 모듈에 의존하는 식이었지만 인터페이스를 사용하여 Lowlevel 모듈이 Highlevel이 제공하는 인터페이스에 의존하게 함으로써 설계를 더 유연하게 만들 수 있다.
  3. 여름방학때 1, 2학년들과 함께 OOP 스터디를 진행하고싶다.

서지혜

  1. 0장 읽어오고 밑줄긋기(안함), 내용에 대해 이야기 나누기
  2. 객체지향을 왜 해야하는가? 근본적으로 소프트웨어가 변화하기 때문이다. 객체지향은 변화에 잘 대응할 수 있는 설계 패턴이다.
  3. DIP
    1. 처음엔 단순히 인터페이스 대신 넘겨받는 구체클래스를 써야해서인 줄 알았는데 상위기술이 하위기술에 의존하는 것이 아닌 하위기술이 상위기술을 지원하기 위해 만들어지는 것이라는것을 알게되었다.
    2. 의존관계 역전이라 해서 낯설었는데 이렇게 설명하니 상위기술에 하위기술이 맞추는게 당연한게 아닌가 하는 생각이 들었다.
  4. SRP에서 책임나누기 - 변화를 상상해보라.. 서비스가 변경될 때 함께 수정되어야 할 코드들을 분리해라! 그것이 변화의 축이다. - 많은 상상과 삽질을 해야겠습니다.
  5. 좋은 설계는 천재 프로그래머에 의해 한번에 만들어지는게 아니라 고민하는 프로그래머에 의해 지속적으로 만들어 지는 것 이다. 용기를 주는 말입니다.
    1. 이 자리에 이 패턴을 적용해야할 이유를 대라. 패턴을 적용할 때에는 타당한 이유가 있어야 한다. 생각없이 적용된 패턴은 오히려 설계를 망친다.
    2. 즐겨라:)

임상현

  • 왜 디자인 패턴을 쓰느냐?, SOLID를 공부했습니다. 오랜만에 공부를 잘 안돌아갑니다. , 열심히 공부해야겠습니다. 삽질을 덜하고 싶습니다.

4월 02일

후기

김준석

  1. 밑줄긑기가 잘 남는군. 역시 근데 책을 읽어온다는건 힘들어.
  2. 알면 알수록 오류는 정정되고 지식은 쌓이는 기분.
  3. 지금짜는 코드만큼 미래를 위해서는 개념공부가 중요하지만 난 잘안하지.


김수경

  1. 이번 스터디는 책도 미리 읽어보고, 밑줄도 다들 열심히 그어서 더 재미있었다.
  2. 혼자 책을 읽을 때는 '동적인 행동양식'이 무엇인지 잘 감이 오지 않았는데 오늘 스터디하며 알게되었다.
    1. 책에 나온 교차 통풍 패턴을 예로 들어 말하자면, 정적인 구조를 볼 때 마주보는 양 쪽 벽 비슷한 높이에 창문이 있는 사무실은 교차 통풍 패턴에 속하는 것처럼 보일 수 있다. 그러나 창문 앞에 커다란 건물이 있으면 바람을 막아서 창을 통해 바람이 들어오지 않는다. 교차 통풍 패턴은 마주보는 양 벽에 각각 창이 있다는 그 자체로 실내 공기를 쾌적하게 만드는 것이 아니라 창을 통해 바람이 불어들어오고 불어나감으로써 실내 공기를 쾌적하게 만드는 것이다. 따라서 교차 통풍 패턴에서 마주보는 양 벽에 창이 존재한다는 정적 구조 보다는 창을 통해 바람이 들어오고 나가는 동적인 행동 양식과 그것을 통해 실내 공기를 쾌적하게 만든다는 의도가 중요하다고 할 수 있다.
  3. 홀럽 아저씨는 OO계의 진중권인듯.
    1. 책의 일부 내용으로 미루어보아 절차지향적 패러다임이 판칠때 OO를 들고 나와 절차지향의 수호자들--절차지향으로 코드 잘 짜지도 못 하는 허접들--과 격한 키배를 수도 없이 펼치지 않았을까…
  4. 예측은 빗나가기 쉽다.
  5. 무엇이든 생각없이 받아들이지 말고 장점과 단점을 모두 생각한 후에 지금 사용하기 적절한지 판단하고 적용하라는 아주 중요한 메세지가 반복되어 나온다. 다시 한번 되새기는 시간이 되었다.

서지혜

  • 처음에 0장에 대해 다시 얘기했는데 그새 잊었던 일을 다시 기억하게 되었다.
  • OOD와 OOP가 다르다는 것을 알았다.
  • 처음에 모든 기능을 고려하기 보다는(미래의 것까지) 기능을 확장할 수 있도록 유연하게 설계하라.

임상현

  1. 밑줄 긋기를 하면서 책을 봤습니다. 그런데 처음이라 그냥 책보면서 긋던거 다 그어 버렸습니다 .
  2. 스터디 하는데 생각보다 시간이 빠르게가 아쉬웠습니다.
  3. 디자인이란 선택과 트레이드 오프, 리스크 관리의 연속이라는 점이 가슴에 와닿았습니다. 그래서 결국 자구 과제는 추가 사항이 없으므로 개판으로 짰습니다.
  4. 자구 과제를 하면서 이렇게 짜면 안되는데 이러면 코드가 개판인데 느끼고 있으면서 그렇게 밖에 할수 없는 능력이 슬펐습니다. 더 공부해서 잘짜야겠습니다.

4월 10일

후기

서지혜

임상현

  1. 책 1장을 이번에 다 읽었습니다. DB프로젝트 설계하는걸 구경 및 참여했습니다.
  2. 프로젝트 설계를 하는게 매우 신기했습니다. 가장 최근에 했던 프로젝트가 약 2년 전이라 하나도 모르겠는데 모듈을 잡고 그 모듈의 역활을 잡고 그에 따라 인터페이스를 만들고 하는 걸보고 생각없이 그냥 순차적으로 프로그래밍 하려고했던 제가 참 답이 없었던거 같습니다.
  3. "어떤 작업을 수행하는데 필요한 데이터를 요구하지 말라!!! 대신 정보를 가지고 있는 객체에게 일을 해달라고 부탁하라!" 항상 데이터를 get으로 꺼내와 바꿔놓고 set으로 넣어놨던 제 자신을 반성해 봅니다.
  4. DB 수업을 듣지 않아서 완전히 참여는 하지 않았지만 DB팀이 하는 프로젝트가 진행되는 모습을 계속 보고 싶습니다.

김수경

  1. 드디어 1장을 다 읽었다. 1장에 정말 중요한 내용이 많다는 것을 후기를 쓰려고 돌아보며 다시 한번 느낌. 이 책을 읽으면서 1장을 건너뛰고 각 패턴에 대한 설명만 찾아보는 사람이 있을 거라 생각하니 답답함. -L-
  2. CRC 모델링에 대해 설명하는 부분에 도메인 영역의 언어로 문제를 기술하라는 말이 인상적이었다. get과 set을 사용할 필요가 없다는 걸 와닿게 하는 말이었어요. 언젠가 정모에서 체험 OO 현장같은 활동을 해보고 싶음. 우리 모두 객체가 되어보아Yo :)
  3. 데이터를 꺼내는 것보다 넣는 것이 좋다는 것을 진작에 생각했더라면…

4월 29일

후기

김준석

임상현

서지혜

김수경


DesignPatterns, 스터디분류, 2011년활동지도