(파란별) Index

(파란별) Date

의 회의록 마스터 : 윤영기

(파란별) Participants

TEAM FIRE (고주형 윤영기 이하령) + WonYong Jeong

(파란별) Discussion topics

정원용 멘토님 멘토링

진도 뚝딱뚝딱 잘 나간다. 굿

JSON rpc 문서화? 흠…통신에 대한 이야기임. 잘 몰?루 -> 공부좀 해봐

잘 하고 있구만.. 바로 스터디 ㄱ

디자인패턴

UML

점선 -> implements

diamond -> 포함 관계 (aggregate)

삼각형 -> 부모

Iterator: 반복자 패턴

how can interface create an interface?

  • interface는 구현을 하게 될 것이고 ,구현 받는 애는 관계를 물려받기 때문에 aggregate를 구현한 bookshelf는 iterator 를 가지고 있어야 된다?

  • 추상적으로 부모에 포함? -> 좀 애매띠

  • 그냥 표현인건데, 문법적으로 보면 답이 나옴

  • aggregate는 하나의 추상 method 가 있고, iterator를 생성하고 리턴 타입이다. 그게 다임. -> iterator method가 있는데, 그거의 리턴 타입이 <<interface>> Interface일 뿐이다. 그걸 다이어그램으로 표현하면 CREATE

  • 결국 Bookshelf 의 iterator의 리턴은 BookShelfIterator. 그런데 Iterator이긴 한데  bookShelf를 가지고 있으므로, books 도 가지고 있음. 결국 자료구조 handling이 가능하다

Aggreagate : 자료구조의 본체이고 Iterator를 알고있음이란, Bookshelf 가 되었던 List가 되었던, 나는 그냥 hasNext 와 next만 쓰면 된다.

구현에 상관없이 iterator를 사용할 수 있음

  • 구현과 분리해서 하나씩 셀 수 있음

추상클래스나 인터페이스

  • Concrete 클래스만 사용시 결합이 강해져서 재사용이 어렵다

복수의 Iterator

  • 하나의 ConcreteAggregate 에 대해 여러 concreteIterator 역할을 만들 수 있음

QUIZ

  • 데이터를 처음부터가 아닌 중간만 참조하려면?

    • 답이 없음.

    • 처음부터 훑으면서 버리는 방법 밖에 없음. 그리고 원하는걸 감지하는것도 쉽지 않다.

    • 중간만 참조하는 iterator 만들어야됨 즉 복수의 iterator 생성

  • 자료구조 원본의 index 접근이 더 편리하지 않나? 왜 원본을 0부터 참조하지 않을까? 너무 소모적이지 않음?

    • 모든 자료구조는 각자 추상 method가 존재함. 그들이 object가 돼서, 각각 indexing 가능하긴 함. 주형님 땡!

    • 원본을 노출하지 않아도 된다! -> public method를 제공하는 객체에서 누가 쓸지 모르는 상황임에도 불구하고, iterator를 사용하면 누구나 잘 사용할 수 있는 창구를 만드는것이다

    • 더이상 iterator는 자료구조 원본을 지킬 수 있는 보안 패턴이 된다. 내가 지키는 데이터를 지킬 수 있음

세미나 준비

챕터 2.[adapter] 하령

챕터 3.[template] 주형

챕터 4. 영기

챕터 5. 하령 …