◾DB에 배열 데이터 저장하기, 가능할까?
DB에 데이터를 저장하다보면 배열 데이터를 저장해야하는 경우가 있다. 특정 데이터인 배열(리스트) 데이터를 저장하려면 어떻게 해야할까? 일반적으로 생각하는 리스트 [] 형태로 저장이 될까?
결론은, 일반적인 데이터베이스에서는 배열 타입을 직접 지원하지 않는 경우가 많아, 배열 데이터를 저장할 떄는 string으로 변환해서 저장하는 방식이 자주 사용된다고 한다. 즉 문자열로 파싱해서 저장해야한다.
이 부분에 대해서는 데이터베이스마다 차이는 있다. `mysql`은 배열 타입이 없기 때문에 이 포스팅에서 진행하는대로 문자열로 변환해서 저장해야한다. `postgresql`의 경우는 진짜 배열 타입을 지원한다고 한다.
본 글에서는 일반적으로 많이 사용되는 문자열로 파싱해서 저장하고, 다시 꺼내 사용하는 방법을 알아보자.
◾DB에 배열 데이터 저장하기
문자열로 파싱해서 저장
Javascript로 예를 들어보자
const color = ['red', 'pink', 'white', 'blank'];
위와 같은 배열 데이터가 있다면,
DB에 저장할 떄는 JSON 문자열로 바꿔서 저장할 수 있다.
const colorStr = JSON.stringify(color); //'['red', 'pink', 'white', 'blank']'
그렇다면 colorStr은 다음과 같은 형태이다.
const colorStr = '['red', 'pink', 'white', 'blank']';
◾DB에서 데이터 꺼내 사용하기
사용할 떄는 DB에서 꺼낸 후 다시 배열 형태로 파싱해서 사용하면 된다.
JSON.stringify() 메서드로 배열 → 문자열 형태로 만들었으므로, JSON.parse()형태로 다시 문자열 → 배열 형태로 만들어 쓰면 된다.
const color = JSON.parse(colorStr); // ['red', 'pink', 'white', 'blank'];
( JSON.stringify() 와 JSON.parse()메서드는 따로 포스팅을 할 예정이다. )
반응형
'웹 개발 > db' 카테고리의 다른 글
[Redis] Redis 기본 명령어 (0) | 2025.05.11 |
---|---|
[Redis] Redis 설치 후 접속하기 (Windows) (0) | 2025.05.10 |
[h2/error] database not found 에러 해결하기 (0) | 2024.01.27 |
[mysql/error] ERROR 1064 (42000): You have an error in your SQL syntax 에러 (0) | 2024.01.18 |
[mysql] 컴퓨터에 MySQL 환경변수 설정하기 (2) | 2023.12.07 |