| English | 의미 |
|---|---|
| complexity/kəmˈpleksɪti/ | 복잡도 |
| Data abstraction/ˈdeɪtə əbˈstrækʃn/ | 데이터 추상화 |
| list/lɪst/ | 목록 |
| abstract data type/ˈæbstrækt ˈdeɪtə taɪp/ | 추상 데이터 타입 |
| general/ˈdʒenərəl/ | 일반적인 |
| abstraction/əbˈstrækʃn/ | 추상화 |
| modeling/ˈmɒdəlɪŋ/ | 모델링 |
| model/ˈmɒdl/ | 모델 |
복잡성을 관리하기 위한 디테일 숨기기
- 실제 프로그램은 방대한 양의 데이터를 다룹니다.
- **데이터 추상화(data abstraction)**는 디테일을 숨겨 **복잡성(complexity)**을 관리하게 합니다.
- 여러 작은 요소를 개별적으로 추적하는 대신, 이를 하나의 이름 아래로 묶습니다.
- 이를 위한 가장 일반적인 도구는 **리스트(list)**입니다.
리스트를 사용할 것인가, 아니면 단일 변수일 것인가?
비슷한 값이 많을 때는 리스트(데이터 추상화)가 유효하며, 독립된 값 하나만 있을 때는 단일 변수면 충분합니다.
데이터 추상화가 프로그래머에게 도움이 되는 이유는:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
하나의 이름 아래로 데이터를 묶으면 불필요한 세부 사항이 숨겨집니다.
______는 하나의 이름 아래로 여러 값을 묶으며, 클래스의 모든 점수처럼 말입니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
리스트는 가장 일반적인 추상 데이터 유형입니다.
리스트를 사용하면 코드가 범용적이 됩니다: 같은 루프가 5개 또는 500개의 값에 모두 적용됩니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
코드는 개별 값이 아닌 리스트의 이름으로 참조합니다.
리스트는 많은 값을 묶습니다
- 리스트는 하나의 이름 아래로 많은 값을 묶는 **추상 데이터 유형(abstract data type)**입니다.
- 하나의 리스트
scores가 한 반의 모든 성적 — 학생마다 별도의 변수 없이 —을 저장할 수 있습니다. - 리스트를 사용하면 코드가 더 **일반적(general)**이 되어, 5개의 값이나 500개의 값 모두에 동일한 코드를 사용할 수 있습니다.
- 개별 값을 하나씩 지칭하는 대신, 이름으로 전체 리스트를 참조합니다.
데이터 추상화의 장점은 무엇입니까? (적용 가능한 모든 선택)
난이도 2/5 · 140 코인 + 오늘 첫 완료 시 소액 보너스
세 가지 측면 모두에서 한 개의 명확한 이름이 50개의 개별 이름보다 낫습니다.
추상화가 도움이 되는 이유
- 반복 감소 — 로직을 한 번만 작성하고, 값마다 반복하지 않습니다.
- 변경 용이성 — 리스트에 값을 추가해도 동일한 코드는 여전히 작동합니다.
- 오류 감소 — 한 가지 명확한 이름이 50개의 별도 이름을 맞추기보다 쉽습니다.
- 이러한 명명과 grouping이 바로 **추상化(abstraction)**의 핵심입니다.
클래스 모델은 이름을 저장하지만 눈 색은 무시하는데, 그 이유는:
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
모델은 현실을 단순화하여 관련 세부 사항만 유지합니다.
리스트를 사용하면 여섯 번째 학생을 추가할 때 새로운 변수나 새로운 출력 줄이 필요 없습니다.
난이도 1/5 · 100 코인 + 오늘 첫 완료 시 소액 보너스
데이터만 변경되고, 같은 루프가 이를 처리합니다.
추상화는 모델링입니다
- 데이터 추상화는 **모델링(modeling)**의 한 형태입니다.
- 모델은 중요한 부분에 집중할 수 있도록 무언가를 단순화합니다.
- 학생 이름의 리스트는 Eye Colour와 같이 프로그램이 절대 필요하지 않는 디테일은 무시하고 반(class)을 모델링합니다.
5점 문제. 추상화 없음: 5개의 변수 mark1…mark5와 5개의 print 문장. 리스트 marks 사용: 한 개의 루프가 모든 요소를 출력합니다. 여섯 번째 학생이 추가되면 데이터만 변경됩니다 — 새로운 변수나 새로운 문장은 필요합니다.
데이터 추상화는 복잡성을 관리하기 위해 디테일을 숨기며, 보통 리스트라는 추상 데이터 유형을 사용하여 하나의 이름 아래로 많은 값을 묶습니다. 이는 코드를 일반적으로 만들어(모든 크기에 적용 가능), 반복과 오류를 줄이며, 모델링의 일종입니다: 중요한 것은 유지하고 나머지는 무시합니다.