파싱이란?

이종훈·2025년 4월 13일
2

개발 일지

목록 보기
8/21
post-thumbnail

개요


프로젝트에서 특정 테이블의 imageUrl이라는 column에서 url 값을 반환한 후 원하는 key값을 추출하는 기능 구현을 담당하였습니다.
이때 imageUrl column은 하나의 id에 여러 개의 url 값을 담기위해 문자열 JSON 형태로 지정하였습니다.
그런데 여러 개의 url들에 대해 key값을 추출하려면 JS의 foreach 메서드를 사용해야 하는데, 문자열 JSON 형태의 경우에는 해당 메서드가 동작하지 않아 에러가 발생하였습니다.


파싱이란?

파싱(parsing)이란, 문자열 데이터를 구조화된 데이터(객체, 배열 등)로 바꾸는 과정을 말합니다. 쉽게 말하면 문자열 형태의 데이터를 → 컴퓨터가 쓸 수 있는 형태(예: 배열, 객체 등)로 바꾸는 작업을 말합니다.
현재 문제 상황에서 imageUrl column은 문자열 데이터이기 때문에, 배열에서만 사용할 수 있는 foreach()메서드를 사용하기 위해서는 파싱을 통해 문자열 데이터를 배열 형태로 바꿔줘야 합니다.


적용

현재 상황에 파싱을 적용하여 해결하는 방법은 다음과 같습니다.

const parsedImages = JSON.parse(celebrationMsg.imageUrl);

      if (Array.isArray(parsedImages)) {
        parsedImages.forEach((imgUrl: any) => {
          if (typeof imgUrl === 'string') {
            urlsToDelete.push(imgUrl);
          }
        });
      } else {
        console.warn("imageUrl이 배열이 아닙니다.:", celebrationMsg.imageUrl);
      }

celebrationMsg.imageUrl은 문자열인 JSON 배열이기 때문에 parse를 통해 파싱 해줍니다.
정상적으로 파싱이 되었다면 foreach()를 통해 각 url값을 특정 배열에 push하고, 그렇지 않다면 에러 처리를 합니다.
해당 코드를 실행하면 db에 저장된 imageUrl값이 정상적으로 추출됨을 알 수 있었습니다.

profile
종훈리의 개발일지

3개의 댓글

comment-user-thumbnail
2025년 4월 14일

Json 파싱할때 타입 안맞아서 엄청 고생한 기억이.... ㄷㄷ

답글 달기
comment-user-thumbnail
2025년 4월 18일

제이슨 파싱이라는 사람이 있을까요?

1개의 답글