배열(Array)과 객체(Object), 실무에서 어떻게 구분해 쓸까?

1. 주제 소개
JavaScript에서 데이터를 다룰 때 가장 자주 만나는 구조가 배열(Array)과 객체(Object)입니다. 둘 다 값을 담지만 기준이 다릅니다. 순서가 중요하면 배열, 이름(키)로 찾고 싶으면 객체라고 기억하면 실무 판단이 빨라집니다.
2. 핵심 내용
배열(Array): 순서가 있는 목록
배열은 인덱스(0, 1, 2...)로 데이터를 관리합니다. 게시글 목록, 댓글 리스트, 장바구니 상품처럼 "여러 항목을 순서대로" 다룰 때 적합합니다.
객체(Object): 속성 이름이 있는 묶음
객체는 키(key)-값(value) 형태로 데이터를 보관합니다. 사용자 정보처럼 name, email, role처럼 의미 있는 이름으로 접근할 때 편리합니다.
실무에서는 함께 쓴다
현실 데이터는 대부분 "객체들의 배열" 형태입니다. 예를 들어 사용자 목록은 배열이고, 배열 안 각 사용자 한 명은 객체입니다.
3. 적용 방법
데이터를 설계할 때 먼저 질문해 보세요. "이 데이터는 여러 개가 반복되는가?" 그렇다면 배열, "한 개 항목의 속성은 무엇인가?" 그렇다면 객체입니다. 아래 표를 기준으로 구분하면 실수가 줄어듭니다.
| 판단 기준 | 배열(Array) | 객체(Object) |
|---|---|---|
| 접근 방식 | 인덱스 번호로 접근 | 키 이름으로 접근 |
| 적합한 데이터 | 목록, 순서 있는 집합 | 한 대상의 상세 정보 |
| 실무 예시 | 상품 목록, 댓글 리스트 | 상품 1개 정보, 사용자 프로필 |
4. 정리
배열은 "나열", 객체는 "설명"에 강합니다. 둘을 분리해서 생각하면 데이터 모델링이 명확해지고, API 응답 구조를 이해하거나 프론트 화면에 매핑할 때도 훨씬 수월해집니다.
5. 자주 묻는 질문
Q1. 객체 안에 배열을 넣어도 되나요?
네, 매우 흔한 패턴입니다. 예를 들어 주문 객체 안에 상품 배열을 넣어 주문 상세를 표현할 수 있습니다.
Q2. 배열 대신 객체만 써도 되나요?
가능하지만 순서 기반 처리나 반복 렌더링이 불편해질 수 있습니다. 데이터 특성에 맞게 배열과 객체를 조합하는 것이 가장 좋습니다.