프로덕트

아티클

전체 보기
Junghyun Ryu

Junghyun Ryu

16년차 QA 엔지니어가 'QA판 리트코드'를 직접 만든 이유

👋 안녕하세요, 16년 차 QA 엔지니어이자 1인 메이커입니다.

안녕하세요. 소프트웨어 품질 보증(QA) 분야에서 16년간 밥벌이를 해온 엔지니어입니다. 수많은 프로젝트를 거치며 수동 테스트부터 테스트 자동화, CI/CD 파이프라인 구축까지 경험했지만, 늘 해결되지 않는 갈증이 하나 있었습니다.

"QA 엔지니어의 코딩 실력, 특히 '테스트 설계 역량'을 어떻게 객관적으로 증명할 것인가?"

개발자는 LeetCode나 HackerRank로 알고리즘 역량을 증명합니다. 하지만 QA 엔지니어에게 중요한 건 알고리즘 최적화보다 '결함을 찾아내는 테스트 케이스를 얼마나 정교하게 설계하는가'입니다.

이 문제를 해결하기 위해, QA 엔지니어의 테스트 코드 작성 역량을 정량화하고 훈련할 수 있는

를 만들게 되었습니다.


🧐 문제는 '통과하는 테스트'가 아니라 '잡아내는 테스트'입니다.

흔히 테스트 코드를 작성하라고 하면, 많은 분들이 "Happy Path(정상 동작)"만 통과하는 코드를 짭니다. 하지만 QA의 본질은 Edge Case(경계값), 예외 상황, 그리고 잠재적 버그를 찾아내는 것에 있습니다.

그래서 QA Arena는 일반적인 코딩 테스트와 다르게 설계했습니다. 핵심은 변이 테스트(Mutation Testing) 개념의 도입입니다.

  1. 사용자에게 테스트 대상 함수(Target Function)가 주어집니다.

  2. 사용자는 이 함수를 검증할 pytest 기반의 테스트 코드를 작성해 제출합니다.

  3. 시스템은 사용자의 테스트 코드를 Golden Code(정답 구현)와 Buggy Implementations(의도된 버그가 심어진 코드들)에 대해 실행합니다.

  4. 목표: Golden Code는 통과시키고(Pass), Buggy Code들은 실패(Fail)시켜야 합니다.

  5. 버그를 잡아낸 비율(Kill Ratio)이 곧 사용자의 점수가 됩니다.

즉, "당신의 테스트 코드가 얼마나 강력한가?"를 측정하는 것입니다.


🛠️ Tech Stack: 1인 개발의 효율성과 기술적 도전

혼자서 기획, 디자인, 개발, 운영을 모두 해야 했기에, 생산성과 비용 효율성, 그리고 사용자 경험 사이의 균형을 맞추는 아키텍처를 고민했습니다.

  • Frontend: Next.js + TypeScript + Monaco Editor

  • Backend: FastAPI (Python)

  • Database: PostgreSQL + Redis

  • Core Engine (Hybrid Architecture):

    • Client-side: Pyodide(WebAssembly Python)를 도입했습니다. 사용자가 작성한 테스트 코드를 브라우저 위에서 즉시 실행합니다. 서버 비용을 획기적으로 줄이면서도, 사용자에게는 밀리초(ms) 단위의 즉각적인 피드백을 제공합니다.

    • Server-side: Pyodide가 지원하지 않는 복잡한 라이브러리나 환경이 필요한 경우를 대비해 Celery + Docker 기반의 Fallback 시스템을 구축했습니다.

  • AI Integration: OpenAI API를 활용해 문제 초안을 생성(AI Problem Designer)하고, 사용자의 풀이 결과에 대해 "경계값 분석이 부족합니다"와 같은 정성적인 피드백(AI Coach)을 제공합니다.


🤖 AI와 함께하는 QA의 미래

QA Arena는 단순히 문제를 풀고 채점하는 도구를 넘어, AI와 협업하는 QA의 미래를 그립니다.

현재 구현된 AI Feedback Engine은 단순히 정답 여부만 알려주는 것이 아니라, 사용자가 놓친 테스트 케이스(예: 빈 리스트 입력, 음수 처리 등)를 분석하여 구체적인 조언을 해줍니다. 또한, AI Problem Designer를 통해 다양한 도메인(핀테크, 이커머스 등)의 실무적 버그 패턴을 지속적으로 학습시키고 문제화하고 있습니다.


🚀 앞으로의 계획

현재 MVP(Minimum Viable Product) 단계를 지나 전체 런칭을 기다리고 있습니다.

  • 테스트 품질 분석: AST(추상 구문 트리) 분석을 통해 테스트 코드의 스타일과 안티 패턴을 감지

  • 커리어 리포트: QA 엔지니어의 강점(예: 보안 테스트 강함, 성능 테스트 약함)을 시각화

  • 기업용 챌린지: 기업이 자사 도메인에 맞는 문제로 채용 테스트를 진행할 수 있는 서비스 (백준과 같은)

QA 엔지니어가 단순한 테스터를 넘어, '품질을 설계하는 엔지니어'로 인정받는 생태계를 만들고 싶습니다.

QA Arena가 궁금하시다면, 혹은 QA 엔지니어링에 대해 이야기를 나누고 싶다면 언제든 피드백 부탁드립니다. 함께 더 나은 소프트웨어 품질을 만들어갔으면 좋겠습니다.

관련 이미지

문제 목록 페이지

{EF9AC28B-F663-4A98-B3D2-23E3DF1EC292}.png

문제 상세 페이지

{AF23C043-C746-4A4D-AF31-C744E6357D65}.png

관리 대시보드

{261882DB-2302-4B35-9A86-C3791CA63C30}.png

QA Arena

QA가 작정하고 만든 실전 훈련소 — AI는 코드를 짜고, 우리는 결함을 찾습니다.

1
0

포스트

전체 보기
Junghyun Ryu

Junghyun Ryu

어제 저녁, AWS로부터 등골 서늘한 메일을 받았습니다. "너네 서버가 봇넷(좀비 PC)이랑 통신 중이다."

로그를 까보니 Docker 컨테이너가 문제였습니다. AI가 짜준 코드는 기능적으론 완벽했지만, "사용자 코드를 실행하는 컨테이너를 인터넷에서 격리하라"는 설정은 빠져 있었던 겁니다.

바이브 코딩을 하다보니 누락되었던 컨테이너 설정에 대한 문제였습니다.

💬 Insight 바이브 코딩은 F1 레이싱카 같은 속도를 주지만, QA는 그 차의 브레이크입니다.

기능 구현(AI)을 넘어 인프라와 보안 설정까지 검증하는 것이야말로 AI 시대 QA의 진짜 가치임을 배웠습니다

https://qa-arena.qalabs.kr/

QA Arena

QA가 작정하고 만든 실전 훈련소 — AI는 코드를 짜고, 우리는 결함을 찾습니다.

1
0
Junghyun Ryu

Junghyun Ryu

[런칭 1일차] 해킹 의심으로 서버 내릴 뻔했습니다.

어제 야심 차게 1인 개발 프로젝트 QA Arena를 오픈 후 24시간 동안 그야말로 롤러코스터를 탔네요.

1. 희망 (The Good): 몰입도 홍보도 거의 안 했는데 가입자 6명이 들어오셨습니다. 놀라운 건 총 제출 수 69건 (감사합니당.)

2. 절망 (The Bad): 500 에러와 버그 하지만 트래픽이 생기니 숨어있던 버그들이 튀어나왔습니다. ㅠㅠ

3. 공포 (The Ugly): 해킹? Google OAuth 로그인 쪽에서 비정상적인 트래픽 패턴이 감지되었습니다. 바로 Google 검색 서치 엔진 끊었습니다.

4. 복구, 그리고 깨달음 밤새 로그를 뜯어보고 원인을 파악해 방금 전 모든 기능을 정상 복구했습니다. Google 로그인도 다시 열었고요.

결론: 개발보다 운영(Ops)이 10배는 힘드네요. 이제 다시 '버그 잡으러' 오셔도 됩니다.

(저도 제 서비스 버그 다 잡았습니다.. 아마도요? 😂)

QA Arena

QA가 작정하고 만든 실전 훈련소 — AI는 코드를 짜고, 우리는 결함을 찾습니다.

1
0
Junghyun Ryu

Junghyun Ryu

QA 엔지니어가 직접 만든 "QA를 위한 코딩 테스트"

안녕하세요.

"QA 실력을 어떻게 증명하나요?"라는 고민 끝에, 6주간 435번의 커밋으로 QA 엔지니어 전용 역량 평가 서비스를 만들었습니다.

🛠 해결하려는 문제 개발자는 깃허브로 증명하지만, QA는 정량적 지표가 없습니다. 그래서 '버그를 얼마나 잘 잡는지'를 점수(Mutation Score)로 보여주는 플랫폼을 개발했습니다.

🔥 주요 도전과 해결

- 비용 절감: 개인 프로젝트의 서버 비용 부담을 해결하기 위해 Pyodide(WASM)를 도입, 채점 엔진을 브라우저로 옮겨 비용을 90% 절감했습니다.

- 운영 이슈: 런칭 직전 발견한 법적 이슈(약관/탈퇴)로 배포를 멈추고, 엔지니어가 아닌 '운영자'로서의 책임을 배웠습니다.

자세한 개발기와 삽질기는 벨로그에 남겼습니다. QA 분들의 피드백을 기다립니다!

👉 개발기(Velog): [링크 붙여넣기] 👉 서비스 써보기: https://qa-arena.qalabs.kr

0
1