SMILELY 2025. 3. 14. 10:25

1. 이미지가 안 나와요!

아이템의 이미지를 화면에 렌더링하기 위해 라이엇 공홈에서 제공하는 url를 사용해서 넣어줬다

하지만 이런 에러를 만나게 되었다

url의 마지막 부분에 이미지의 아이디를 넣었을 때 이미지를 잘 가져오는지 테스트 해보았다

이상이 없다

해결 : 에러메시지에 적혀있는 see more info(https://nextjs.org/docs/messages/next-image-unconfigured-host)를 따라갔다

이미지를 사용하기 위해서는 next.config.js를 수정해야한다는 것을 알게 되었다

module.exports = {
  images: {
    remotePatterns: [
      {
        protocol: 'https',
        hostname: 'assets.example.com',
        port: '',
        pathname: '/account123/**',
        search: '',
      },
    ],
  },
}

hostname과 pathname에 내가 이미지를 가져오는 주소를 분할해서 넣어주면 끝!

 

.....

저렇게 pathname에 item을 박아버리면 저 버전의, 아이템 목록만 가지고 온다

그래서 나중에 챔피언 할 때는 이미지 경로를 어떻게 해야하는거지 생각하고 있었는데

팀스크럼하다가 해결방법을 알게 되었다

pathname에 /**만 넣어주면 전체를 가져오는걸로 인식을 한다!

이 부분만 수정해주니 이후 챔피언 목록의 이미지를 가져올 때도 잘 작동하였다


2. 어떤 값은 잘 나오고 어떤 값은 그냥 object라고 뜬다?

api에서 data 받아와서 콘솔로 값을 확인해보는데 분명 타입을 다 넣어줬는데도 값이 안나오는 것들이 있었는데 객체나 배열이었다

위에서 items를 받아올 때와 똑같은 로직인데 왜 안되는건지 이상하다고 생각했다

왜냐면 image안에 들어있는 값을 확인했기 때문에 url을 수정해서 넣어줄 수 있었기 때문이다

지금은 안되는데 왜 그때는 됐을까 

비밀은 간단했다

그때는 아이템 전체도 출력해봤지만 아이템 하나만도 출력해봤던 것!!!

거기에서 이미지 객체 안에 든걸 확인했었나보다

 

보통 브라우저에서 콘솔찍으면 객체나 배열은 접힌 상태로 나오는데 그걸 펼쳐서 확인할 수 있다

지금은 서버 컴포넌트라서 펼칠 수 없어서 이미지는 화면에 잘 나오는데 콘솔창에서만 Object로 나왔던 것이다

 

해결된 김에 객체나 배열로 된 타입들은 분리를 해줬다

그래서 챔피언을 불러올 때, 아이템들을 불러올 때 타입 객체를 재사용할 수 있게 되었다 굳!