전체 글291 [02] JavaScript 금액 계산 — 반올림과 잔차 배분으로 합계 지키기 금액과 비율을 다루는 화면에서는 “소수 몇 자리까지 보여줄까?”라는 질문만으로 숫자 처리를 끝내기 어렵다. 항목별 금액을 더한 값과 합계가 다르거나, 화면의 예상 금액과 서버가 확정한 값이 달라질 수 있기 때문이다.이런 차이를 전부 부동소수점 탓으로 돌리면 해결 방향을 놓친다. 십진수를 정확하게 계산해도 반올림 순서가 다르면 결과는 달라진다. 아래 사례들은 그 차이를 살펴보기 위한 단순화한 예시다.각 항목은 맞는데 합계가 달라지는 이유최소단위가 0.01이고, 두 항목의 계산 결과가 각각 0.005라고 해보자. 정확한 십진 값에 양수 사사오입을 적용해도, 언제 반올림하느냐에 따라 합계가 달라진다.반올림 시점만 달라도 합계가 달라진다항목별 반올림 → 합산0.02 0.005 → 0.01 / 두 항목의 합 = .. 2026. 10. 2. [01] JavaScript 부동소수점 오차 — 서버에서는 정확했던 숫자가 달라지는 이유 소수 입력값을 저장하는 기능을 작업하다가 요청 본문에서 예상하지 못한 숫자를 발견했다. 화면에 입력한 값은 3.57이었다. 퍼센트를 비율로 바꿔 보내는 필드라 기대한 값은 0.0357이었는데, 실제 요청에는 긴 소수 꼬리가 붙었다.3.57 / 100;// 0.0356999999999999960.1 + 0.2가 정확히 0.3이 되지 않는다는 사실은 알고 있었다. 하지만 입력한 값이 서버로 넘어가고, 저장된 뒤 다시 화면으로 돌아오는 흐름 안에서 만나니 확인할 범위가 달라졌다.작은 비율 하나가 금액 계산에 연결되는 화면이었다. 표시만 다듬으면 되는지, 실제로 저장할 값까지 달라지는지부터 구분해야 했다.같은 함수를 쓰는데 어떤 값에서만 드러났다1.23 / 100; // 0.01233.57 / 100; // 0.. 2026. 10. 2. 루프 엔지니어링 실전: Playwright 스모크 테스트로 AI가 수정한 코드 검증하기 루프 엔지니어링은 목표를 정하고, 에이전트가 실행한 결과를 증거로 확인한 뒤, 통과 조건을 만족할 때까지 수정과 검증을 반복하도록 시스템을 설계하는 방식이다. 이 글에서는 Playwright로 AI 코드 수정의 실패 증거를 수집하고 같은 조건으로 재검증하는 과정을 다룬다. 아래 예시는 특정 AI 에이전트 API까지 연결한 완제품이 아니라, 도구에 종속되지 않는 검증 하네스와 작업 인계 형식이다. AI 호출·재시도·상태 저장을 CI나 에이전트 실행기에 연결하면 자동 루프로 확장할 수 있다. AI 스모크 작업 보드 예시 1은 SaaS의 로그인 → .. 2026. 7. 27. 비밀번호 맞는데 로그인이 안 된다? - 쉽게 찾기 힘든 원인 비밀번호 맞는데 로그인이 안 된다?이런 상황인가요?"어제까지 잘 됐는데, 오늘 갑자기 로그인이 안 된다.""비밀번호 분명히 맞게 입력했는데 계속 실패한다.""비밀번호를 재설정했는데, 새 비밀번호로도 안 된다.""다른 브라우저에서는 되는데, 크롬에서만 안 된다.""비밀번호 입력칸을 클릭하면 자동으로 뭔가 채워지는데, 그게 옛날 비밀번호인 것 같다."이 중 하나라도 해당된다면, 당신의 비밀번호가 틀린 게 아닙니다.브라우저가 옛날 비밀번호를 몰래 넣고 있는 겁니다.그리고 만약 당신이 이 서비스를 만든 개발자라면, 이건 사용자 잘못이 아니라 코드에 빠진 한 줄 때문입니다.발생 시나리오크롬(Chrome), 사파리(Safari), 엣지(Edge) 같은 브라우저에는 비밀번호 관리자가 내장되어 있다.로그인하면 "비밀번.. 2026. 4. 10. [Claude Code] 터미널에서 사용량 확인하는법 (Laoding에서 멈출 때) 클로드 코드 터미널에서 토큰 사용량 확인 법/status 입력tab으로 Usage까지로 이동 Laoding usage data...에서 멈춘다면? 새 터미널 열어서 확인하면 바로 나옵니다. 2026. 2. 26. Claude Skills 을 활용한 Codex 코드 리뷰 Claude Code Skills + Codex CLI 목적 : AI 코드 리뷰 자동화, 토큰 효율 극대화 Claude Skills Agent Skills - Claude DocsCreate, manage, and share Skills to extend Claude's capabilities in Claude Code.docs.claude.com 왜 Skill를 사용했나?문제 상황개발자: "이 커밋 리뷰 좀 해줘"Claude: *수백 줄 파일 읽기* → *분석* → *제안*결과: 수만 토큰 소비, 긴 대기 시간 해결 방법개발자: "코덱스로 리뷰해줘"Claude: *Codex CLI 실행* → *백그라운드 대기*Codex: *독립적으로 분석* → *결과만 전달*결과: 수백 토큰만 소비, 병렬 작업 가.. 2025. 10. 25. 선택과 책임의 연속인 개발 생활 : 소프트웨어 개발 원칙들 : 하나의 프로젝트가 하나의 회사가 되기까지 최근 참여한 프로젝트에서 현재 상황에 어떤 개발 방식이 나은지 Claude와 대화했습니다.그 답변 중에 "YAGNI 원칙"이라는 게 나왔는데, 처음 보는 용어여서 "YAGNI 원칙"에 대해 알아봤습니다.YAGNI(You Aren't Gonna Need It) — "지금 필요하지 않은 기능은 미리 구현하지 말라"는 원칙. 이 원칙이 개발생활에 줄곧 들어온 "재활용성과 확장성을 고려한 %*#@*%_"과 모순되는 게 아닌지라는 생각이 들더라고요. 문득 머릿속에 떠오른 건 3년 전 경험이었습니다.# 소프트웨어 개발 원칙들1. YAGNI (You Aren't Gonna Need It)의미: 지금 필요하지 않은 기능은 미리 구현하지 말라목표: 미래의 필요에 대한 예측보.. 2025. 8. 9. 이전 1 2 3 4 ··· 42 다음