728x90
반응형

전체 글 129

[GitHub Actions] 로컬에서는 보이는데 Playwright 크롤러가 실패한 과정

트러블슈팅 -->이미지 출처: Unsplash (라이선스 자유 사용)게임 쿠폰 정보를 매일 갱신하려고 GitHub Actions에서 Playwright 크롤러를 실행하고 있다. 공식 공지 목록만 읽고, 쿠폰 형식과 유효 기간을 확인한 뒤 사이트 데이터에 반영하는 구조다.한동안 정상 동작하던 작업이 갑자기 실패했다. 처음에는 게시판 HTML이 바뀌었거나 선택자가 깨졌다고 생각했다. 하지만 실제 원인은 그렇게 단순하지 않았다. 재시도 로직을 추가하고 모든 정적 검사를 통과한 뒤 다시 배포해도 GitHub Actions에서는 같은 지점에서 실패했다.핵심 요약직전 8회 실행은 성공했지만 2026년 10월 21일 실행부터 공지 목록을 찾지 못했다.브라우저에서 공식 페이지를 확인했을 때 기존 선택자는 여전히 24개..

[게임 도구] Search Console에 발견됐지만 색인되지 않은 페이지 정리

사이트를 공개한 뒤 조회수가 늘지 않아 Search Console의 색인 상태부터 확인한 과정이미지 출처: Unsplash (라이선스 자유 사용)핵심 요약2026년 10월 기준 Search Console에는 색인 1개, 미색인 8개가 표시됐다.미색인 사유는 오류나 콘텐츠 거절이 아니라 발견됨 - 현재 색인이 생성되지 않음이었다.공개할 페이지와 준비 중인 페이지가 같은 목록에 섞여 있었다.준비 중 페이지의 내부 링크를 제거하고, 검색 의도가 분명한 원본 안내 페이지를 추가했다.코드 수정과 테스트는 끝났지만 아직 운영 배포 전이다.조회수가 낮다고 바로 광고 문제는 아니었다게임 쿠폰과 뽑기 확률 계산기를 제공하는 작은 웹사이트를 만들었다. GA4에는 사용자와 페이지 조회가 조금씩 기록됐지만, Search Co..

[Linkting] 웹 퍼즐에서 Android 출시 준비까지

2026-10-08 웹 미리보기부터 2026-10-15 Android 출시 준비 단계까지 정리한 기록이미지 출처: Unsplash (라이선스 자유 사용)핵심 요약하나의 Expo 프로젝트에서 웹과 Android가 같은 퍼즐 규칙과 데이터를 사용하도록 구성했다.웹 정적 배포에서 시작해 Android 광고 동의, 보상형 힌트, 알림, 이미지 저장과 공유까지 연결했다.기본 퍼즐은 무료로 유지하고, 수익화는 보상형 광고와 Android 광고 제거 상품부터 검토한다.현재 코드는 자동 검사까지 통과하지만, 실기기 광고 검증과 Play Store 출시 검수는 남아 있다.기능 구현과 출시 완료를 구분하기 위해 계획, 체크리스트, 검증 기록을 저장소에 함께 관리한다.왜 다시 전체를 정리하나처음 Linkting을 만들 때의..

[ReactNative] 알림 액션을 앱 실행 없이 처리하기

복약 알림의 복용 완료와 10분 뒤 버튼을 Android 백그라운드 작업으로 다시 만든 과정이미지 출처: Unsplash (라이선스 자유 사용)핵심 요약알림 본문을 누를 때만 앱을 열고, 액션 버튼은 백그라운드에서 처리하도록 분리했다.복용 완료는 기록 저장 후 알림만 닫고, 10분 뒤는 재알림 예약 후 현재 알림을 닫는다.처리 내역을 SQLite에 남겨 같은 액션이 다시 전달돼도 중복 실행되지 않게 했다.약 등록 직후 종료되던 문제와 앱 복귀 후 복용 상태가 늦게 보이던 문제도 함께 수정했다.Android 시뮬레이터에서 알림 버튼, 본문 이동, 재알림 도착, 복용 상태 반영을 직접 확인했다.버튼을 눌렀는데 앱이 먼저 열렸다복약 알림에 복용 완료와 10분 뒤 버튼을 넣은 뒤 실제 기기 흐름을 확인했다. 두..

[Gameting] 신작 모바일 게임 쿠폰·확률 사이트 시작기

사이드 프로젝트 로그 — 2026-10-14 작성, 라이브 D+6이미지 출처: Unsplash (라이선스 자유 사용)핵심 요약신작 모바일 게임 출시 직후, 뽑기 확률 계산기와 쿠폰 모음을 묶은 작은 도구 사이트를 하나 올렸다.사이트 URL: https://gameting.netlify.app · 첫 대상 게임은 "도깨비의 세계" (카카오게임즈, 2026-10-08 출시).수익 모델은 AdSense 광고. 포트폴리오 목적이 아니다.포지셔닝은 "팬이 만든 비공식 도구". 게임 이미지·로고 안 쓰고, 쿠폰은 복사 버튼과 공식 입력 페이지 링크만.스택은 Next.js 16 static export + Tailwind v4 + Netlify 무료. 게임 1개 추가 = 데이터 파일 1개 추가.쿠폰은 Playwrig..

[LLM] 하나만 믿고 서비스 만들면 안 되는 이유 — 번역기 접으면서 배운 6가지

"회사말 ↔ 신입말 번역기"를 접게 된 과정과, 거기서 뽑은 재사용 가능한 교훈 (2026-10 기준)이미지 출처: Unsplash (라이선스 자유 사용)핵심 요약신조어 번역기를 LLM 호출 하나로 설계했는데, "늙크크"를 "ㅋㅋㅋ 줄임말"이라고 자신 있게 틀린 답을 돌려줬다. 서비스 신뢰가 1초 만에 무너지는 지점이었다."모델이 모르는 영역이 핵심 밸류"인 서비스는 LLM 단일로 가면 안 된다. 품질 커버리지보다 "모르면 모른다고 말하는 설계"가 먼저다.모델 이름 하드코딩의 유통기한은 짧다. 7개월 전에 쓴 모델이 지금 404다.그 밖에도 환경변수 startup 검증 부재, 모킹만 하는 E2E, 셀렉터 staleness 같은 "다음 프로젝트에선 안 겪고 싶은" 함정 다섯 개가 더 나왔다.접은 건 아깝지..

개발 오답노트 2026.10.14

[Claude Code] 브랜치 전략 세 번 다시 쓴 이야기

2026-10-08의 시행착오 기록. 2026-10-12에 개선한 자동화 흐름과 구분해 읽으면 된다.이미지 출처: Unsplash (라이선스 자유 사용)핵심 요약이번 작업에서는 Git 브랜치 전략을 문서에 적었는데도 의도와 다른 실행이 반복됐다."develop은 변하지 않는다", "메인 디렉토리는 develop에 고정" 같은 암묵적 기본값이 특히 자주 깨졌다.당시 세 번 수정하며 정리한 대응은 셋이다: ① CLAUDE.md에 명시적 규칙, ② /cnp 커스텀 스킬로 commit/push/merge 창구 단일화, ③ 사전 체크(pre-check)로 메인 디렉토리 호출 자체를 거부.교훈: 작업 위치와 종료 상태를 명시하고, 중요한 조건은 실행 전에 검사해야 한다.왜 이 글을 쓰나사이드 프로젝트를 시작하면서 ..

[pill-reminder] 1호 앱으로 '약 복용 알림'을 고른 이유

2026-10-08에 정리한 앱 선정·설계 기록이미지 출처: Unsplash (라이선스 자유 사용)핵심 요약3개월 안에 Expo로 안드로이드 앱 4~6개를 출시하고 광고 수익 데이터를 모으기로 했다.주제 10개를 Play Store에서 돌려본 뒤 1호 앱으로 "약 복용 알림" 을 골랐다.포지션은 "심플함 + 광고 적음". 경쟁 앱 상위 리뷰에 광고 과다 불만이 공통되게 보였다.MVP는 등록·요일별 반복 알림·복용 체크·히스토리·광고까지. 수익 레이어(IAP, 사업자등록)는 v2에서 결정한다.느슨한 FSD + shared/ 분리로 2호 앱 때 폴더만 복사해도 공통 뼈대가 재사용되게 설계했다.왜 이 글을 쓰나금액 목표는 두지 않았다. "앱 하나가 터지길 기대하지 않고 여러 개로 확률을 쌓는다"가 전제라서, ..

[ReactNative] EAS Submit으로 내부 테스트 제출하기 — 로컬 키 파일 없이 두 앱 연결하기

production 빌드 다음 단계로, EAS에 저장한 서비스 계정 키를 연결해 제출한 과정이미지 출처: Unsplash핵심 요약빌드가 끝나도 Google Play 제출용 서비스 계정 연결은 따로 확인해야 한다.Firebase 설정에 쓰던 GOOGLE_SERVICES_JSON과 Play 제출용 서비스 계정 키는 용도가 다르다.링크팅에서 사용하던 EAS Credentials의 키를 알팅에도 연결해 로컬 키 파일 없이 제출했다.같은 개발자 계정을 쓰더라도 서비스 계정의 앱 접근 권한을 확인해야 한다.이번에 확인한 결과는 알팅의 내부 테스트 트랙 제출 성공까지다.빌드 다음에는 제출 설정을 확인한다이전 글에서는 Expo와 EAS의 빌드, OTA 업데이트 흐름을 정리했다. 이번에는 이미 완료된 production..

개발 오답노트 2026.10.14

[error] 사이트맵을 제출했는데 읽을 수 없다고 나올 때

Google Search Console에서 sitemap.xml을 확인한 과정핵심 요약Search Console에는 사이트맵 파일의 실제 URL을 제출해야 한다.파일 내용은 XML 형식이어야 하고, 공개 URL에서 직접 열려야 한다.도메인 속성과 URL 접두어 속성을 혼동하면 사이트를 가져올 수 없다는 메시지가 나올 수 있다.사이트맵 등록은 검색 노출을 보장하지 않으며 크롤링 요청을 전달하는 절차다.제출한 내용Linkting의 사이트맵에는 홈, 소개, 규칙, 보관함, 개인정보처리방침 페이지를 넣었다. XML은 urlset 루트와 각 페이지의 loc 요소로 구성했다. https://linkting.netlify.app/ https://linkting.netlify.app/about읽을 수 없음이 발생한..

728x90
반응형