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

OOD세미나: Difference between revisions

From ZeroWiki
imported>sibichi
No edit summary
imported>sibichi
No edit summary
Line 15: Line 15:
  정말 중간에 어려워서 LineDrawable 얘기할땐 잠깐 졸았지만 너무 유익한 세미나 였습니다~      - [[박성현]]
  정말 중간에 어려워서 LineDrawable 얘기할땐 잠깐 졸았지만 너무 유익한 세미나 였습니다~      - [[박성현]]
   
   
* 일단 개인적으론 늦어서 앞부분을 못들은게 아쉽고, SE팀플과 관련된 수확이 있어서 여러모로 유용한 세미나였습니다ㅋ
* 일단 개인적으론 늦어서 앞부분을 못들은게 아쉽고, SE팀플과 관련된 수확이 있어서 여러모로 유용한 세미나였습니다ㅋ 일단 들으면서 간단히 적었던걸론  
일단 들으면서 간단히 적었던걸론 '''추상화는 단일변화에 대해 수정사항이 예층가능케 할려고 한다는점''', '''패턴을 통해 커뮤니케이션이 좋아지는거지, 구현이 좋아지는건 아니다'''
    *'''추상화는 단일변화에 대해 수정해야 할 사항을 예측가능케 할려고 한다는점 -> 변경 가능성이 있는건 다 추상화하자?'''
    *'''패턴을 통해 커뮤니케이션이 좋아지는거지, 구현이 좋아지는건 아니다''''
    *'''잘 설계하다보니 몇가지 패턴이 보이는 것이지, 패턴을 쓴다고 설계가 잘되는 것은 아니다'''
  정도가 요지였던듯 합니다.
  확실히 제 경험에 비추어보면 학부과정에서 OOP에 대한 개념을 배울때는 상속, 다형성 등을 배울때 과제는 상속을 이용한 무언가, 오버라이딩, 오버로딩을 하도록 요구했습니다. 심지어 의미없는 프렌드도 쓰도록했었죠ㅎ 물론 가르치는 교수님의 입장에선 직접 써보게하려면 그 방법이 가장 확실합니다. 그렇지만 그렇게 배우고나면 왠지 설계에 대한 별 생각없이 그렇게 하게되더군요. 저또한 미숙하지만 후배들에게 OOP를 왜 쓰고, 어떤 점이 좋은가를 알려주다보니 다시 한번 기본개념에 대해 생각하게되고 그러면서 제대로된 OOP는 뭔가 싶었습니다. (적어도 제 생각엔)'''단지 class쓰고 상속한다고 OOP가 아닙니다'''. OOP의 장점을 이용해야 진정한 OOP입니다.
  이 글을 보는 분에게  하고싶은 말은 위의 요지와 함께 '''한 명제가 참이라고 그 명제의 역이 반드시 참은 아니라는점'''과 '''아 다르고 어 다르다'''라는 말도 함께 해주고 싶네요ㅎ
  그리고 저 또한 오늘 실제 디자인에서 Drawable로 GUI를 로직에서 완전히 분리시킨 것을 보고 다시 한번 추상화에 대한 공부가 되었습니다. 앞으로 추상화하는 법을 좀 더 익혀야겠어요. - [[김홍기]]



Revision as of 17:36, 5 May 2010

Object-Oriented Design 세미나

실전 객체지향 설계로 배우는 왜?

  • “단일 변화로 인한 수정 사항을 예측 가능한 범위 내에 집중시켜라.”
    • 이것은 비단 객체지향에 한정된 이야기가 아니라 컴퓨터공학 발전의 역사를 이끌어온 가장 중대한 목표이자, 앞으로 여러분이 컴퓨터공학도로서 갖춰야할 모든 공학적 지혜들의 근본이라는 것을 잊지 마세요. - 변형진

후기

  • 오늘 긴 시간동안 모두 수고하셨습니다. 오늘 설명한 내용이 아직 깊이 와닿지 않더라도 좋습니다. 프로젝트 개발에 있어 그동안 흔히 전개했던 방식과는 다른 접근 방식의 가능성을 확인하는 것만으로도 좋은 경험이 되었길 바랍니다. 누누히 강조하지만 한 번에 이해하시길 바라서 진행하는 세미나가 아니라, 정말 중요한 하나의 제언만이라도 남는다면 그것을 앞으로 몇 번 듣고 또 듣고, 그리고 정말 그 개념이 필요한 순간이 됐을 때 큰 힘이 되리라 믿습니다. 좋은 후기를 작성해주신 분 한 분을 선정해서 번역서 Holub on Patterns을 선물로 드립니다. 후기는 감상보다는 되새김이 되었으면 좋겠습니다. :) - 변형진
  • 학교 환경도 안 받쳐주고, 제 머리도 안 받쳐줬어요. diff/merge 기능 설계를 바라보면서 객체지향 설계를 봤는데 어려우면서도 효율적인거 같더라구요. 그리고 형진이 형이 세뇌하신 내용 "단일변화가 생겨서 수정할 때 쉽게 수정하려면 구조가 중요하다" 이거 꼭 외울게요 - 윤종하
  • 원래 정말 철저하게 절차지향적으로 프로그래밍 하던 사람이라... 오늘 내용이 좀 어려웠습니다;; 특히 그냥 들을때는 이해하면서 넘어가도, 실제 프로그래밍을 하려니까 막막하더라구요. 마지막 실습때 질문도 했었는데, 형은 if문 안에서 Comparer 객체를 선언해서, equals 함수를 사용하라고 하셨는데, 전 if문 안에서 객체를 생성할 생각조차 하지 못했었거든요. 그저 주어진 정보만 가지고, 반복문을 돌릴 생각뿐이었죠; 그런데 집으로 돌아오면서 생각해봤는데, 제가 짠대로 하면 “단일 변화로 인한 수정 사항을 예측 가능한 범위 내에 집중시켜라.” 라는 말과는 거리가 한 참 멀어지더라구요;; 예측은 가능한데 예측범위가 프로그램 소스 코드 전~부 라는거죠. 덕분에 "아, 정말 이런거 때문에 OOP를 하라는 거구나" 라는걸 알게 되었습니다 ㅋㅋ
오늘 했던 내용 중 정말 특히 기억에 남는건  "상속을 하기 위한 프로그래밍을 하지 말아라" & "패턴을 적용시키기 위한 프로그래밍을 하지 마라" 였습니다.
제가 뭘 배우기만 하면 꼭 써먹을려는 습관이 있는지라, 정말 문법같은걸 배우면 꼭 써먹으려고 하거든요. 그런데 이 말을 듣고, 문법의 남용을 자제해야겠다는 생각을 했습니다; 마치 영어 배울때 수동태 문장 많이 만들지 마라 라는 느낌이었어요 ㅋㅋ
정말 중간에 어려워서 LineDrawable 얘기할땐 잠깐 졸았지만 너무 유익한 세미나 였습니다~      - 박성현

  • 일단 개인적으론 늦어서 앞부분을 못들은게 아쉽고, SE팀플과 관련된 수확이 있어서 여러모로 유용한 세미나였습니다ㅋ 일단 들으면서 간단히 적었던걸론
   *추상화는 단일변화에 대해 수정해야 할 사항을 예측가능케 할려고 한다는점 -> 변경 가능성이 있는건 다 추상화하자?
   *패턴을 통해 커뮤니케이션이 좋아지는거지, 구현이 좋아지는건 아니다'
   *잘 설계하다보니 몇가지 패턴이 보이는 것이지, 패턴을 쓴다고 설계가 잘되는 것은 아니다
  정도가 요지였던듯 합니다.
  확실히 제 경험에 비추어보면 학부과정에서 OOP에 대한 개념을 배울때는 상속, 다형성 등을 배울때 과제는 상속을 이용한 무언가, 오버라이딩, 오버로딩을 하도록 요구했습니다. 심지어 의미없는 프렌드도 쓰도록했었죠ㅎ 물론 가르치는 교수님의 입장에선 직접 써보게하려면 그 방법이 가장 확실합니다. 그렇지만 그렇게 배우고나면 왠지 설계에 대한 별 생각없이 그렇게 하게되더군요. 저또한 미숙하지만 후배들에게 OOP를 왜 쓰고, 어떤 점이 좋은가를 알려주다보니 다시 한번 기본개념에 대해 생각하게되고 그러면서 제대로된 OOP는 뭔가 싶었습니다. (적어도 제 생각엔)단지 class쓰고 상속한다고 OOP가 아닙니다. OOP의 장점을 이용해야 진정한 OOP입니다.
  이 글을 보는 분에게  하고싶은 말은 위의 요지와 함께 한 명제가 참이라고 그 명제의 역이 반드시 참은 아니라는점아 다르고 어 다르다라는 말도 함께 해주고 싶네요ㅎ
  그리고 저 또한 오늘 실제 디자인에서 Drawable로 GUI를 로직에서 완전히 분리시킨 것을 보고 다시 한번 추상화에 대한 공부가 되었습니다. 앞으로 추상화하는 법을 좀 더 익혀야겠어요. - 김홍기