Showing Posts From

장인이

엑셀 장인이 되는 과정 - 확률 검증의 세계

엑셀 장인이 되는 과정 - 확률 검증의 세계

엑셀 장인이 되는 과정 - 확률 검증의 세계 시작은 단순했다 입사 첫 달. 팀장이 파일 하나 던져줬다. "이거 확률 맞는지 확인해봐. 100번만 돌려." 드래곤 던전 보상 테이블이었다. 전설 등급 0.5%, 영웅 5%, 희귀 20%, 일반 74.5%. 합쳐서 100%. 깔끔하다. 그때는 몰랐다. 이게 시작이라는 걸. 100번 돌렸다. 전설 1개 나왔다. 0.5%니까 맞는 거 아닌가? 보고했다. 팀장이 웃었다. "100번으로 뭘 알아."다음 날. "1000번 돌려봐." 그때부터 지옥이 시작됐다. 숫자는 거짓말을 한다 1000번 돌렸다. 전설 3개. 0.3%. 어? 0.5%여야 하는데. 버그인가? "더 돌려봐. 5000번." 5000번. 손목 아프다. F5 누르고, 결과 복사하고, 엑셀 붙여넣고. 반복. 전설 28개. 0.56%. 아 맞네. 아니 근데 왜 처음엔 안 맞았지? 팀장이 설명해줬다. "표본이 작으면 오차가 크거든. 100번은 확률 검증이 아니라 그냥 운빨이야." 그날 배웠다. 확률은 충분히 많이 뽑아야 진실이 보인다는 걸.근데 5000번은 시작이었다. 엑셀 함수와의 전쟁 처음엔 손으로 셌다. 전설 몇 개, 영웅 몇 개. CTRL+F로 찾아서. 동료가 지나가다가 한숨 쉬었다. "COUNTIF 써." 뭐? 뭐IF? =COUNTIF(A:A,"전설") 세상에. 자동으로 센다. 혁명이었다. 비율도 구했다. =B2/5000*100 퍼센트 자동 계산. 개꿀. 근데 팀장이 또 왔다. "평균이랑 표준편차 내봐." 뭐? 표준... 뭐? =AVERAGE(), =STDEV() 함수 찾아서 넣었다. 의미는 모르겠고 숫자는 나왔다. "편차가 크면 확률이 불안정한 거야. 적으면 안정적이고." 아 그렇구나. 아직도 잘 모르겠다. 3개월 지나니까 이해됐다. 표준편차가 크면 어떤 날은 전설이 10개, 어떤 날은 2개. 롤러코스터다. 유저가 빡친다. 편차가 작으면? 매일 5개 정도. 예측 가능. 안정적. 10만 번의 의미 6개월차. 익숙해졌다. 5000번은 기본. 10000번도 돌린다. 그런데 신규 가챠 시스템 테스트할 때였다. 천장 시스템. 100번 뽑으면 최고 등급 확정. 근데 중간에도 0.7% 확률로 나온다. "이거 확률 맞는지 확인해줘." 알았다. 10000번 돌렸다. 천장 포함해서 최고 등급 158개. 1.58%. 어? 0.7%여야 하는데 너무 높다. 천장 때문인가? 분리해서 계산했다. 천장 제외하면 100세트에서 순수 확률 뽑기는 58개. 0.58%. 이것도 안 맞다. 0.7%보다 낮다. 기획자한테 물었다. "이거 확률 이상한데요?" "응? 코드 확인해볼게." 30분 뒤. "아 미안. 0.7%가 아니라 0.6%였어. 기획서 오타." ... 10000번 돌린 내 시간.근데 또 문제 생겼다. 0.6%면 10000번에 60개 나와야 하는데 58개다. 표본이 더 필요한가? "10만 번 돌려봐." ...10만 번? 매크로라는 신세계 10만 번을 손으로? 죽는다. 동료가 알려줬다. "매크로 써. VBA 좀만 배워." 뭐? VBA? 프로그래밍? "아니 QA인데 코딩을 왜 해." "안 하면 손목 나간다." 유튜브 뒤졌다. "엑셀 VBA 매크로 초보". Sub 자동테스트() For i = 1 To 100000 '게임 실행 치트 커맨드 '결과 복사 Cells(i, 1).Value = 결과 Next i End Sub 복붙하고 수정했다. 돌렸다. 엑셀이 혼자 움직인다. 숫자가 쌓인다. 마법이다. 3시간 걸렸다. 10만 번. 최고 등급 604개. 0.604%. 오 거의 0.6%다. 맞네. 그날부터 매크로 중독. 반복 작업은 다 매크로로 바꿨다. 확률의 함정들 1년차 끝날 무렵. 이상한 버그 발견했다. 크리티컬 확률 20%. 근데 특정 스킬 쓰면 10%로 떨어진다. 10만 번 돌렸다. 진짜 10%다. 버그 맞다. 개발자한테 넘겼다. "이거 확률 이상해요." "아 그거? 스킬 쓰면 공격 속도 2배 되거든. 크리 확률 반토막 내서 밸런스 맞춘 거야." "...그럼 툴팁에 써놔야 하는 거 아니에요?" "아 맞다." 툴팁 수정으로 종결. 버그가 아니라 히든 스펙이었다. 그 뒤로 이상한 확률 나오면 기획자한테 먼저 묻는다. "이거 스펙이에요?" 10번 중 8번은 "아 그거 의도한 거야." 나머지 2번이 진짜 버그다. 숨겨진 난수 테이블 2년차. 복잡한 거 맡기 시작했다. 보스 패턴 AI. 공격 패턴 A, B, C가 각각 30%, 50%, 20% 확률. 근데 유저 게시판에서 난리다. "B 패턴만 나온다." 테스트했다. 1000번 전투. B 패턴 498번. 49.8%. 맞는데? 영상 보냈다. "저거 보세요. B만 5번 연속." 아. 연속 확률. 다시 분석했다. 같은 패턴 연속 나올 확률 계산. 2연속: 25% 3연속: 12.5% 4연속: 6.25% 5연속: 3.125% 1000번 전투면 5연속이 30번은 나온다. 정상이다. 근데 유저는 5연속 한 번 당하면 "버그다" 신고한다. 확률적으로 정상인데 체감은 버그. 이게 제일 어렵다. 엑셀 지옥도 지금 내 엑셀 파일들. 드롭_테스트_v23.xlsx - 시트 47개, 데이터 35만 행 가챠_확률_검증_최종최종.xlsx - 피벗 테이블 12개 크리티컬_분석_보완본.xlsx - 수식 374개 파일 열 때마다 렉 걸린다. "계산 중..." 30초. 동료가 놀란다. "이거 엑셀이야 데이터베이스야?" 나도 모르겠다. 함수도 복잡해졌다. =IF(COUNTIF($A$2:$A$100000,A2)>0,VLOOKUP(A2,Sheet2!$A:$B,2,0)*SUMIF($C:$C,C2,$D:$D)/AVERAGE($E:$E),"") 이게 뭔지 나도 3일 지나면 모른다. 주석 달아놔야 한다. 근데 엑셀에 주석 다는 법을 몰라서 옆 셀에 설명 쓴다. 확률 검증의 숨은 노력 유저는 모른다. "드롭율 1%면 100번에 1개 나오는 거 아니야?" 아니다. 100번에 0개 나올 확률: 36.6% 1개 나올 확률: 37% 2개 이상: 26.4% 3명 중 1명은 100번 돌려도 0개다. 버그 신고 들어온다. "확률 거짓말이다!" 거짓말 아니다. 확률이 원래 그렇다. 이걸 설명하려고 리포트 쓴다. 그래프 만든다. 데이터 첨부한다. CS팀에 전달. "유저한테 이렇게 설명해주세요." 대부분 이해 못 한다. "그냥 확률이 이상한 거 아니야?" ...10만 번 돌린 내 노력. 통계학 독학 회사는 안 가르쳐준다. 알아서 배워야 한다. 유튜브, 블로그, 커뮤니티. 검색하고 따라한다. 정규분포, 신뢰구간, 카이제곱 검정. 대학 때 F학점 받은 통계학. 지금 다시 배운다. 이항분포 공식. P(X=k) = C(n,k) × p^k × (1-p)^(n-k) 이게 뭔지 이해하는 데 2주 걸렸다. 이해하고 나니 확률 검증이 쉬워졌다. 100번 시행, 1% 확률일 때 0개 나올 확률 계산 가능. C(100,0) × 0.01^0 × 0.99^100 = 0.366 36.6%. 3명 중 1명. 정상. 이제 버그 신고 왔을 때 자신 있게 답한다. "데이터 분석 결과 정상 범위입니다. 통계적으로 36.6% 확률로 발생 가능합니다." 런칭 전날 밤 CBT 런칭 전날. 최종 확률 검증. 전체 콘텐츠 200개. 각각 1만 번씩. 매크로 돌린다. 12시간 예상. 오후 6시 시작. 아침 6시 끝. 중간에 에러 나면? 처음부터. 밤 11시. 진행률 42%. 순조롭다. 새벽 2시. 68%. 졸리다. 레드불 마신다. 새벽 4시. 89%. 거의 다 왔다. 새벽 5시 30분. 완료. 데이터 정리. 이상치 확인. 그래프 생성. 리포트 작성. 오전 9시 회의. 발표. "전체 확률 검증 완료. 이상 없음." 박수. 고생했다는 말. 그날 오후 3시에 퇴근했다. 17시간 일했다. 엑셀 장인의 자격 지금은 3년차. 팀 내 엑셀 담당. 신입이 들어오면 내가 가르친다. "함수 이렇게 쓰고, 피벗 테이블은 이렇게 만들고." 예전의 나를 본다. 100번으로 확률 검증하던 그때. "왜 이렇게까지 해야 해요?" 같은 질문 받는다. "유저는 데이터를 안 믿어. 체감을 믿지. 근데 우리는 데이터로 증명해야 해." "확률 1%는 100번에 1개가 아니라, 무한대로 뽑으면 평균 1%라는 뜻이야." "그래서 우리가 10만 번을 돌리는 거고." 신입이 고개 끄덕인다. 이해했는지는 모르겠다. 3개월 뒤면 알 거다. 숫자 뒤의 진실 게임 하는 사람은 재미를 본다. 전설 아이템 떴다. 기쁘다. QA는 숫자를 본다. 전설 드롭. 0.5%. 10만 번 중 534번. 0.534%. 표준편차 0.23. 정상 범위. 재미는 사라졌다. 숫자만 남았다. 그래도 이 일이 필요하다. 내가 검증한 확률로 누군가는 즐긴다. 유저가 "확률 이상하다" 신고할 때, 내 데이터가 답이 된다. 엑셀 장인. 거창한 이름 아니다. 그냥 숫자 세는 사람. 반복하는 사람. 확률을 믿는 사람. 근데 가끔 생각한다. 이렇게까지 해서 연봉은 왜 안 오르나.10만 번 돌린 엑셀 파일을 보면서, 또 F5를 누른다.