- 1 1. Introduction
- 2 2. Array Basics | Declaration and Initialization
- 3 3. 기본 배열 연산 | 요소 추가, 제거 및 검색
- 4 4. 배열 정렬 및 필터링
- 5 5. 배열 결합, 분할 및 변환
- 6 6. 배열 순회 및 고급 기법
- 7 7. 실용 예제 | 배열을 활용한 간단한 애플리케이션 만들기
- 8 8. 요약 | 배열 연산 마스터하기
- 9 FAQ | 자주 묻는 질문
1. Introduction
JavaScript 배열이란 무엇이며 왜 중요한가?
JavaScript 배열은 데이터를 효율적으로 관리하고 조작하기 위한 필수 요소 중 하나입니다. 배열을 사용하면 여러 값을 하나의 변수에 저장하고 필요에 따라 조회하거나 수정할 수 있습니다.
예를 들어, 사용자 이름 목록, 제품 리스트, 계산 결과 등을 저장할 때 배열이 매우 유용합니다. 특히 웹 애플리케이션 개발에서는 폼 데이터나 API에서 가져온 데이터를 처리할 때 배열을 자주 사용합니다.
배열의 실용적인 사용 사례
- 목록 관리 : 쇼핑 카트 아이템이나 할 일 목록 관리.
- 데이터 필터링 : 사용자 검색 및 정렬 기능.
- 애니메이션 제어 : 요소 순서 관리 또는 동적 변화 제어.
배열은 그룹화된 데이터를 다루는 기본 구조이며, JavaScript를 배우는 데 있어 필수적인 주제입니다.
이 글에서 배우게 될 내용
이 글에서는 JavaScript 배열을 체계적으로 설명하며 다음과 같은 주제를 다룹니다.
- 배열 선언 및 초기화 방법
- 요소 추가, 삭제, 조회 방법
- 정렬 및 필터링 기법
- 배열 병합 및 분할 메서드
- 배열을 활용한 응용 예제
내용은 초급부터 중급 학습자까지 모두에게 적합하도록 기본 개념부터 실용 기술까지 차근차근 설명합니다.
대상 독자
- 초급 : 배열을 처음 다루는 사람.
- 중급 : 고급 연산을 배우거나 더 효율적인 코드를 작성하고 싶은 사람.
코드 예제와 실용적인 사용 사례를 통해 초급자도 자신 있게 배울 수 있습니다.
배열 학습을 통해 얻을 수 있는 것
JavaScript 배열을 마스터하면 다음과 같은 역량을 갖추게 됩니다.
- 데이터 관리·조작 : 데이터를 손쉽게 추가·삭제·정렬.
- API 연동 : Web API에서 가져온 데이터를 효율적으로 처리·표시.
- 애플리케이션 개발 : 실용 예제를 활용해 간단한 앱을 구축.
여기서 배운 내용을 활용해 보다 고급 JavaScript 애플리케이션을 만들어 보세요.

2. Array Basics | Declaration and Initialization
2.1 배열의 정의와 역할
JavaScript 배열은 한 번에 여러 데이터 항목을 관리할 수 있게 해 주는 특수 객체입니다. 각 요소는 위치를 나타내는 인덱스를 가지고 있어 데이터 조회와 조작이 용이합니다.
배열의 주요 역할
- 목록 관리 : 제품 목록이나 사용자 정보와 같이 그룹화된 데이터를 관리.
- 데이터 조작 : 정렬·검색 등 효율적인 작업 수행.
- 동적 데이터 처리 : API에서 가져온 데이터를 처리·변환.
배열의 특성
- 요소 인덱스는 0부터 시작합니다.
- 서로 다른 데이터 타입의 값을 함께 저장할 수 있습니다.
let mixedArray = [1, "hello", true]; console.log(mixedArray[1]); // "hello"
2.2 배열 선언 및 초기화
기본 배열 선언
JavaScript에서는 배열을 두 가지 방법으로 선언할 수 있습니다.
- 리터럴 표기법 사용 (권장)
let fruits = ["apple", "banana", "grape"];
- Array 생성자 사용
let fruits = new Array("apple", "banana", "grape");
빈 배열 만들기
let emptyArray = [];
2.3 다차원 배열 선언
다차원 배열은 다른 배열을 요소로 포함하는 배열입니다. 계층 구조 데이터를 관리할 때 유용합니다.
let matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
console.log(matrix[1][2]); // 6
2.4 초기화 시 주의사항
데이터 타입 혼합
JavaScript 배열은 서로 다른 데이터 타입을 저장할 수 있지만, 이를 부주의하게 다루면 예기치 않은 오류가 발생할 수 있습니다.
let mixed = [1, "text", true];
console.log(typeof mixed[0]); // "number"
console.log(typeof mixed[1]); // "string"
console.log(typeof mixed[2]); // "boolean"
2.5 기본 배열 연산 예시
let animals = ["dog", "cat", "bird"];
console.log(animals[0]); // "dog"
animals.push("rabbit");
console.log(animals); // ["dog", "cat", "bird", "rabbit"]
animals[1] = "lion";
console.log(animals); // ["dog", "lion", "bird", "rabbit"]
요약
이 섹션에서는 JavaScript 배열에 대한 다음 개념들을 설명했습니다:
- 배열의 정의와 역할
- 선언 및 초기화에 대한 기본 구문
- 다차원 배열 및 길이 처리
- 코드 예제를 포함한 초기화 시 중요한 고려 사항
이 지식을 바탕으로 다음 단계인 “기본 배열 연산”에 더 잘 대비할 수 있습니다.
3. 기본 배열 연산 | 요소 추가, 제거 및 검색
3.1 요소 추가 메서드
끝에 요소 추가 – push()
let fruits = ["apple", "banana"];
fruits.push("orange");
console.log(fruits); // ["apple", "banana", "orange"]
시작에 요소 추가 – unshift()
let animals = ["cat", "dog"];
animals.unshift("rabbit");
console.log(animals); // ["rabbit", "cat", "dog"]
3.2 요소 제거 메서드
마지막 요소 제거 – pop()
let colors = ["red", "blue", "green"];
let removed = colors.pop();
console.log(colors); // ["red", "blue"]
console.log(removed); // "green"
첫 번째 요소 제거 – shift()
let numbers = [1, 2, 3, 4];
let removedNumber = numbers.shift();
console.log(numbers); // [2, 3, 4]
console.log(removedNumber); // 1
임의 위치의 요소 제거 – splice()
let sports = ["soccer", "baseball", "basketball", "tennis"];
sports.splice(1, 2);
console.log(sports); // ["soccer", "tennis"]
3.3 요소 검색 메서드
인덱스로 검색
let drinks = ["water", "tea", "coffee"];
console.log(drinks[0]); // "water"
console.log(drinks[2]); // "coffee"
마지막 요소 검색
let cities = ["Tokyo", "Osaka", "Kyoto"];
console.log(cities[cities.length - 1]); // "Kyoto"
첫 번째 일치 요소 검색 – find()
let numbers = [10, 20, 30, 40];
let result = numbers.find(num => num > 25);
console.log(result); // 30
요약
이 섹션에서는 다음 JavaScript 배열 연산을 설명했습니다:
- 요소를 추가하는 방법 (
push()및unshift()) - 요소를 제거하는 방법 (
pop(),shift(),splice()) - 요소를 검색하는 방법 (인덱스 접근,
find(),includes())
이 기본 연산들을 결합하면 배열을 자유롭게 조작할 수 있습니다. 
4. 배열 정렬 및 필터링
4.1 배열 정렬 메서드
오름차순 또는 내림차순 정렬 – sort()
let numbers = [40, 10, 30, 20];
numbers.sort((a, b) => a - b);
console.log(numbers); // [10, 20, 30, 40]
순서 반전 – reverse()
let letters = ["a", "b", "c", "d"];
letters.reverse();
console.log(letters); // ["d", "c", "b", "a"]
4.2 배열 필터링 메서드
조건에 맞는 요소 추출 – filter()
let numbers = [1, 2, 3, 4, 5, 6];
let evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // [2, 4, 6]
조건에 맞는 첫 번째 요소 검색 – find()
let ages = [15, 20, 25, 30];
let firstAdult = ages.find(age => age >= 20);
console.log(firstAdult); // 20
첫 번째 일치 요소의 인덱스 가져오기 – findIndex()
let scores = [50, 70, 85, 40];
let highScoreIndex = scores.findIndex(score => score > 80);
console.log(highScoreIndex); // 2
요약
이 섹션에서는 JavaScript에서 배열을 정렬하고 필터링하는 방법을 설명했습니다:
- 정렬:
sort()와reverse()를 사용하여 순서를 제어 - 필터링:
filter()를 사용하여 일치하는 요소를 추출 - 검색:
find()와findIndex()를 사용하여 요소를 찾음
5. 배열 결합, 분할 및 변환
5.1 배열 결합 메서드
배열 결합 – concat()
let fruits = ["apple", "banana"];
let vegetables = ["carrot", "spinach"];
let combined = fruits.concat(vegetables);
console.log(combined); // ["apple", "banana", "carrot", "spinach"]
스프레드 구문을 사용한 결합
let fruits = ["apple", "banana"];
let vegetables = ["carrot", "spinach"];
let combined = [...fruits, ...vegetables];
console.log(combined); // ["apple", "banana", "carrot", "spinach"]
5.2 배열 분할 메서드
일부분 추출 – slice()
let colors = ["red", "blue", "green", "yellow", "purple"];
let selectedColors = colors.slice(1, 4);
console.log(selectedColors); // ["blue", "green", "yellow"]
요소 제거 또는 교체 – splice()
let languages = ["JavaScript", "Python", "Ruby", "Java"];
languages.splice(1, 2);
console.log(languages); // ["JavaScript", "Java"]
5.3 배열 변환 메서드
배열을 문자열로 변환 – join()
let items = ["apple", "banana", "grape"];
let result = items.join(", ");
console.log(result); // "apple, banana, grape"
문자열을 배열로 변환 – split()
let str = "apple,banana,grape";
let arr = str.split(",");
console.log(arr); // ["apple", "banana", "grape"]
다차원 배열 평탄화 – flat()
let numbers = [1, [2, 3], [4, [5, 6]]];
let flatNumbers = numbers.flat(2);
console.log(flatNumbers); // [1, 2, 3, 4, 5, 6]
요약
이 섹션에서는 배열을 결합, 분할 및 변환하는 다양한 JavaScript 배열 메서드에 대해 설명했습니다:
- 배열 결합:
concat()및 스프레드 구문 - 배열 분할: 추출을 위한
slice(), 제거 또는 교체를 위한splice() - 배열 변환: 문자열 변환을 위한
join()및split() - 평탄화: 중첩 배열을 단일 차원으로 변환하는
flat()

6. 배열 순회 및 고급 기법
6.1 배열 순회를 위한 메서드
for를 사용한 기본 순회
let fruits = ["apple", "banana", "grape"];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
// Output: apple, banana, grape
for...of를 사용한 간소화된 순회
let colors = ["red", "blue", "green"];
for (let color of colors) {
console.log(color);
}
// Output: red, blue, green
forEach() 메서드를 사용한 순회
let animals = ["cat", "dog", "bird"];
animals.forEach((animal, index) => {
console.log(`${index}: ${animal}`);
});
// Output: 0: cat, 1: dog, 2: bird
map()을 사용해 새 배열 만들기
let numbers = [1, 2, 3, 4];
let doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6, 8]
6.2 고급 기법
중복 요소 제거
let numbers = [1, 2, 2, 3, 4, 4, 5];
let uniqueNumbers = [...new Set(numbers)];
console.log(uniqueNumbers); // [1, 2, 3, 4, 5]
배열 평탄화 – flat()
let nested = [1, [2, 3], [4, [5, 6]]];
let flatArray = nested.flat(2);
console.log(flatArray); // [1, 2, 3, 4, 5, 6]
요약
이 섹션에서는 배열 순회 메서드와 고급 기법에 대해 설명했습니다:
- 기본 루프:
for와for...of를 사용한 효율적인 반복. - 메서드 기반 루프:
forEach()와map()을 사용해 더 깔끔하고 함수형으로 처리. - 고급 데이터 조작: 중복 제거 및 중첩 배열 평탄화.
7. 실용 예제 | 배열을 활용한 간단한 애플리케이션 만들기
7.1 To-Do 리스트 애플리케이션 만들기
기능 개요
이 간단한 To-Do 리스트 앱은 다음과 같은 기능을 포함합니다:
- 새 작업 추가
- 완료된 작업 제거
- 현재 작업 목록 표시
코드 예시
let tasks = [];
// Function to add a new task
function addTask(task) {
tasks.push(task);
console.log(`Added: ${task}`);
displayTasks();
}
// Function to remove a task
function removeTask(index) {
if (index >= 0 && index < tasks.length) { let removed = tasks.splice(index, 1); console.log(`Removed: ${removed[0]}`); displayTasks(); } else { console.log("Invalid index"); } } // Function to display current tasks function displayTasks() { console.log("Current Tasks:"); tasks.forEach((task, index) => {
console.log(`${index + 1}: ${task}`);
});
}
// Test execution
addTask("Study JavaScript");
addTask("Create shopping list");
addTask("Check email");
removeTask(1); // Remove the second task
예시 출력
Added: Study JavaScript
Added: Create shopping list
Added: Check email
Current Tasks:
1: Study JavaScript
2: Create shopping list
3: Check email
Removed: Create shopping list
Current Tasks:
1: Study JavaScript
2: Check email
요약
이 섹션에서는 배열 연산을 활용한 실용적인 예제를 소개했습니다:
- To-Do List Application : 작업을 추가, 제거 및 표시하는 연습을 했습니다.
- Search and Data Analysis : 배열 연산을 사용하여 유연한 검색 및 데이터 집계를 구현하는 방법을 시연했습니다.

8. 요약 | 배열 연산 마스터하기
JavaScript 배열은 데이터 관리와 조작을 효율화하는 강력한 도구입니다. 이 기사에서는 기본 연산부터 고급 기술 및 실용적인 예제까지 모두 다루었습니다.
8.1 이 기사 검토
1. 기본 배열 연산
- Declaration and Initialization : 배열을 생성하고 다차원 배열을 다루는 방법을 배웠습니다.
- Adding, Removing, and Retrieving Elements :
push(),pop()등과 같은 메서드를 사용한 동적 데이터 조작을 연습했습니다.
2. 배열 정렬 및 필터링
- Sorting :
sort()와reverse()를 사용해 배열 순서를 변경하는 방법을 설명했습니다. - Filtering :
filter()와find()를 사용해 데이터를 추출하는 방법을 배웠습니다.
3. 배열 결합, 분할 및 변환
- Joining :
concat()와 스프레드 문법을 사용해 배열을 병합하는 방법을 이해했습니다. - Splitting & Transforming :
slice(),splice(),join(),split()을 사용해 유연하게 데이터를 처리했습니다.
4. 반복 및 고급 기술
- Looping : 효율적인 반복을 위해
for,forEach(),map()을 사용했습니다. - Advanced Techniques : 중복을 제거하고 중첩 배열을 평탄화하는 방법을 배웠습니다.
5. 실용 예제
- To-Do List App : 배열 연산을 적용해 기능적인 앱을 만들었습니다.
- Search & Data Aggregation : 실용적인 데이터 필터링 및 분석을 시연했습니다.
8.2 배열 연산의 중요성과 활용 사례
배열 연산이 중요한 이유는?
배열 조작은 데이터를 조직하고, 분석하며, 표시하는 데 필수적입니다. 일반적인 시나리오는 다음과 같습니다:
- Data Management and Display : API 데이터를 필터링하고 테이블에 결과를 표시합니다.
- Form and User Input Handling : 리스트를 동적으로 업데이트하거나 입력 값을 처리합니다.
- Search and Sorting Functions : 대규모 데이터셋을 효율적으로 처리합니다.
- Application Development : 쇼핑 카트나 작업 관리와 같은 UI 기능을 구축합니다.
8.3 학습 다음 단계
1. 배열 메서드 추가 활용
- Suggested Task : API 데이터를 가져와 배열 연산으로 결과를 필터링하는 앱을 만들어 보세요.
2. 다른 데이터 구조와 비교 및 활용
- Objects, Set, Map을 학습하여 각 상황에 맞는 구조를 선택하세요.
3. JavaScript 프레임워크에 지식 적용
- React나 Vue.js와 같은 프레임워크에서 배열 기술을 활용해 실제 개발에 적용하세요.
8.4 참고 링크 및 자료
- MDN 웹 문서: Array 객체 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array
- JavaScript.info: 배열 및 메서드 https://javascript.info/
8.5 최종 생각 및 독자에게 조언
JavaScript 배열 연산은 탄탄한 프로그래밍 기초를 구축하는 데 필수적입니다. 이 글은 기본부터 고급 개념까지 구조화된 접근 방식을 제공했습니다.
조언
- 코드를 직접 작성하며 연습하기 : 각 메서드를 테스트하여 이해도를 높이세요.
- 문제 해결 능력 개발 : 실제 작업을 프로그램으로 변환하여 실무 역량을 강화하세요.
- 학습을 지속하기 : 새로운 프레임워크와 최신 기술을 배우며 스킬셋을 향상시키세요.
다음 단계로 나아가기!
이 글을 기반으로 더 복잡한 애플리케이션을 구축하거나 최신 프레임워크를 학습하는 데 활용하세요.
FAQ | 자주 묻는 질문
Q1. map()과 forEach()의 차이점은 무엇인가요?
map(): 각 요소에 함수를 적용한 후 새로운 배열을 반환합니다.forEach(): 각 요소에 함수를 실행하지만 새로운 배열을 반환하지 않습니다.
예시:
let numbers = [1, 2, 3];
// map()
let doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6]
// forEach()
numbers.forEach(num => console.log(num * 2));
// Output: 2, 4, 6
Q2. 숫자를 올바르게 정렬하려면 어떻게 해야 하나요?
기본적으로 sort()는 값을 문자열로 비교합니다. 숫자를 수치적으로 정렬하려면 비교 함수를 전달해야 합니다.
예시:
let numbers = [40, 100, 1, 5, 25];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 5, 25, 40, 100]
Q3. 배열에서 중복을 제거하려면 어떻게 해야 하나요?
Set 객체를 사용하면 중복을 쉽게 제거할 수 있습니다.
예시:
let numbers = [1, 2, 2, 3, 4, 4, 5];
let uniqueNumbers = [...new Set(numbers)];
console.log(uniqueNumbers); // [1, 2, 3, 4, 5]
Q4. 배열에 특정 요소가 존재하는지 확인하려면 어떻게 해야 하나요?
includes() 메서드를 사용하여 배열에 특정 값이 포함되어 있는지 확인합니다.
예시:
let fruits = ["apple", "banana", "grape"];
console.log(fruits.includes("banana")); // true
console.log(fruits.includes("melon")); // false
Q5. 다차원 배열을 평탄화하려면 어떻게 해야 하나요?
flat() 메서드를 사용하여 중첩된 배열을 단일 레벨 배열로 변환합니다.
예시:
let nested = [1, [2, 3], [4, [5, 6]]];
let flatArray = nested.flat(2);
console.log(flatArray); // [1, 2, 3, 4, 5, 6]



