대니
danny's blog@dannywon_dev
발행 25 · 대기 88

1인 개발자. 클로드 코드를 팀처럼 굴린다. 매일 겪은 것만 쓴다.

클로드 코드

QR 코드가 갈랐다 — 판매 완료와 비공개를 한 칸으로 합칠 뻔했다

관람객에게 안 보인다는 결과는 같았다. 벽에 붙은 QR 라벨을 떠올린 뒤에 달라졌다.

갤러리가 전시에 거는 작품을 관리하는 화면을 만들고 있었다. 요청이 두 개 들어왔다.

  • "팔린 작품은 관람객에게 안 보이게 해줘"
  • "작품마다 공개/비공개를 켜고 끄게 해줘"

처음엔 같은 요청으로 보였다. 둘 다 결과가 **「관람객에게 안 보인다」**로 똑같다. 스위치를 하나만 만들고 「판매되면 자동으로 비공개」로 묶으면 화면도 단순해지고 코드도 준다.

그래서 물어봤다. 답이 이랬다.

판매 완료는 전시가 시작된 뒤에 팔린 경우다. 큐레이터가 현장에서 켠다. 비공개는 전시 시작 전에 「이건 안 건다」고 정한 것이다. 실제로 벽에도 안 걸린다.

결과가 같아 보인 건 화면 한 곳만 봤기 때문이다

작품마다 QR 코드가 있고, 그걸 찍으면 그 작품 이야기를 들을 수 있다. 그 QR을 붙인 라벨은 벽에 붙어 있다. 이걸 떠올린 순간 두 경우가 완전히 갈렸다.

  • 팔린 작품 — 라벨이 벽에 그대로 붙어 있다. 관람객이 그 앞에 서서 찍는다. 그때 「없는 작품입니다」가 뜨면? 방금 눈앞에서 본 그림인데. 찍었는데 없다고 하면 더 당황한다.
  • 안 건 작품 — 벽에 아예 없다. 라벨이 나갈 일이 없다. QR로 들어올 경로도 없고, 혹시 예전에 인쇄한 게 남아 있다면 오히려 막아야 한다.

목록에서는 둘 다 빠지지만, QR로 직접 들어왔을 때는 정반대로 처리해야 한다.

스위치를 하나로 합쳤다면 이 차이를 표현할 방법이 없다. 그리고 이건 나중에 발견된다 — 전시가 열리고, 작품이 팔리고, 누군가 그 앞에서 QR을 찍는 순간에.

내가 본 건 목록 화면 하나였다. 거기서는 정말로 같았다. 다른 경로가 있다는 걸 떠올린 건 「그 라벨이 실제로 어디 붙어 있나」를 물은 뒤였다.

바꾼 것

  • 저장하는 칸을 두 개로 뒀다. 「팔림」과 「안 걸기」는 각자의 칸을 갖는다
  • 목록에서는 둘 다 뺀다. 여기서는 결과가 같은 게 맞다
  • QR로 직접 들어오면 갈린다 — 팔린 작품은 열어주고, 안 건 작품은 막는다
  • 각 칸의 설명에 왜 합치지 않았는지를 적었다. 안 적으면 다음에 보는 사람이 「이거 하나로 합칠 수 있는데?」라고 다시 제안한다

합치는 판단은 싸고 가르는 값은 비싸다

한 칸으로 합쳤다가 나중에 갈라야 하면, 이미 쌓인 데이터를 둘로 나눠야 한다. 그런데 그 데이터에는 어느 쪽이었는지가 남아 있지 않다. 팔려서 꺼진 건지, 처음부터 안 걸어서 꺼진 건지 구분할 근거가 없다.

판단 기준을 한 줄로 남기면 이렇다.

결과가 같은지 보지 말고, 그 상태에 이르는 「경위」가 다른지 본다. 경위가 다르면 언젠가 다르게 다뤄야 할 자리가 나온다.

← 목록으로