Skip to content

Releases: lhs0609a-cpu/stickerforge-releases

v0.2.118

Choose a tag to compare

@lhs0609a-cpu lhs0609a-cpu released this 07 Oct 05:41

「판매 등록」이 눌려도 접수가 안 되던 것을 고쳤습니다.

OGQ 는 「다크모드 확인」 토글을 켜지 않으면 등록을 받지 않습니다. 안 켠 채 누르면 「스티커 업로드 가이드를 확인해주세요.」 창을 띄우고 거기서 멈춥니다. 그 토글은 미리보기 바탕을 어둡게 바꿔 투명 배경이 제대로 빠졌는지 보라는 것이고, 우리 가공은 어두운 바탕에서 캐릭터가 묻히지 않게 흰 실루엣을 깔아 둡니다. 이제 켜고 냅니다. 옆의 「스티커 이동잠금」은 건드리지 않습니다.

그 창이 앱을 통째로 세우던 것도 고쳤습니다. 그 알림은 화면 요소가 아니라 브라우저 네이티브 창이라, 뜨는 순간 자바스크립트가 한 줄도 돌지 못합니다. 그래서 「접수 버튼 클릭 직전」에서 멈춘 채 사람이 확인을 누를 때까지 아무 일도 없었고, 화면을 떠도 그 글이 남지 않아 무엇이 막았는지 알 수 없었습니다. 이제 그 창을 앱이 받아 무슨 말이었는지 기록에 남깁니다.

그라폴리오로 새던 것을 고쳤습니다. 사이드바의 「프로젝트 등록」이 grafolio.ogq.me/project/upload 라서, 주소 끝이 /upload 인 것을 집다가 거기로 넘어갔습니다. 같은 회사의 다른 서비스입니다. 이제 글자(「판매 콘텐츠 등록」)를 먼저 보고, 주소는 크리에이터 스튜디오 안일 때만 봅니다.

떠 놓은 화면이 잘려 있던 것도 고쳤습니다. 스티커 26장이 그림 데이터로 박혀 한 장이 4MB 를 넘었고, 한도에 걸려 뒷부분이 통째로 날아갔습니다 — 끝자락의 「판매 등록」 버튼이 사라져서 떠 놓고도 그것을 못 봤습니다. 이제 그림은 자리표시자로 바꿔 남기고, 그래도 잘리면 잘렸다고 적습니다.

v0.2.117

Choose a tag to compare

@lhs0609a-cpu lhs0609a-cpu released this 07 Oct 05:11

OGQ 접수가 대시보드에서 못 넘어가던 것을 고쳤습니다.

앱이 스스로 뜬 화면(0.2.115 의 shots)에 답이 있었습니다. 창이 좁아 OGQ 가 모바일 판으로 그렸고, 그때 대시보드에는 「판매 콘텐츠 등록」도 「업로드」도 없습니다 — 링크라고는 공지·FAQ·약관뿐이고 버튼은 ☰ 하나였습니다. 사이드바는 누르기 전까지 화면에 생기지도 않습니다.

이제 길이 안 보이면 ☰ 를 먼저 엽니다. 열어 본 사이드바도 따로 남겨서, 혹시 그 안에서도 못 찾으면 그 한 장을 보고 바로 고칠 수 있습니다.

찾는 방법도 넓혔습니다. 주소가 있으면 글자보다 주소를 믿습니다 — 글자는 개편으로 바뀌어도 길은 남습니다. 사이드바가 버튼이나 링크가 아니라 목록 항목이어도 찾습니다.

v0.2.116

Choose a tag to compare

@lhs0609a-cpu lhs0609a-cpu released this 07 Oct 04:42

접수가 같은 자리에서 영원히 맴돌던 것을 고쳤습니다.

막힌 접수는 스스로 세 번까지 다시 해 보고 멈춥니다. 그런데 0.2.113 에서 「사람이 이어 하기를 누르면 그 횟수를 되돌린다」를 넣으면서, 앱이 스스로 하는 재시도도 같은 길을 쓴다는 것을 보지 못했습니다. 그래서 자동 재시도가 제 횟수를 매번 0 으로 지웠고, 한도가 영영 차지 않아 1/3 에서 16초마다 같은 자리를 수십 번 돌았습니다.

다그치는 쪽이 제 횟수를 지우면 안 됩니다. 이제 사람이 누를 때만 되돌립니다.

v0.2.115

Choose a tag to compare

@lhs0609a-cpu lhs0609a-cpu released this 07 Oct 04:15

앱이 지나가는 화면을 스스로 떠서 남깁니다.

지금까지 접수 화면의 근거는 사람이 F12 를 열어 떠 준 덤프뿐이었습니다. 그래서 눈이 없는 자리가 남았습니다 — 「판매 등록」 직후의 확인 창, 접수 완료 화면, 카카오 제안 폼은 한 장도 없습니다. 드라이버는 그 화면 안에서 돌고 있는데도 아무것도 받아 적지 않았습니다.

이제 단계가 바뀔 때마다 그 자리의 HTML 을 그대로 남깁니다:

<내 문서가 아닌 앱 폴더>/shots/ogq/20261007T1230-submitting.html
                               /20261007T1230-클릭직후.html

확인 창은 「클릭직후」로 따로 뜹니다. 금방 사라져서 사람이 F12 로 잡기 가장 어려운 자리이고, 지금 눈이 없는 것도 정확히 거기입니다. 다음에 화면이 바뀌어 막히면, 다시 뜨러 가지 않아도 그 순간의 화면이 디스크에 있습니다.

로그인 화면은 뜨지 않습니다. 네이버 로그인에는 세션 토큰(oauth_token·dynamicKey)이 들어 있습니다. 비밀번호 칸이 보이거나 로그인 호스트면 건너뛰고, 남기는 쪽에서도 <script> 안쪽을 한 번 더 지웁니다. 한 마켓에 60장까지만 두고 오래된 것부터 지웁니다.

v0.2.114

Choose a tag to compare

@lhs0609a-cpu lhs0609a-cpu released this 07 Oct 04:05

태그를 넣다 접수가 멈추던 것을 고쳤습니다.

첫 태그가 #머쓱 칩이 되는 순간 placeholder 가 사라집니다. 앱은 태그 칸을 placeholder 로 찾고 있어서, 그다음부터 칸을 못 찾고 「Cannot read properties of null (reading 'focus')」로 접수가 통째로 멈췄습니다 — 칸은 눈앞에 멀쩡히 있는데요.

이제 이름표로 찾습니다. 칩이 생겨도 글자가 들어가도 「태그」라는 이름표는 그대로 있습니다. 제목·내용도 같은 이유로 이름표를 먼저 봅니다.

그래도 못 찾으면 몇 개까지 넣었는지 적고 멈춥니다 — 무엇이 없는지 모르는 채 터지지 않습니다.

태그를 20개 채웁니다. 지금까지 3~10개만 적게 했는데, OGQ 는 20개까지 받고 태그로 카테고리가 정해집니다. 캐릭터·소재·감정·쓰임·분위기를 고루 섞어 20개를 채우게 했습니다.

v0.2.113

Choose a tag to compare

@lhs0609a-cpu lhs0609a-cpu released this 07 Oct 01:20

로그인은 됐는데 접수가 안 되던 것을 고쳤습니다 — 「Failed to fetch」.

OGQ 접수가 다섯 번 연속 같은 자리에서 멈췄습니다. 로그인도 폼도 멀쩡했고, 걸린 것은 규격 검사의 첫 줄이었습니다.

앱은 만들어 둔 그림 26장을 data: 주소로 들고 있는데, 그것을 fetch() 로 읽고 있었습니다. 네트워크가 필요 없는 일인데 fetch 를 쓰면 그 페이지의 보안 정책(CSP)을 탑니다 — 마켓 페이지가 data: 를 안 받으면 그대로 「Failed to fetch」입니다.

이제 base64 를 직접 풉니다. 막을 것이 없습니다. (같은 교훈을 ChatGPT 쪽에서는 이미 배워 두고 마켓 쪽에는 옮기지 않았던 자리입니다.)

「3번 다시 했지만 같은 자리입니다」가 굳지 않습니다.

스스로 다시 해 본 횟수가 3에서 멈추면, 막힌 까닭을 고치고 「입력·제출 이어 하기」를 눌러도 앱이 더는 스스로 잇지 않았습니다. 그 수는 「한 번의 시도 안에서 몇 번 다그쳤나」이지 사람이 몇 번 눌렀나가 아닙니다 — 이제 사람이 누르면 같이 되돌아갑니다.

v0.2.112

Choose a tag to compare

@lhs0609a-cpu lhs0609a-cpu released this 07 Oct 00:26

캡차를 푼 뒤 로그인 화면이 다시 떠도 이제 앱이 채웁니다.

사람이 자동입력 방지를 풀고 나면 네이버는 아이디만 남기고 비밀번호를 비운 채 로그인 화면을 다시 띄웁니다 — 「다시 로그인해 주세요.」 우리가 넣은 비밀번호는 캡차에서 끊겨 제출된 적이 없습니다. 그런데 「같은 자리에 두 번 넣지 않는다」는 자물쇠 때문에 아무도 다시 넣지 않았고, 비밀번호를 손으로 쳐야 했습니다.

이제 화면이 다시 로그인하라고 말할 때만 한 번 더 넣습니다. 출처당 한 번뿐이라 끝없이 다그치지 않습니다.

틀렸다는 말과는 갈라 봅니다. 「아이디 또는 비밀번호가 틀렸습니다」, 「로그인 정보가 일치하지 않습니다」, 「가입되지 않은 아이디입니다」가 보이면 다시 넣지 않습니다 — 틀린 비밀번호를 되풀이하면 계정이 잠깁니다. 둘 다 보이면 틀린 쪽이 이깁니다.

v0.2.111

Choose a tag to compare

@lhs0609a-cpu lhs0609a-cpu released this 06 Oct 23:40

네이버 로그인이 안 되던 것을 고쳤습니다 — 숨은 버튼을 누르고 있었습니다.

네이버 로그인 화면에는 같은 「로그인」 버튼이 둘 들어 있습니다. 화면 폭에 따라 CSS 가 하나만 보여 주는데, 앱은 먼저 찾아지는 것을 그냥 눌렀습니다 — 하필 숨어 있는 쪽이면 아무 일도 일어나지 않습니다.

<div class="btn_form column pc"> … <button id="loginBtn_column">로그인</button>
<div class="btn_form row pc">    … <button id="loginBtn_row">로그인</button>

그런데도 앱은 「저장한 계정으로 로그인했습니다」라고 적었습니다. 기록만 보면 멀쩡한데 창은 로그인 화면에 그대로 서 있었습니다. 이제 보이는 버튼만 누르고, 둘 다 숨어 있으면 폼으로 제출합니다.

기록도 아는 만큼만 적습니다. 「로그인했습니다」는 「넣고 로그인을 눌렀습니다」로 바뀌었고, 실제로 로그인 화면을 지난 순간에 「로그인 화면을 지났습니다」가 따로 찍힙니다. 눌렀다는 것과 들어갔다는 것은 다릅니다.

네이버가 자동입력 방지(캡차) 를 띄우는 것은 그대로입니다 — 그건 창에서 직접 풀어 주셔야 합니다. 「로그인 상태 유지」는 계속 켜 두므로, 한 번 풀어 두면 그 뒤로는 세션으로 들어갑니다.

v0.2.110

Choose a tag to compare

@lhs0609a-cpu lhs0609a-cpu released this 06 Oct 11:03

원본이 흑백 선 그림이면 아홉 후보도 흑백 선 그림으로 나옵니다.

흰 바탕에 검정 선뿐인 그림을 넣었는데 후보 아홉이 초록·갈색·분홍으로 돌아왔습니다. 모델이 멋대로 한 것이 아니라 요청문이 그렇게 시켰습니다 — 「색은 칸마다 한 걸음씩 옮기세요. 아홉이 전부 같은 한 가지 색이면 실패입니다」. 색이 없는 원본에 이 말을 하면 지킬 길은 색을 지어내는 것뿐입니다.

이제 앱이 원본의 픽셀을 직접 재서 네 갈래로 가르고 그 갈래의 말만 보냅니다:

  • 선 그림 (색 없음 + 잉크가 화면의 15% 미만) — 「원본은 마우스로 그린 선 그림입니다. 필압이 없고 속을 칠하지 않은 윤곽선 하나뿐입니다. 아홉 칸도 같은 도구로, 몸 속은 흰 바탕 그대로 비웁니다」
  • 흑백 (색 없음) — 색을 쓰지 말고, 칸을 가르는 것은 색이 아니라 소재와 형태
  • 저채도 한두 색 — 그 계열 안에서 밝기만 조금씩. 크림색 캐릭터가 흑백으로 끌려가지 않습니다
  • 여러 색 또는 못 잼 — 예전 그대로

금지 목록을 길게 적어도 모델은 제 기본값인 말끔한 스티커로 돌아갑니다. 무엇으로 그린 그림인지 한 줄로 말해 주는 편이 훨씬 멀리 갑니다.

캡차로 끊긴 로그인을 이어 하기가 다시 시도합니다.

로그인 감시는 같은 자리를 두 번 다그치지 않으려고 해 본 자리를 접어 둡니다(틀린 비밀번호를 되풀이하면 계정이 잠기니까요). 그런데 네이버 자동입력 방지로 로그인이 중간에서 끊기면, 창은 로그인 화면으로 돌아오는데 접어 둔 자리는 펴지지 않아 「입력·제출 이어 하기」를 몇 번 눌러도 아무도 로그인하지 않았습니다. 이제 사람이 이어 하기를 누르면 그 마켓의 접어 둔 자리를 다시 폅니다 — 다른 마켓의 자물쇠는 그대로 둡니다.

v0.2.109

Choose a tag to compare

@lhs0609a-cpu lhs0609a-cpu released this 06 Oct 08:12

고른 칸이 곧 캐릭터입니다 — 더 이상 다시 그리지 않습니다.

아홉 중 4번(수달)을 골랐는데 등에 돌기가 줄줄이 달린 흰 덩어리가 나왔습니다. 까닭은 고르기가 번호만 넘겼기 때문입니다. 화면은 아홉 칸을 잘라 보여 주면서 그 조각을 버렸고, 뒤에서는 아홉 칸짜리 시트 한 장과 그 칸의 글(「축 늘어진 해삼 — 돌기들이 힘없이 눕고」)로 그 칸을 가리켰습니다. 그림과 글이 어긋나면 모델은 글을 따릅니다. 거기에 자체검토가 한 번 더 돌면서 갈색마저 희게 씻겼습니다.

이제 고른 그 조각이 그대로 원화가 되고, 곧바로 기획 → 플랫폼 세트 제작으로 들어갑니다. 다시 그리는 턴이 없으니 변형될 자리도 없습니다. 컷은 지금처럼 묶음으로 나오고, 나온 것부터 눌러 하나씩 고칠 수 있습니다.

OGQ 태그가 하나도 안 들어가던 것을 고쳤습니다.

태그 칸은 글자를 치고 엔터를 쳐야 #일상 같은 칩이 됩니다. 앱이 보내던 엔터에는 키 번호가 없어서(keyCode 0) 화면이 그것을 엔터로 보지 않았고, 그래서 하나도 확정되지 않은 채 다음 태그가 같은 칸의 글자를 덮어썼습니다. 여덟 개를 넣었는데 마지막 하나만 글자로 남아 「태그를 최소 3개 입력해주세요」로 접수가 멎었습니다. 이제 번호를 실어 보내고, 칸이 비었는지로 확정을 확인합니다. 안 되면 접수 버튼을 누르지 않고 무엇이 안 들어갔는지 알려 주고 멈춥니다.

AI 활용 여부를 「AI 활용(일부)」로 신고합니다.

그림은 모델이 그리고 기획·대사·고르기·규격 가공·접수는 사람과 앱이 합니다. 「생성(전부)」에서 옮겼습니다 — 이 값은 판매 페이지에 그대로 표시됩니다.