미술 여행을 앞둔 사람이 가장 먼저 부딪히는 질문은 "그 그림이 어디 있지?"다. 요청은 "유명 화가의 작품이 어느 미술관에 있는지 보여 주는 웹사이트"였다. 처음에는 흔한 아이디어라고 판단했다. 구글 아트 앤 컬처와 위키백과 목록이 이미 있기 때문이다. 그래서 목표를 "작품 목록"에서 "여행 지도"로 옮겼다. 화가를 누르면 지도에 핀이 찍히고, 핀을 누르면 그 미술관에 있는 그림이 나오는 구조다. ghmun.com/painting 에 있다.
데이터는 어디서 왔나
그림 수십만 점의 소장처를 사람이 입력할 수는 없다. 위키데이터에는 그림마다 작가, 소장처, 이미지가 기록돼 있고, 소장처로 적힌 미술관에는 좌표가 붙어 있다. 질의 하나로 "반 고흐가 그린 그림 가운데 소장처 좌표가 있는 것"을 뽑아 보니 884건이 나왔다. 반 고흐 미술관 223점, 크륄러 뮐러 미술관 194점, 오르세 23점, 메트로폴리탄 21점 순이었다. 이 정도면 되겠다고 보고 화가를 넓혀 갔다.
화가 이름은 검색으로 찾은 첫 번째 결과를 그대로 쓰면 틀린다. "Raphael"은 사람 이름 항목이 먼저 나왔고, "Diego Velázquez"는 아르헨티나 배우가, "Giotto"도 이름 항목이 먼저 나왔다. 검색 결과의 설명 줄을 읽어 화가가 맞는지 하나씩 확인하고, 틀린 네 곳은 번호를 직접 지정했다.
이미지가 없는 화가들
수집 결과에서 피카소는 3점, 달리는 3점, 프리다 칼로는 1점뿐이었다. 위키데이터에 이미지가 있는 작품만 골랐기 때문이다. 저작권이 남은 20세기 작가의 그림은 이미지가 올라와 있지 않다. 그래서 이 화가들은 이미지를 필수 조건에서 빼고 다시 수집했다. 피카소는 1,374점, 달리는 602점으로 늘었다. 대신 화면에서는 썸네일 자리에 작품 제목이 나온다. 그림은 못 보여 줘도 "게르니카가 어느 도시에 있는가"는 알려 줄 수 있다.
한국 작가를 뺀 이유
이중섭과 박수근은 소장처 기록이 아예 없어서 수집 결과가 비어 있었고, 김환기는 5점뿐이었다. 한국 작가를 지도에 제대로 넣으려면 국립현대미술관과 리움의 소장 목록을 따로 조사해야 한다. 사용자는 한국 작가는 굳이 넣지 말고 해외 유명 작가 위주로 하자고 했다. 그래서 56명으로 정리했다.
화면
- 화가 중심. 목록에서 화가를 고르면 그 화가의 소장 미술관에만 핀이 남는다. 핀 크기와 숫자는 보여 주는 작품 수를 뜻한다.
- 핀에서 그림으로. 핀을 누르면 썸네일 격자가 열리고, 썸네일을 누르면 큰 그림과 원본 링크가 열린다.
- 미술관에서 화가로. 화가를 고르지 않고 핀을 누르면 그 미술관에 작품이 있는 화가가 단추로 나온다. 누르면 그 화가로 지도가 바뀐다.
- 묶음 핀. 유럽처럼 핀이 몰린 곳은 숫자 원 하나로 묶고, 확대하면 풀리게 했다. 처음에는 묶음 핀이 네모로 나왔는데, 라이브러리의 기본 모양 파일 하나를 빠뜨렸기 때문이었다.
- 바탕과 글꼴. 스웨덴 지도와 같은 Esri 회색 캔버스 지도, 반투명 유리 패널, Pretendard 글꼴이다. 휴대폰에서는 패널이 아래로 내려가 접을 수 있다.
12점 제한을 없앤 이유
처음에는 반 고흐 미술관에만 223점이 있어서 팝업이 끝없이 길어질까 걱정했다. 그래서 화가마다 미술관당 12점까지만 싣고, 위키백과 항목이 많은 작품부터 골랐다. 그런데 지도에 찍힌 숫자와 목록의 숫자가 서로 맞지 않았고, 미술관 소장품 목록을 열어도 일부만 보였다. 사용자가 12점 제한을 없애자고 했다. 제한을 풀자 작품은 13,532점에서 21,503점으로, 데이터 파일은 약 1.8MB에서 2.7MB로 늘었다. 이미지는 보이는 것부터 불러오게 해서 목록이 길어도 한꺼번에 내려받지 않는다.
내가 본 그림은 얼마나 될까
사용자가 다녀온 미술관을 체크하면 그 화가들의 작품을 얼마나 봤는지 보여 주자고 했다. 계산은 단순하다. 체크한 미술관에 있는 작품은 모두 봤다고 치고, 화가별로 (체크한 미술관의 작품 수) / (그 화가의 전체 작품 수)를 구한다. 반 고흐 미술관, 오르세, 암스테르담 국립미술관 세 곳만 체크해도 반 고흐는 670점 중 245점(37%)으로 나온다. 화가 목록에 진행 막대를 붙이고, 많이 본 화가부터 정렬하는 단추도 만들었다. 체크한 미술관의 핀은 초록색으로 바뀌고, 핀이 몰린 묶음도 전부 다녀온 곳이면 초록색이 된다. 체크 기록은 먼저 브라우저의 localStorage에 저장한다.
기기를 바꾸면 기록이 사라지는 문제는 로그인으로 풀었다. ghmun.com에는 구글 로그인 모듈과 공유 Supabase 프로젝트가 이미 있어서, 다녀온 미술관을 담는 테이블 하나(painting_visited)만 새로 만들었다. 로그인하면 계정의 기록과 이 브라우저의 기록을 합치고, 그 뒤로는 체크하거나 해제할 때마다 계정에도 반영한다. 합칠 때는 어느 쪽 기록도 지우지 않기 때문에, 한 기기에서 해제한 미술관이 다른 기기의 기록 때문에 다시 살아날 수 있다. 로그인하지 않은 사람에게는 서버 요청이 전혀 가지 않는다.
이 숫자는 실제로 본 그림이 아니라 "갈 수 있었던 그림"에 가깝다. 전시 중이 아닌 작품도 섞여 있고, 위키데이터에 기록되지 않은 작품은 분모에도 분자에도 들어가지 않는다. 그래서 화면에는 가정이라는 설명을 함께 적었다.
정확도에 대해
위키데이터의 소장처는 "이 미술관이 소장한다"는 기록이다. 지금 걸려 있는지는 모른다. 대여 중이거나 수장고에 있는 작품도 있고, 오래된 기록이 그대로 남은 경우도 있다. 그래서 소개 글에 전시 여부는 미술관 누리집에서 확인하라고 적었다. 소장처는 같은 도시의 서로 다른 미술관이 같은 좌표 근처에 겹칠 수 있어서, 핀이 겹쳐 보이는 곳은 확대해서 누르면 된다.
다음에 할 수 있는 것
- 미술관 중심 보기. 도시를 고르면 하루 동선으로 묶어 보여 주는 화면이다.
- 작은 소장처를 걸러 내는 옵션. 지금은 화가 한 명에 미술관이 수백 곳 나오는 경우가 있다.
- 영어판.