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. 하령 …