학습
Dart 리스트 기초
Dart 리스트 기초 — 초급
리스트 기초
1. 도입 (왜 배워야 하는가)
Dart에서 리스트(List)는 데이터 구조의 핵심 요소 중 하나로, 데이터를 효율적으로 저장하고 관리하는 데 필수적입니다. 실무에서는 사용자 정보를 저장하거나, 쇼핑몰의 장바구니에 담긴 상품 목록을 관리하는 등 다양한 상황에서 리스트를 사용합니다. 만약 리스트를 잘 이해하지 못한다면, 데이터를 효과적으로 저장하고 처리하는 데 어려움을 겪을 수 있습니다. 이로 인해 복잡한 데이터 처리 로직이 필요해지거나, 성능 저하가 발생할 수 있습니다.
2. 핵심 개념 설명
리스트는 데이터의 집합을 순서대로 저장하는 컬렉션입니다. 리스트의 각 요소는 인덱스를 통해 접근할 수 있으며, 인덱스는 0부터 시작합니다.
실생활 비유
리스트는 마치 서랍 속의 물건들처럼 생각할 수 있습니다. 서랍에 여러 물건이 있을 때, 각 물건은 특정 위치에 놓여져 있고, 그 위치를 통해 원하는 물건을 쉽게 찾을 수 있습니다.
관련 용어 정리
| 용어 | 설명 |
|---|---|
| 리스트 | 데이터의 순서가 있는 집합 |
| 인덱스 | 리스트에서 각 요소의 위치를 나타내는 숫자 |
| 요소 | 리스트에 포함된 개별 데이터 |
3. 기본 코드 예제
리스트의 기본적인 사용법을 알아보겠습니다.
void main() {
// 리스트 생성
List<String> fruits = ['사과', '바나나', '체리'];
// 리스트에 요소 추가
fruits.add('포도');
// 리스트의 첫 번째 요소 출력
print(fruits[0]); // 사과
// 리스트의 모든 요소 출력
for (String fruit in fruits) {
print(fruit);
}
}
실행 결과
사과
사과
바나나
체리
포도
코드 한 줄씩 동작 설명
void main() {- Dart 프로그램의 시작점인 main 함수를 정의합니다.List<String> fruits = ['사과', '바나나', '체리'];- 문자열 타입의 리스트를 생성하고 초기화합니다.fruits.add('포도');- 리스트에 '포도'라는 요소를 추가합니다.print(fruits[0]);- 리스트의 첫 번째 요소인 '사과'를 출력합니다.for (String fruit in fruits) {- 리스트의 모든 요소를 반복하여 처리합니다.print(fruit);- 반복문 안에서 현재 요소를 출력합니다.- 리스트는 데이터의 순서가 있는 집합으로, 인덱스 기반으로 접근합니다.
- 리스트를 사용하면 여러 데이터를 효율적으로 관리할 수 있습니다.
- 실무에서는 쇼핑몰 장바구니, 성적 관리 등 다양한 분야에서 리스트를 활용합니다.
- 리스트의 다양한 메서드 (예:
remove,insert,sort) - Dart의 다른 컬렉션 타입 (예: Set, Map)
4. 실전 활용 예제
예제 1: 쇼핑몰 장바구니 구현
장바구니에 담긴 상품을 리스트로 관리하는 예제입니다.
void main() {
List<String> cart = []; // 장바구니 리스트 생성
// 상품 추가
cart.add('티셔츠');
cart.add('바지');
// 장바구니 출력
print('장바구니에 담긴 상품: $cart');
}
상황 설명: 사용자가 '티셔츠'와 '바지'를 장바구니에 추가하면, 리스트를 통해 상품을 관리할 수 있습니다.
예제 2: 학생 성적 관리
학생의 성적을 리스트로 저장하고 평균을 계산하는 예제입니다.
void main() {
List<double> grades = [85.0, 90.5, 78.0]; // 성적 리스트 생성
double total = 0;
// 성적 합계 계산
for (double grade in grades) {
total += grade;
}
double average = total / grades.length; // 평균 계산
print('학생의 평균 성적: $average');
}
상황 설명: 학생들의 성적을 리스트에 저장하고, 반복문을 통해 평균 성적을 계산하는 로직입니다.
5. 흔한 실수와 주의사항
실수 1: 인덱스 초과
void main() {
List<String> fruits = ['사과', '바나나'];
print(fruits[2]); // 오류 발생
}
올바른 코드:
void main() {
List<String> fruits = ['사과', '바나나'];
print(fruits[1]); // 바나나
}
설명: 리스트의 인덱스는 0부터 시작하므로, 인덱스 2는 존재하지 않아 오류가 발생합니다.
실수 2: 리스트 초기화 실수
void main() {
List<String> fruits; // 초기화되지 않은 리스트
fruits.add('사과'); // 오류 발생
}
올바른 코드:
void main() {
List<String> fruits = []; // 리스트 초기화
fruits.add('사과'); // 정상 작동
}
설명: 리스트를 사용하기 전에 반드시 초기화해야 합니다.
6. 정리
다음에 학습하면 좋은 주제: