Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 네트워크
- 웅진씽크빅
- App Runner
- javascript
- 타입스크립트
- 리액트
- 프로그래머스
- typescript
- 프로세스
- 개발자부트캠프
- html
- 스나이퍼팩토리
- IT개발캠프
- BFS
- 메모리
- 자바스크립트
- #프로젝트캠프 #프로젝트캠프후기 #유데미 #스나이퍼팩토리 #웅진씽크빅 #인사이드아웃 #IT개발캠프 #개발자부트캠프 #리액트 #react #부트캠프 #리액트캠프
- 해시
- Algorithm
- react-query
- react
- React.js
- CS
- 알고리즘
- ip
- 스레드
- 인사이드아웃
- 프로젝트캠프
- cs #네트워크
- 유데미
Archives
- Today
- Total
Bin's Blog
오늘의 CS(디자인 패턴 - 이터레이터 패턴) 본문
728x90
1. 이터레이터 패턴이란?
- 책을 읽는다고 상상해보자. 책은 여러 페이지로 이루어져 있고, 첫 페이지부터 시작해서, 한 페이지씩, 한 문장씩, 한 단어씩 차례대로 읽어 나간다. 그리고 마지막 페이지에 도달하면, 책을 끝내고 다른 활동을 할 수 있다.
- 이터레이터 패턴도 이와 비슷하다. 컬렉션이라는 책과 같은 것을 가지고 작업을 한다. 컬렉션은 여러 아이템으로 이루어져 있고, 이터레이터 패턴은 이 아이템들을 하나씩 차례로 접근할 수 있는 방법을 제공한다.
- 이터레이터의 장점은 어떤 종류의 컬렉션이든 동일한 방식으로 접근할 수 있다. 즉 컬렉션이 배열이든, 리스트든, 트리든, 그래프등 상관 없이 동일한 방식으로 아이템을 차례대로 접근 할 수 있다. 마치 내가 어떤 종류의 책이든 동일한 방식으로 페이지를 넘기고 문장을 읽는 것과 같다.
* 코드 예시
const map = new Map();
mp.set("a", 1);
mp.set("b", 2);
mp.set("c", 3);
const st = new Set();
st.add(1);
st.add(2);
st.add(3);
for (let a of mp) console.log(a);
for (let a of st) console.log(a);
["a", 1]
["b", 2]
["c", 3]
1
2
3
분명히 다른 자료구조인 set과 map임에도 똑같은 for a of b라는 이터레이터 프로토콜(객체들의 순회할 때 쓰이는 규칙)을 통해 순회하는 것을 볼 수 있다.
728x90
'CS' 카테고리의 다른 글
오늘의 CS(디자인 패턴 - MVC 패턴, MVP패턴, MVVM 패턴) (0) | 2023.05.15 |
---|---|
오늘의 CS(디자인 패턴 - 노출모듈 패턴) (0) | 2023.05.12 |
오늘의 CS(디자인 패턴 - 프록시 서버) (0) | 2023.05.08 |
오늘의 CS(디자인 패턴 - 프록시 패턴) (0) | 2023.05.08 |
오늘의 CS(디자인 패턴 - 옵저버 패턴) (0) | 2023.05.05 |