PromleeBlog
sitemap
aboutMe

posting thumbnail
코딩 테스트를 위한 자바스크립트 사용법 (중) - 배열과 객체, Set, Map
JavaScript for Coding Tests (Part 2) - Arrays, Objects, Set, Map

📅

🚀

들어가기 전에 🔗

오늘은 코딩 테스트 문제 풀이의 핵심 재료라고 할 수 있는
배열(Array)
객체(Object)
를 어떻게 하면 더 효과적으로 사용할 수 있는지 깊이 있게 파헤쳐 볼 거예요.
특히 자바스크립트 배열이 제공하는 강력한 내장 메서드들은 잘 활용하면 복잡한 로직도 몇 줄 만에 깔끔하게 처리할 수 있답니다.
더불어, 코드를 더 짧고 읽기 쉽게 만드는
간결성 팁
들과 함께, SetMap이라는 유용한 자료구조도 살짝 맛보는 시간을 갖겠습니다.

🚀

배열 고급 활용 🔗

배열은 순서가 있는 데이터의 목록을 저장하는 데 사용됩니다.
코딩 테스트에서는 입력 데이터를 저장하거나, 계산 결과를 담아두거나, 알고리즘을 구현하는 과정에서 정말 많이 사용됩니다.
자바스크립트 배열의 강력한 메서드들을 익혀두면 큰 힘이 될 거예요.

핵심 배열 메서드 🔗

자주 사용되는 핵심 메서드들을 예시와 함께 알아봅시다.

메서드 체이닝 (Method Chaining) 🔗

map, filter, reduce, sort 등 새로운 배열을 반환하거나 원본 배열을 변경하는 메서드들을 연결하여 사용하면 코드를 간결하게 만들 수 있습니다.
const numbers = [1, 2, 3, 4, 5];
const result = numbers
  .filter(num => num % 2 === 0) // 짝수만 필터링:
  .map(num => num * 10)       // 각 요소에 10 곱하기:
  .reduce((acc, cur) => acc + cur, 0); // 모든 요소 더하기: 100
 
console.log(result); // 출력: 100

🚀

객체 활용법 🔗

객체는 이름(키, key)과 값(value)으로 이루어진 속성(property)들의 모음입니다.
순서가 보장되지 않으며(최신 JS에서는 일부 순서 보장 특성 있음), 특정 이름(키)을 통해 값에 빠르게 접근할 수 있습니다.

객체 생성 및 기본 조작 (복습) 🔗

객체 순회하기 🔗

객체의 모든 키-값 쌍을 순회하는 방법은 여러 가지가 있습니다.

구조 분해 할당 (Destructuring Assignment) 🔗

객체나 배열의 속성을 개별 변수에 쉽게 할당할 수 있게 해줍니다. 코드를 매우 간결하게 만듭니다.
const book = { title: "모던 JavaScript 튜토리얼", author: "이웅모", price: 30000 };
 
// 기존 방식
// const title = book.title;
// const author = book.author;
 
// 구조 분해 할당
const { title, author, price } = book;
console.log(title);   // 출력: "모던 JavaScript 튜토리얼"
console.log(author); // 출력: "이웅모"
 
// 일부 속성만 가져오거나, 변수 이름 변경도 가능
const { title: bookTitle, price: bookPrice } = book;
console.log(bookTitle); // 출력: "모던 JavaScript 튜토리얼"
console.log(bookPrice); // 출력: 30000

객체 리터럴 단축 속성명 (Shorthand property names) 🔗

객체를 생성할 때, 키 이름과 값으로 사용할 변수 이름이 같다면 한 번만 적어줄 수 있습니다.
const name = "Alice";
const age = 20;
 
// 기존 방식
// const person = { name: name, age: age };
 
// 단축 속성명 사용
const person = { name, age };
console.log(person); // 출력: { name: 'Alice', age: 20 }

계산된 속성명 (Computed property names) 🔗

객체 리터럴 내에서 대괄호 []를 사용하여 표현식의 결과값을 키 이름으로 사용할 수 있습니다.
const prefix = "user_";
let count = 0;
const users = {
  [prefix + ++count]: "Alice", // 키가 'user_1'
  [prefix + ++count]: "Bob",   // 키가 'user_2'
  [prefix + ++count]: "Charlie" // 키가 'user_3'
};
console.log(users); // 출력: { user_1: 'Alice', user_2: 'Bob', user_3: 'Charlie' }

🚀

기본 자료구조: Set과 Map 🔗

배열과 객체 외에도 코딩 테스트에서 유용하게 쓰일 수 있는 SetMap 자료구조가 있습니다.

Set - 중복 없는 값들의 집합 🔗

순서가 없으며, 동일한 값을 중복해서 저장할 수 없습니다.
값의 추가(add), 삭제(delete), 포함 여부 확인(has) 연산이 평균적으로 O(1)으로 매우 빠릅니다.

Map - 키-값 쌍 저장소 🔗

객체와 유사하게 키-값 쌍을 저장하지만, 키로 사용할 수 있는 값의 타입이 문자열뿐만 아니라
모든 타입
(객체, 함수 포함)으로 훨씬 자유롭습니다.
값의 추가(set), 조회(get), 삭제(delete), 포함 여부 확인(has) 연산이 평균적으로 O(1)입니다.
size 속성으로 요소 개수를 쉽게 알 수 있습니다.

🚀

결론 🔗

이번
중(中) 편
에서는 코딩 테스트의 핵심 도구인 자바스크립트 배열과 객체의 다양한 활용법을 깊이 있게 살펴보았습니다.
특히 map, filter, reduce와 같은 강력한 배열 메서드와 객체 순회 및 조작 방법, 그리고 SetMap 자료구조는 문제 해결의 효율성을 크게 높여줄 것입니다.
더불어, 메서드 체이닝, 구조 분해 할당, 화살표 함수 등 코드를 더욱 간결하고 읽기 쉽게 만드는 팁들도 함께 익혔습니다.
다음 마지막
하(下) 편
에서는
알고리즘 구현에 필수적인 시간 복잡도 개념
을 이해하고,
정렬(Sort) 알고리즘 심층 분석, 재귀(Recursion), 그리고 스택(Stack), 큐(Queue), 해시 테이블(Hash Table)과 같은 필수 자료구조
를 자바스크립트로 어떻게 효과적으로 다룰 수 있는지 알아보겠습니다.

참고 🔗