#리팩토링

22개의 게시물

다리건너기를 관전 게임에서 직접 조종 게임으로 뜯어고침
commitsLAMDiceBot · ef866ce

다리건너기를 관전 게임에서 직접 조종 게임으로 뜯어고침

🤖 3562 in / 1994 out / 5556 total tokens Changed the entire identity of Bridge Cross. It used to be a "pick a color and watch" game — now every player directly chooses top or bottom each column, li

이더1일 전6 min read0
게임디자인소켓IO서버권위
지도 마커에 하드코딩된 색상값 싹 지우고 테마 토큰으로 교체
commitsMidWayDer · fac4f10

지도 마커에 하드코딩된 색상값 싹 지우고 테마 토큰으로 교체

🤖 1770 in / 1062 out / 2832 total tokens 지도 마커 SVG에 색상이 하드코딩되어 있으니 다크모드 전환 시 파란색 마커가 배경이랑 충돌하더라. Kakao/Naver 마커 둘 다 그랬고, 자동완성 결과 이름 색상도 마찬가지. 3274F9 같은 매직 넘버를 여기저기 흩뿌려놓은 게 화근이었다. getAccentColor(),

이더1주 전3 min read0
리팩토링테마CSS변수
CLAUDE.md를 Brain/Hands/Session 3계층으로 쪼갠 이유
commitsLAMDiceBot · 31dc03d

CLAUDE.md를 Brain/Hands/Session 3계층으로 쪼갠 이유

🤖 1495 in / 1478 out / 2973 total tokens CLAUDE.md가 한 덩어리로 있으니 Claude가 계획 단계에서 코드 실행 규칙까지 동시에 읽어서 컨텍스트가 낭비되더라. 그래서 역할별로 세 계층으로 분리했다. Brain은 오케스트레이션 계층이다. harness, workflow, commands 문서가 여기 속한다. "언

이더2주 전3 min read0
AI에이전트아키텍처CLAUDE.md
경마 신규 탈것 4종이 안 나오던 버그 수정 — 하드코딩 목록 불일치가 원인
commitsLAMDiceBot · 4fc41a3

경마 신규 탈것 4종이 안 나오던 버그 수정 — 하드코딩 목록 불일치가 원인

🤖 1855 in / 1415 out / 3270 total tokens 경마 게임에서 기사, 공룡, 닌자, 게 탈것이 절대 출전하지 않는 버그를 수정했다. 원인은 단순했다. horse.js에는 15종 전체 탈것 목록이 있었는데, rooms.js에서 새 유저 입장 시 탈것을 초기화하는 코드가 11종만 있는 구버전 하드코딩 목록을 그대로 쓰고 있었다.

이더2주 전3 min read0
버그수정리팩토링경마게임
경마 실시간 순위 패널, HTML 하드코딩 떼고 JS에서 동적 생성으로 이관
commitsLAMDiceBot · fd624ee

경마 실시간 순위 패널, HTML 하드코딩 떼고 JS에서 동적 생성으로 이관

🤖 1605 in / 1740 out / 3345 total tokens horse-race-multiplayer.html에 인라인으로 박혀있던 liveRankingPanel div를 싹 지우고, js/horse-race.js의 startRaceAnimation에서 동적으로 생성하도록 바꿨다. 렌더링 결과는 동일하고, 레이스 중 실시간 순위 표시 기능

이더2주 전3 min read0
리팩토링DOMJavaScript
게임 서버에서 텔레그램 봇 코드 전부 뜯어냄
commitsLAMDiceBot · 29c24c2

게임 서버에서 텔레그램 봇 코드 전부 뜯어냄

🤖 2274 in / 1495 out / 3769 total tokens 게임 서버에 텔레그램 봇 설정 페이지, 알림 유틸리티, 라우팅까지 다 박아놨던 걸 전부 제거했다. 총 435줄 삭제, 16줄 추가. 삭제가 압도적으로 많은 게 포인트다. LAMDiceBot 프로젝트 자체가 주사위/경마 게임 서버인데, 개발 편하다고 텔레그램 알림이랑 봇 설정 H

이더2주 전3 min read0
리팩토링관심사분리CLAUDE.md
ranking-shared.js 하드코딩 색상 30곳 넘게 CSS 변수로 싹 정리
commitsLAMDiceBot · 11ccdf5

ranking-shared.js 하드코딩 색상 30곳 넘게 CSS 변수로 싹 정리

🤖 1498 in / 1372 out / 2870 total tokens ranking 오버레이에 색상이 하드코딩되어 있던 걸 전부 CSS 커스텀 프로퍼티로 뽑아냈다. ranking-overlay 스코프 안에 --rk-bg-start, --rk-accent, --rk-gold 같은 변수 18개를 정의하고, 30곳이 넘는 하드코딩 값을 var(--rk-

이더2주 전3 min read0
CSS리팩토링CSS변수
히스토리 패널 UI 일관성 맞추기 — 평가자 피드백 반영
commitsLAMDiceBot · 37ea3cb

히스토리 패널 UI 일관성 맞추기 — 평가자 피드백 반영

🤖 1720 in / 1517 out / 3237 total tokens 평가자가 "주사위 히스토리 패널만 스타일이 다르다"고 지적했다. 맞는 말이었다. 룰렛과 경마는 border-radius: 12px에 그림자도 가벼운데, 주사위만 20px에 그림자가 무거웠다. 처음 만들 때는 "좀 더 둥글게 하면 예쁘겠지" 생각했는데, 결과적으로 통일감을 해친 셈

이더3주 전3 min read0
CSSUI일관성리팩토링
로비 광고 위치 통일 — 룰렛/경마 ad-lobby를 접속자 목록 아래로 이동
commitsLAMDiceBot · 443ae5a

로비 광고 위치 통일 — 룰렛/경마 ad-lobby를 접속자 목록 아래로 이동

🤖 1629 in / 1426 out / 3055 total tokens 세 게임(주사위, 룰렛, 경마)의 로비 광고 배치가 제각각이었다. 주사위는 접속자 목록 아래, 룰렛과 경마는 게임 섹션 하단(리플레이/채팅 사이)에 있었다. 사용자 입장에서 UI 일관성이 없으니 어색할 수밖에 없다. 변경은 단순하다. roulette-game-multiplaye

이더3주 전3 min read0
UI/UXAdSense리팩토링
카카오맵 스타일로 검색창/태그 상단 이동
commitsMidWayDer · 63bcc14

카카오맵 스타일로 검색창/태그 상단 이동

🤖 847 in / 869 out / 1716 total tokens 모바일 UI를 카카오맵처럼 상단 중심 구조로 개선했다. 기존엔 검색창과 카테고리 태그가 분산되어 있었는데, 사용자 시선이 위로 몰리는 자연스러운 흐름으로 재배치했다. BottomQuickBar에서 QUICK_CATEGORIES 배열을 제거하고, page.tsx의 상단 검색바 영역으

이더1개월 전2 min read0
UI/UX모바일리팩토링
GitHub Actions로 Daily AI 포스트 자동 발행 설정
commitsether-blog · db9bca3

GitHub Actions로 Daily AI 포스트 자동 발행 설정

🤖 1059 in / 713 out / 1772 total tokens GitHub Actions 워크플로우를 만들어 매시간 자동으로 AI 뉴스 다이제스트를 발행하도록 했다. API 엔드포인트 호출 방식으로, BLOG_API_KEY 시크릿을 사용해 인증한다. 기존에 하드코딩돼 있던 AI 클라이언트 설정을 getAIConfig 함수로 통합했다. gen

이더1개월 전1 min read0
GitHub Actions자동화리팩토링
radarlog.kr 도메인 적용하고 AI 프로바이더 멀티 지원으로 변경
commitsether-blog · d249a81

radarlog.kr 도메인 적용하고 AI 프로바이더 멀티 지원으로 변경

🤖 2296 in / 1380 out / 3676 total tokens 커스텀 도메인을 radarlog.kr로 확정했다. site config, docs, env example, seed script 등 모든 URL 참조를 기존 railway 서브도메인에서 새 도메인으로 일괄 변경했다. AI 프로바이더를 동적으로 선택할 수 있게 개선했다. Anth

이더1개월 전3 min read0
도메인AI리팩토링
게시글 slug를 숫자 방식으로 전환했다
commitsether-blog · ba7c338

게시글 slug를 숫자 방식으로 전환했다

🤖 1211 in / 782 out / 1993 total tokens 기존엔 제목을 한글/영문 혼합으로 변환해 slug를 만들었다. URL이 길어지고 가독성도 좋지 않았다. 그래서 단순 순번 숫자로 바꿨다. 새 글 생성 시 prisma.post.count()로 현재 개수를 구하고 +1한 값을 slug로 쓴다. 기존 글들은 /api/admin/pos

이더1개월 전2 min read0
slug리팩토링블로그
마크다운 프리뷰, 직접 짜다가 라이브러리로 갈아탐
commitsgit2blog · 7e845e9

마크다운 프리뷰, 직접 짜다가 라이브러리로 갈아탐

🤖 797 in / 995 out / 1792 total tokens 에디터 페이지에서 쓰던 regex 기반 renderMarkdown 함수를 걷어내고 react-markdown 기반의 MarkdownPreview 컴포넌트로 교체했다. 순수 정규식으로 마크다운을 파싱하려니 엣지 케이스가 끝도 없었고, 코드 블록 안에서 이스케이프 처리하다가 머리가 아팠

이더1개월 전1 min read0
react-markdown리팩토링마크다운
로그인 페이지 UI 개선과 레이아웃 분리
commitsgit2blog · 1c7c1c6

로그인 페이지 UI 개선과 레이아웃 분리

🤖 779 in / 678 out / 1457 total tokens 로그인 페이지를 깔끔하게 다듬었다. 큰 입력창과 카드 레이아웃을 적용해서 시인성을 높였고, 전체적으로 더 모던한 느낌으로 변경했다. AppShell 컴포넌트를 새로 만들어서 레이아웃 로직을 분리했다. usePathname으로 현재 경로를 확인해서 로그인 페이지일 때는 Navbar를

이더1개월 전1 min read0
Next.jsUI리팩토링
TypeScript 타입 에러 3개를 0개로: 테스트 Mock 타입 확장하기
commitsMidWayDer · 8080316

TypeScript 타입 에러 3개를 0개로: 테스트 Mock 타입 확장하기

🤖 771 in / 792 out / 1563 total tokens search-cache.test.ts에서 발생하던 TypeScript 타입 에러 3개를 모두 해결했다. 기존 MockPlace 타입이 실제 DetourResult 타입과 맞지 않아 에러가 발생했다. MockPlace를 MockDetourResult로 확장하고, Place와 Rout

이더1개월 전1 min read0
TypeScript테스트Mock
ESLint any 타입 경고 21개를 모두 해결했다
commitsMidWayDer · b138e94

ESLint any 타입 경고 21개를 모두 해결했다

🤖 1442 in / 604 out / 2046 total tokens v0.52.0에서 @typescript-eslint/no-explicit-any 경고 21개를 전부 제거했다. 이제 코드베이스에 any 타입이 없다. 주요 변경은 명시적 타입 정의다. PersonalizedDetourResult는 개인화 점수가 포함된 결과를, CacheQuery

이더1개월 전1 min read0
TypeScriptESLint리팩토링
LocaleContext ESLint 에러 해결과 useState lazy initialization
commitsMidWayDer · 34189b8

LocaleContext ESLint 에러 해결과 useState lazy initialization

🤖 794 in / 722 out / 1516 total tokens v0.49.0에서 LocaleContext의 ESLint set-state-in-effect 경고를 해결했다. 기존에는 useEffect 내부에서 localStorage 값을 읽어 setState를 호출하는 패턴이었다. 이는 React 팀에서 권장하지 않는 방식이라 ESLint가

이더1개월 전2 min read0
ReactESLint성능최적화
v0.25.0: any 타입 정리하고 린트 0 달성했다
commitsMidWayDer · 0c0e18c

v0.25.0: any 타입 정리하고 린트 0 달성했다

🤖 1062 in / 625 out / 1687 total tokens 코드 품질 개선 작업을 진행했다. 9개였던 린트 경고를 모두 해결했고, any 타입을 구체적인 인터페이스로 교체해 타입 안전성을 높였다. ErrorBoundary와 performance 모듈에서 Sentry 관련 any 타입이 문제였다. WindowWithSentry와 Sentr

이더1개월 전1 min read0
TypeScript린트타입안전성
검색창을 button으로 변경하여 UX 개선
commitsMidWayDer · d8be9c3

검색창을 button으로 변경하여 UX 개선

🤖 389 in / 612 out / 1001 total tokens 검색창을 input에서 button으로 교체했다. 기존엔 input을 클릭하면 검색 오버레이가 열리는 구조였다. 문제는 실제로 텍스트를 입력할 수 없는데 input처럼 보인다는 점. 사용자가 커서가 깜빡이는 걸 보고 입력을 시도하다 혼란을 겪을 수 있다. 그래서 아예 button으

이더1개월 전1 min read0
UXReact리팩토링
접근성 라벨 보완과 죽은 코드 정리
commitsMidWayDer · 5e743d3

접근성 라벨 보완과 죽은 코드 정리

🤖 1043 in / 1761 out / 2804 total tokens 검색 관련 컴포넌트의 접근성을 개선했다. 스크린 리더 사용자가 버튼의 목적을 명확히 인식할 수 있도록 aria-label을 체계적으로 추가했다. SearchOverlay 닫기 버튼은 '뒤로 가기'로, 저장된 장소 카드는 '{장소명} 카테고리로 검색'으로, ResultCard 전

이더1개월 전2 min read0
a11y접근성React
v3.3.0: 봇/게임 테스트 35개 추가, 커버리지 보강
commitsradar_fun_meter · aebb905

v3.3.0: 봇/게임 테스트 35개 추가, 커버리지 보강

🤖 1557 in / 839 out / 2396 total tokens 이번 커밋은 봇과 게임 어댑터의 테스트 커버리지를 대폭 보강했다. 총 35개 테스트가 추가되어 127개에서 162개로 늘었고, 전부 통과다. FlappyBirdBot은 신규 테스트 파일을 만들어 decide()의 파이프 감지, _pendingTick 흐름, _findNextPip

이더2개월 전2 min read0
테스트커버리지TDD