Showing Posts From

없는

재현 스텝이 없는 버그 리포트는 범죄다

재현 스텝이 없는 버그 리포트는 범죄다

아침 9시 30분, 슬랙 알림 출근했다. 커피 뽑았다. 슬랙 켰다. "@민수님 버그요! 앱 안 돼요 ㅠㅠ" 심장이 철렁했다. 배포한 지 이틀째다. 메시지 클릭했다. 내용 전부다. "앱 안 돼요 ㅠㅠ" 뭐가 안 되는데? 어디서? 언제? 어떻게? 답장 쳤다. "어떤 기능에서 문제가 발생했나요? 재현 스텝 부탁드립니다." 10분 후. "로그인이요." 아... 진짜. 로그인이 뭐가 안 된다는 건지. 버튼이 안 눌리는 건지, 에러가 뜨는 건지, 앱이 꺼지는 건지. "구체적으로 어떤 증상인가요? 스크린샷 있으실까요?" 30분 지나도 답 없다. 테스트 못한다. 버그 재현 못하면 리포트 못 올린다. 개발자한테 뭐라고 전달하나. 점심시간 되어서야 답장 왔다. "아 제 폰에선 이제 되네요." 되네요가 아니라.재현 스텝 없는 리포트는 쓰레기다 냉정하게 말한다. 재현 스텝 없는 버그 리포트는 쓰레기통 직행이다. 4년 차 하면서 깨달은 거. QA의 핵심은 버그를 찾는 게 아니다. 버그를 전달하는 거다. 버그를 찾았어도 개발자가 재현 못 하면 소용없다. "제 PC에선 안 그러는데요?" 듣고 끝이다. 실제로 있었던 일이다. 지난달에 결제 버그 발견했다. 특정 상품에서 할인이 안 먹혔다. 처음엔 나도 당황했다. 어? 왜 안 되지? 근데 차근차근 해봤다.앱 실행 로그인 (테스트 계정: test001) 홈 > 카테고리 > '전자제품' 상품 A 선택 (상품코드: ELEC-1234) 수량 2개 선택 장바구니 담기 결제하기 클릭 할인 쿠폰 적용 (쿠폰코드: SALE20) 결제 금액 확인→ 기대값: 20% 할인 적용 (19,200원) → 실제값: 할인 미적용 (24,000원) 이렇게 정리해서 Jira에 올렸다. 디바이스 정보도 넣었다. 갤럭시 S23, Android 14, 앱 버전 2.4.1. 스크린샷 3장. 영상도 첨부했다. 개발자가 30분 만에 재현했다. 1시간 만에 수정했다. 이게 정상이다. 근데 보통은? "결제가 이상해요" 이런 식이다. 뭐가 이상한데.정보 없으면 시간만 버린다 재현 스텝 없는 리포트 받으면 뭐가 문제냐. 시간 낭비다. 실제로 계산해봤다. 불완전한 버그 리포트 하나당 평균 2시간 쓴다.리포터한테 추가 정보 요청: 30분 답변 기다리기: 1시간 재현 시도: 30분2시간이면 테스트 케이스 20개는 돌린다. 한 달에 이런 리포트 10개만 받아도 20시간이다. 20시간이면 2.5일이다. 일주일에 반나절씩 날리는 거다. 더 큰 문제는 타이밍이다. 버그 리포트가 늦게 완성되면 픽스도 늦어진다. 배포 일정 밀린다. 그럼 누구 책임이냐. QA다. "QA가 제대로 확인 안 했네" 소리 듣는다. 억울하다. 정보를 안 줬는데 어떻게 확인하나. 지난주에 PM이 물었다. "이 버그 심각도 어떻게 돼요?" 모른다. 재현도 못 했는데 심각도를 어떻게 매기나. 결국 개발 회의 때 "확인 중입니다" 했다. 다음 날 PM이 또 물었다. "아직도 확인 중이에요?" 짜증 났다. 정보 없으면 확인할 수가 없다고. 최소한의 정보 5가지 정리했다. 버그 리포트에 꼭 들어가야 할 정보. 1. 재현 스텝 가장 중요하다. 1단계부터 끝까지. "앱 켜고 → 로그인하고 → 설정 들어가고 → 알림 토글 끄면 → 앱 꺼짐" 이 정도는 되어야 한다. "설정에서 문제 생김" 이건 안 된다. 2. 기대 결과 vs 실제 결과 뭐가 나와야 하는데 뭐가 나왔는지. "저장 완료 팝업 떠야 하는데 → 에러 메시지 뜸" 명확하다. "저장이 안 됨" 이건 애매하다. 무슨 의미인지 모른다. 3. 환경 정보 디바이스, OS 버전, 앱 버전. 갤럭시냐 아이폰이냐에 따라 다르다. Android 12냐 14냐에 따라 다르다. "폰에서요" 이러면 곤란하다. 4. 계정 정보 테스트 계정이 뭔지. 어떤 권한인지. 일반 회원이냐 프리미엄 회원이냐. 로그인 상태냐 비로그인이냐. 차이가 크다. 5. 재현 빈도 항상 되는지, 가끔 되는지. "10번 중 10번" vs "10번 중 1번" 심각도 판단에 중요하다. 이 5가지만 있어도 80%는 해결된다.실제 사례: 좋은 리포트 vs 나쁜 리포트 비교해본다. 나쁜 리포트 사례: "제목: 앱 오류 내용: 앱에서 오류 나요. 확인 부탁드립니다." 이게 끝이다. 뭘 확인하라는 건지. 어디서 오류가 났는지. 어떤 오류인지. 개발자한테 이거 전달했다가 욕먹는다. 좋은 리포트 사례: "제목: [결제] 포인트 사용 시 최종 금액 계산 오류 재현 스텝:앱 실행 후 로그인 (테스트 계정: test_user_01, 보유 포인트: 5,000P) 홈 화면 > 추천 상품 섹션 진입 '무선 이어폰' 상품 선택 (상품번호: PROD-9876, 가격: 89,000원) '구매하기' 버튼 클릭 결제 화면에서 '포인트 사용' 체크박스 선택 사용할 포인트 입력: 5,000P '결제하기' 버튼 클릭기대 결과:최종 결제 금액: 84,000원 (89,000원 - 5,000P) 결제 완료 후 보유 포인트: 0P실제 결과:최종 결제 금액: 89,000원 (포인트 차감 안 됨) 결제 완료 후 보유 포인트: 5,000P (그대로 유지)환경:디바이스: iPhone 14 Pro OS: iOS 17.1.2 앱 버전: 3.2.1 (빌드 #245) 네트워크: WiFi재현 빈도:5회 시도 중 5회 동일 증상 발생추가 정보:스크린샷 첨부 (결제 화면, 완료 화면) 영상 첨부 (재현 과정 30초) 로그 파일: payment_error_20250114.log"차이가 보이나. 두 번째 리포트는 그대로 개발자한테 넘긴다. 추가 질문 없다. 첫 번째 리포트는 30분 동안 추가 정보 뽑아내야 한다. 버그 리포트 템플릿 만들었다 귀찮아서 템플릿 만들었다. Jira에 커스텀 필드로 박아뒀다. ## 재현 스텝 1. 2. 3. ## 기대 결과## 실제 결과## 환경 정보 - 디바이스: - OS 버전: - 앱 버전: - 계정:## 재현 빈도 [ ] 항상 (10/10) [ ] 자주 (7~9/10) [ ] 가끔 (3~6/10) [ ] 드물게 (1~2/10)## 첨부 - [ ] 스크린샷 - [ ] 영상 - [ ] 로그이거 공유했다. 팀 전체에. 처음엔 귀찮아했다. "너무 복잡한 거 아니냐"고. 근데 2주 지나니까 다들 쓴다. 이유는 간단하다. 버그 처리 속도가 2배 빨라졌다. 예전엔 버그 하나당 평균 2일 걸렸다. 지금은 1일 안에 끝난다. 개발자들도 좋아한다. "이제 뭔지 알겠다"고. PM도 만족한다. 진척도 파악이 쉽다고. 그래도 안 쓰는 사람들 문제는 외부다. 고객센터에서 올라오는 버그 리포트. CS팀 통해서 오는 거. 여전히 "앱이 이상해요" 수준이다. CS팀 탓은 아니다. 고객이 그렇게 말하니까. 그래서 CS팀이랑 미팅했다. "고객한테 이렇게 물어봐 주세요" 했다.어떤 화면에서 문제가 생겼나요? 어떤 버튼을 눌렀나요? 화면에 뭐라고 떴나요? 스크린샷 찍어주실 수 있나요?CS팀장이 고개 끄덕였다. "그럼 스크립트 만들어주시면 좋겠어요." 만들었다. A4 한 장짜리. "버그 접수 시 체크리스트" CS팀 모니터에 붙여놨다. 효과 있었다. 고객 리포트 질이 올라갔다. 완벽하진 않아도 전보다 낫다. 개발자도 마찬가지다 거꾸로 생각해봤다. 개발자가 나한테 "이거 테스트 부탁해요" 할 때. 가끔 정보가 없다. "로그인 수정했어요. 테스트 부탁드려요." 뭘 수정했는데? 물어본다. "어떤 부분 수정하셨어요?" "코드 리팩토링이요." 그래서 뭐가 바뀐 건데. "기능은 똑같은데 내부 로직만 바꿨어요." 그럼 테스트 범위가 다르잖아. 리팩토링이면 리그레션 테스트다. 기존 기능 전부 확인해야 한다. 새 기능 추가면 신규 기능만 집중 테스트하면 된다. 정보 없으면 테스트 계획 못 세운다. 그래서 개발팀이랑도 약속했다. "테스트 요청할 때 이거 써주세요." ## 변경 사항 - 무엇을 수정했나요? - 왜 수정했나요?## 테스트 범위 - 어느 부분 테스트하면 되나요? - 연관 기능은 뭐가 있나요?## 주의사항 - 특별히 확인해야 할 케이스가 있나요?지금은 잘 지켜진다. 서로 편하다. 왜 안 쓰는 걸까 생각해봤다. 왜 사람들은 재현 스텝을 안 쓸까. 이유 1: 귀찮다 솔직히 귀찮다. 1~10까지 쓰는 게. "대충 말하면 알아서 하겠지" 생각한다. 근데 그게 더 오래 걸린다. 이유 2: 중요성을 모른다 "버그 있다"고만 하면 된다고 생각한다. 재현 스텝이 왜 필요한지 모른다. 교육이 필요하다. 이유 3: 시간이 없다 급하다. 빨리 올려야 한다. 근데 불완전한 리포트는 결국 더 느리다. 이유 4: 방법을 모른다 뭘 써야 할지 모른다. 템플릿 주면 해결된다. 내가 하는 방식 나는 이렇게 한다. 버그 발견하면 바로 메모한다. 폰 메모장에. 실시간으로. "1. 앱 켬 2. 로그인 3. 설정 4. 알림 5. 토글 끔 6. 앱 꺼짐" 짧게. 나중에 정리하려면 기억 안 난다. 그리고 녹화한다. iOS는 화면 녹화 기본 기능 쓴다. Android는 AZ Screen Recorder 쓴다. 영상 있으면 스텝 빠뜨릴 일 없다. 스크린샷도 찍는다. 문제 발생한 순간. 로그도 뽑는다. Android는 adb logcat. iOS는 Xcode Console. 이 모든 게 5분이면 된다. 그리고 Jira에 정리한다. 10분. 총 15분이면 완벽한 버그 리포트 완성된다. 이게 습관이 되면 자동이다. 재현 안 되는 버그도 있다 현실적으로 말한다. 재현이 안 되는 버그도 있다. 간헐적 버그. 타이밍 이슈. 네트워크 지연. 이런 건 스텝 써도 재현이 안 된다. 그럼 어떻게 하나. 최대한 정보를 모은다.언제 발생했나? (정확한 시각) 몇 번 시도 중 몇 번 발생했나? 발생 직전에 뭐 했나? 네트워크 상태는? (WiFi/LTE/5G) 다른 앱 켜져 있었나?패턴을 찾는다. "WiFi에선 안 되고 LTE에선 됐다" "백그라운드에서 돌아왔을 때만 그렇다" "특정 계정에서만 발생한다" 이런 정보가 힌트가 된다. 개발자가 원인 찾는 데 도움 된다. 재현 안 돼도 포기하면 안 된다. 버그 리포트는 커뮤니케이션이다 깨달은 게 있다. 버그 리포트는 단순한 기록이 아니다. 커뮤니케이션이다. 나와 개발자 사이의. 명확하게 전달해야 명확하게 해결된다. 애매하게 말하면 애매하게 처리된다. "앱이 느려요" → 개발자: "제 폰에선 빠른데요?" "홈 화면 로딩 시간이 3초 → 5초로 늘었어요 (이전 버전 대비)" → 개발자: "확인하겠습니다" 차이가 크다. QA는 통역가다. 사용자의 불편함을 개발자가 이해할 수 있는 언어로 바꿔주는 거. 재현 스텝은 그 언어의 문법이다. 품질은 디테일에서 나온다 결국 품질이다. 앱 품질은 버그를 얼마나 빨리 정확하게 고치느냐에 달렸다. 정확하게 고치려면 정확하게 전달해야 한다. 재현 스텝은 그 시작이다. "대충" 하면 결과도 "대충"이다. 꼼꼼하게 하면 결과도 탄탄하다. 사용자는 모른다. 뒤에서 얼마나 꼼꼼하게 했는지. 그냥 "앱 잘 되네" 하고 쓴다. 그게 우리 일이다. 보이지 않는 곳에서 디테일 챙기는 거. 마지막으로 재현 스텝 없는 버그 리포트는 범죄다. 과장 아니다. 시간 낭비, 품질 저하, 팀 스트레스. 모두의 발목 잡는다. 템플릿 만들어라. 5분이면 된다. 습관 들여라. 2주면 자동이다. 공유해라. 팀 전체가 같은 언어 쓰게. 그럼 달라진다. 배포가 편해진다. 버그가 줄어든다. 팀워크가 좋아진다. 나도 처음엔 귀찮았다. 지금은? 이게 없으면 일 못 한다.재현 스텝은 선택이 아니다. 필수다.

여자친구에게 설명할 수 없는 일상 - QA 엔지니어의 한숨

여자친구에게 설명할 수 없는 일상 - QA 엔지니어의 한숨

여자친구에게 설명할 수 없는 일상 - QA 엔지니어의 한숨 오늘 뭐 했어? 퇴근하고 여자친구 만났다. 항상 묻는 질문이 온다. "오늘 뭐 했어?" 나는 3초 멈춘다. 머릿속으로 돌아간다. 오늘 아침 9시부터 저녁 7시까지. 앱 빌드 20개 받았다. 테스트 케이스 147개 실행했다. 버그 8개 등록했다. 개발자랑 재현 영상 3번 주고받았다. 크래시 로그 10개 분석했다. 리그레션 테스트 2회차 돌렸다. "...일했지." 여자친구 표정이 묘해진다. "구체적으로?" 구체적으로. 이게 문제다.설명의 늪 "앱 테스트했어." "앱 만드는 거 아니었어?" "아니, 난 만드는 사람이 아니라..." 시작부터 꼬인다. "개발자가 만든 앱을 내가 확인하는 거야." "확인?" "버그 찾는 거지." "버그가 뭔데?" 숨을 크게 들이쉰다. "프로그램이 잘못 작동하는 거." "그럼 개발자가 잘못 만든 거네?" "...뭐 그렇게 볼 수도." "그럼 개발자가 고치면 되는 거 아냐?" 맞다. 논리적으로 맞다. 근데 내 직업을 부정당한 기분이다. "버그를 먼저 찾아야 고치지." "개발자가 자기가 만든 건 자기가 확인하면 되는 거 아니야?" 5초 침묵. 이 대화를 몇 번째 하는 건지 모르겠다.간호사는 다르다 여자친구는 간호사다. 그녀가 오늘 한 일을 말할 때는 다르다. "오늘 응급실 진짜 바빴어. 환자 10명 왔는데 2명은 중증이었어." 고개를 끄덕인다. 이해된다. "링거 꽂고, 활력징후 체크하고, 의사 선생님한테 보고하고..." 구체적이다. 명확하다. "한 환자분이 고마워요 하시는데 진짜 보람찼어." 감동적이기까지 하다. 내 차례가 온다. "나도 오늘 바빴어. 빌드 20개 받았거든." "빌드가 뭐야?" "...개발자가 만든 프로그램?" "하루에 20개를 만들어?" 설명이 길어진다. 빌드는 버전이고, 수정할 때마다 올라오고, 내가 확인해야 하고... 여자친구 눈빛이 흐려진다. "아 그래. 힘들었겠다." 공감이 아니다. 이해 포기의 눈빛이다. 버그 설명의 한계 어제 찾은 버그가 재밌었다. 누군가에게 말하고 싶었다. "어제 대박 버그 찾았어." 여자친구가 관심을 보인다. "어떤 거?" "로그인하고 프로필 들어가서 설정 누르고 알림 켜면 앱이 죽어." "...죽어?" "크래시. 꺼지는 거." "그럼 그냥 안 켜면 되는 거 아냐?" 논리적이다. 하지만 포인트를 놓쳤다. "사용자가 그렇게 생각하고 안 켜면 되는 게 아니라..." "왜?" "그냥 켜야 하는데 안 켜지면 문제잖아." "음..." 그녀는 고개를 끄덕인다. 이해한 게 아니라 대화를 끝내려는 끄덕임이다. 간호사 친구들 만나면 다르다고 한다. "오늘 중환자실에서 심정지 왔는데 5분 만에 소생시켰어!" "대박! 어떻게?" 직업의 드라마가 다르다. 내 드라마는 모니터 안에만 있다.야근의 의미 "오늘 야근해야 돼." "왜?" "배포 전이라서." "배포가 뭔데?" 또 시작이다. "앱스토어에 올리는 거." "그거 버튼 하나 누르면 되는 거 아냐?" "...그 전에 확인해야 하니까." "뭘 확인해?" "버그 있는지." "아직도 버그가 있어? 맨날 확인하는 거 아니었어?" 맞다. 맞는 말이다. 근데 설명할 수가 없다. 회귀 테스트, 스모크 테스트, 최종 검증. 이 단어들을 어떻게 설명하나. "그냥 마지막으로 한 번 더 보는 거야." "그럼 한 시간이면 되는 거 아냐?" "...3시간?" "왜 그렇게 오래 걸려?" 케이스가 많아서, 디바이스별로 봐야 해서, 네트워크 환경 바꿔가면서 봐야 해서. 말이 길어진다. 여자친구는 한숨을 쉰다. "알았어. 조심히 들어와." 조심히 들어와. 야근하는 사람한테 하는 말이 아니다. 밤길 조심하라는 말이다. 성취감의 차이 여자친구는 환자를 살린다. 나는 버그를 죽인다. 그녀는 "고맙습니다" 소리를 듣는다. 나는 "이거 버그 맞아요?" 소리를 듣는다. 그녀는 퇴근하면 뿌듯하다고 한다. 나는 퇴근하면 '내일 또 버그 나오면 어쩌지' 생각한다. "오늘 환자분이 퇴원하셨어. 일주일 전만 해도 많이 아프셨는데." 눈이 반짝인다. 보람이 보인다. "나도 오늘 치명적 버그 잡았어." "...그래?" "앱 결제할 때 두 번 결제되는 버그였어. 사용자들 돈 두 번 빠질 뻔했어." 잠깐 침묵. "그럼 그거 원래 만든 사람이 잘못한 거네?" "...응." "근데 넌 뭘 한 거야?" "발견한 거지." 발견. 그게 내 일이다. 근데 왜 이렇게 작게 들릴까. 연봉 이야기 친구들 만나면 연봉 얘기가 나온다. 여자친구 간호사 친구들도 온다. "저는 3년 차인데 야간 포함하면 4800 정도 받아요." "오 괜찮네요." 내 차례. "저는 4년 차고 4200이요." "어? 개발자 아니었어요?" "QA요." "...뭐 하는 건데요?" 여자친구가 대신 설명한다. "버그 찾는 거래요." "아~ 개발자 밑에서 일하는 거?" 밑이라는 표현. 틀린 말은 아닌데 기분이 묘하다. "같이 일하는 거죠." "그래도 개발자가 더 중요한 거 아니에요?" "...뭐." 여자친구가 내 손을 잡는다. 위로의 손길이다. 근데 위로받고 싶지 않다. 설명하고 싶다. 내 일의 중요성을. 말이 안 나온다. 직업의 무게 택시 타면 기사님이 묻는다. "무슨 일 하세요?" "IT 회사 다녀요." "아~ 개발자시구나. 요즘 잘 나가죠?" "...네." 개발자라고 말한다. 정정하기 귀찮다. 여자친구 부모님 만났을 때도 그랬다. "따님 남자친구 뭐 하는 사람이에요?" "IT 회사 다녀요." "요즘 IT가 대세죠. 연봉도 좋고." 여자친구 어머니 표정이 밝다. "정확히는 QA 엔지니어예요." "...큐에이?" "품질 관리요." "아~ 그래요." 표정이 살짝 어두워진다. 미묘한 변화다. 하지만 느껴진다. 여자친구가 나중에 말했다. "엄마가 개발자인 줄 아셨대." "그렇구나." "괜찮아. 뭐 하든 상관없어." 상관없다는 말. 위로 같지만 상처다. 이해받고 싶은 순간 배포 다음 날이었다. 새벽 3시까지 일했다. 아침에 출근했다. 모니터링한다. 크래시 리포트 확인한다. 0건. 가슴이 뛴다. 내가 잡은 버그들 덕분이다. 팀장님이 지나가면서 말한다. "어제 수고했어. 깔끔하게 배포됐네." 이 순간을 여자친구한테 말하고 싶었다. 저녁에 만났다. "어제 밤샘한 보람 있었어. 배포 완벽하게 됐어." "그래? 다행이다." "버그 하나도 안 나왔어." "원래 안 나와야 하는 거 아냐?" 숨이 막힌다. 맞다. 원래 안 나와야 한다. 근데 그게 당연한 게 아니라는 걸 어떻게 설명하나. "내가 미리 다 잡았으니까 안 나온 거야." "그럼 잘한 거네." "응." 잘한 거네. 끝이다. 더 이상 할 말이 없다. 간호사는 다르다. "오늘 응급 처치 완벽하게 해서 환자분 살렸어." "대단해!" 개발자도 다르다. "오늘 알고리즘 최적화해서 속도 30% 빨라졌어." "와 천재 아냐?" QA는? "버그 안 나왔어." "...원래 안 나와야 하는 거 아냐?" 자동화 공부 요즘 자동화 공부한다. Selenium, Appium 독학 중이다. 여자친구한테 말했다. "나 요즘 자동화 공부해." "자동화? 뭐가?" "테스트 자동화. 내가 손으로 하던 걸 프로그램이 하게." "그럼 네 일을 없애는 거네?" 뜨끔. "그게 아니라 더 효율적으로..." "그럼 나중에 너 자리 없어지는 거 아냐?" 말문이 막힌다. 맞을 수도 있다. 하지만 안 배우면 도태된다. "배워야 살아남아." "힘들겠다." 힘들겠다는 말. 공감이지만 해결책은 아니다. 간호사는 면허가 있다. 개발자는 코드가 있다. QA는 뭐가 있나. 경력? 4년 차 경력이 과연 무기가 될까. 잠이 안 온다. 그래도 어제 여자친구가 물었다. "너 왜 그 일 해?" 3초 생각했다. "재밌어서." "뭐가 재밌어?" "버그 찾는 게." 진심이었다. 엣지 케이스 생각하는 거. 아무도 생각 못 한 시나리오 찾는 거. 크리티컬 버그 잡았을 때 그 쾌감. "이상한 사람이네." 이상한 사람. 인정한다. 일반 사용자들은 앱 쓰면서 버그 만나면 짜증 낸다. 나는 버그 보면 신난다. "어떻게 재현되지?" "어떤 조건에서 터지지?" 이게 내 직업병이고 특기다. 설명할 순 없어도 나는 안다. 내 일이 중요하다는 걸. 평행선 여자친구와 나는 평행선이다. 그녀는 사람을 살린다. 나는 서비스를 살린다. 그녀는 환자를 본다. 나는 버그를 본다. 그녀는 감사받는다. 나는 당연시된다. 하지만 둘 다 필요한 일이다. 언젠가 여자친구가 말했다. "네가 하는 일 완벽히 이해는 못 하지만, 네가 열심히 하는 건 알아." 그거면 된다. 완벽한 이해는 바라지 않는다. 같은 업계 사람도 QA를 오해한다. 다만 인정. 내가 하는 일이 의미 있다는 것. 그것만 있으면 된다. 마무리 오늘도 여자친구가 물을 것이다. "오늘 뭐 했어?" 나는 또 3초 멈출 것이다. 그리고 말할 것이다. "일했지." 구체적으로 설명할 순 없다. 하지만 열심히 했다. 그거면 된다. 사랑하는 사람이 내 일을 이해 못 해도 괜찮다. 나는 안다. 내 일의 가치를. 버그 없는 세상. 그게 내가 만드는 세상이다. 보이지 않아도 중요하다.설명 못 해도 계속한다. 이게 내 일이니까.