[트러블 슈팅] 전체 데이터가 조회되지 않은 문제 해결하기

개발냥이·2025년 2월 17일

트러블 슈팅

목록 보기
1/8
post-thumbnail

개요

Map 자료구조를 이용하여 get 메소드를 공부하던 중 각각 특정 데이터(하나씩)는 조회가 잘 되었지만 전체 데이터는 조회가 되지 않은 오류 가 발생했다 ㅠㅠ


코드 살펴보기

// 데이터 세팅
let youtuber1 = {
  channelTitle: '십오야',
  sub: 7000000,
  videoNum: 1000,
};

let youtuber2 = {
  channelTitle: '침착맨',
  sub: 3000000,
  videoNum: 7000,
};

let youtuber3 = {
  channelTitle: 'Teo',
  sub: 2500000,
  videoNum: 1600,
};

let db = new Map();
var id = 1;

db.set(id, youtuber1);
db.set(++id, youtuber2);
db.set(++id, youtuber3);

이런식으로 먼저 데이터를 Map 자료구조를 이용하여 데이터를 세팅했다.

app.get('/youtubers', (req, res) => {
  res.json(db);
});

여기서 get 메소드로 전체 데이터를 조회하는 api를 작성했으나...

포스트맨으로 테스트 과정에서 오류도 안뜨고 아무것도 조회가 되지 않았다 ㅜㅜ


1번째 시도 db.get() 사용

오류는 나지 않았기에 가져오는 부분에서 문제가 있을거라 생각했고 api 응답부분에서
res.json(db); => res.json(db.get());
으로 사용해보았으나 여전히 아무것도 조회가 되질않았다 ㅠㅠ

그런던 중 get안에 id값을 넣었더니 res.json(db.get(id))
특정 데이터만 조회되는 것을 보고
Map.get()은 특정 데이터만 조회 한다는 것을 알게 되었다.

2번째 시도 Array.from() 사용

어떻게 하면 특정 데이터가 아닌 전체 데이터를 가져올 수 있을까 서치하던 중 Array.from()을 알게 되었다 이 메소드는 이름처럼 배열로 변환해주는 메소드이다
const showData = Array.from(db);
res.json(showData);

이제 등록해두었던 데이터들이 잘 조회가 된다!!


느낀점

API로 통신하는 과정에서 자료구조와 데이터의 형태가 중요하다는 것을 깨달았다.
특정 데이터를 하나씩 조회하는 것은 잘 되었기에 이런 오류는 예상하지 못했었는데 이런 오류가 발생하여 하나 배워가게 된 거 같다 👍👍

profile
웹 개발자가 되고픈

0개의 댓글