진짜 뭔놈의 바카라을 이렇게 많이 샀는지 나도 모르겠다
사자의 풀밭은 열심히 AWS로 이전하여 속도 최적화를 마치고 오픈했으나 코딩보다 병원에 열심히 다닌 것 같은데(농담으로 주병야코라고...) 왠지 눈에 대상포진을 얻어 1주일 치료하고 어쩌고 하니 대충 또 오픈 후 한달의 시간이 흐르고 말았다.
나는 코딩은 코덱스가 해주고 단순한 구조니까 금방 만들 줄 알았는데, 9월 초에 시작해서 지금의 v1까지 약 석 달의 시간이 필요했다. 그리고 그 시간의 1/3은 내가 가진 바카라을 등록하면서 보낸 것이었다. 웹소설(길어서 못읽음) 말고는 거의 모든 형태의 바카라을 가지고 있어서 개발에는 큰 도움이... 되었으나 그냥 등록하는 자체에 시간이 많이 걸렸다. 하지만 내 꿈은 현실에서는 가질 수 없는 무한 스크롤의 장에 사이버 고양이 빌딩(바카라만을 위한 다치바나 다카시의 바카라장용 빌딩)을 만드는 것이었기에 전자바카라을 포함해 가진 바카라을 다 등록하는 것을 포기할 수는 없었다. 그래서 굳이 실물 바카라장같은 약간 스큐어모피즘스러운 디자인을 채택한 것이다.
처음에는 함수 실행마다 돈을 매기는 서버리스 서비스(vercel)에 올릴 생각이었기 때문에 로컬호스트(내 컴퓨터)를 이용해서 최대한 많은 바카라을 등록하는 것이 목표였다. 그리고 머리가 낡아서 5년 전부터는 바카라 읽은 목록과 간략한 감상을 트위터, 블루스카이 등에 올리고 그걸 수동복사해서 노션에 백업해둔 게 있어서 그것을 사자의 풀밭으로 옮기고자 했다.
https://cream-turn-034.notion.site/c501ac63daf44a888fb654c5fc78a822?source=copy_link
아직 노션은 무료로 쓰고 있다. IT대기업 여러분은 특히 AI 이후로는, 무료 유저의 데이터는 보호하지 않는 게 2025년의 상식이 되었기 때문에 더욱더 그래야 했다.
등록하고 나니 내가 가진 바카라이 전자바카라 반 종이바카라 반 해서 1246권인가? 그정도 되었다. 그리고 바카라 사는 걸 더 좋아하는 적독인의 특성상 또 늘어날 것이다. 나는 오프라인보다 온라인 바카라 쇼핑을 선호... 가 아니라 육체 상태때문에 강제로 그렇게 되었기 때문에 90%정도는 알라딘(종이바카라) / 리디북스(전자바카라)에서 사긴 했다. 이 서점들에서는 엑셀 데이터를 제공한다는 것을 알게 되었다. https://www.postype.com/@lionsgrass/post/20912558
그래서 이 구매목록을 다운받아서 공통 바카라 DB에 등록하는 것부터가 시작이 되었고, 그를 위해 서버에서 돌아가는 파이썬 프로그램 이외에 엑셀에 있는 바카라을 뽑아서 올리는 단독 프로그램 - 알라딘, 리디북스 포맷을 따로 만들고, 노션 데이터를 변환해서 올리는 프로그램을 따로 만들어야 했다. 이것을 보통 스크립트라고 하므로 통칭 스크립트라고 하자. 그것을 만들고 실행하면서 생긴 대환장파티(...)에 대해 얘기하고자 한다.
사람이 검수해야 하는 게 너무 많아서 리퀘스트 기능으로 만들 정도였지만, 처음 몇 번이 힘들지 데이터 등록 몇 번을 거치고 나면 스크립트도 개선이 될 거라고 생각하기 때문에 리퀘스트를 하는 걸 너무 저어하지는 않으셨으면 한다. 여러분의 요청과 서비스 사용이 더 좋은 서비스를 만듭니다.
한 프로그램에서 보통 100개 미만의 데이터를 다른 프로그램으로 옮긴다(이런 과정을 판교 용어로는 마이그레이션 Migration이라고 한다), 하면 이런 스크립트를 쓰는 것보다 사람이 손으로 옮기는 게 빠르다. 왜냐면 각 어플리케이션에서 사용하는 데이터 포맷이 다른데, 그걸 그대로 A 프로그램에서 B 프로그램으로 옮긴다고 하면 꼭 누락이나 데이터 오류가 생기고 그걸 또 사람이 일일이 검수해야 하기 때문이다. 그래서 회사에서는 휴먼 에러를 감수하더라도 적은 데이터라면 일일이 복사해서 붙이는 게 빠르게 끝나는 경우가 많았다.
그래서 리퀘스트를 처음엔 100권 이상만 등록하려고 하다가 이 스크립트 자체에 경험치를 쌓으려고 50권 이하도 뒤늦게 추가했으나 사이버 고양이 빌딩같은 허황된 꿈을 생각하는 사람은 나밖에 없었는지... 아니면 눈에 대상포진이 생긴 면역력 0 인간이라는 걸 블좍 여러분에게 떠벌렸기 때문인지... 유료 작업까지는 장벽이 있는지 아직은 리퀘스트가 없다. 현재는 알라딘은 100권 올리는데 1시간 정도, 리디북스는 2시간 정도가 소요되고 있다.
아무튼 이 프로그램을 만들래면 나는 또 ChatGPT에게 부탁을 해야 한다. 이 스크립트를 만드는데 코덱스한테 부탁했는지 ChatGPT 본체에게 부탁했는지 모르겠다. 코덱스는 에디터(visual studio code)의 플러그인으로 자기 나름의 데이터를 저장하고, ChatGPT본체는 지 나름대로 저장을 하기 때문에...
하지만 이 시점엔 이미 Books의 필드 및 이 데이터의 사용 방법이 거의 확정되어 있었기 때문에 Supabase의 SQL Definition - 맨 밑에 data와 definition간 이동할 수 있는 메뉴가 있다 - 를 열어서 이러이러한 것이 있다고 복사-붙여넣기 해서 알려준 뒤 엑셀 파일을 주고 여기에 등록할 수 있는 스크립트를 짜줘! 라고 했을 것이다.
그 다음에는 이거 안되는구나, 저거 안되는구나, 왜 안될까? 하고 스크린샷 떠서 주고 다시 고치고 확인하고.... 그게 정말 다였다. DB 입력이 안되거나 오류가 생길 때 에러 코드가 뜨지 않기 때문에 눈으로 확인하는 수밖에 없다.
지금 바로 작가의 멤버십 구독자가 되어
멤버십 특별 연재 콘텐츠를 모두 만나 보세요.
오직 멤버십 구독자만 볼 수 있는,
이 작가의 특별 연재 콘텐츠