본문으로 건너뛰기
입문약 16.5시간 (예상)

QA를 위한 개발 지식

코드 읽기, HTTP·인증, OS·SQL·네트워크 기초, 트래픽 가로채기, PR diff 리스크 읽기, 테스트 용이성 판단, Git을 업무 프로세스 개선 도구로 쓰기. 그리고 크롬 DevTools로 결함 원인을 가르고 재현 가능한 증거를 남기는 법까지.

★ 개발자가 아니어도 읽는 법부터. 선수 과목 없음. AI 교차검증의 토대이기도 하다.

학습 목표

이 모듈 한 줄 요약 — "개발자가 되는 게 아니라, 읽을 줄 아는 사람이 되는 것".

커리큘럼 곳곳에서 "자세한 것은 모듈 9에서" 라고 가리키는 곳이 여기다. 그리고 비전공자가 가장 겁내는 자리이기도 하다. 먼저 하나만 짚고 가자 — 코드를 짜는 능력과 읽는 능력은 다른 기술이다. 외국어로 유창하게 말하는 데는 몇 년이 걸리지만 표지판과 메뉴판을 읽는 것은 훨씬 빨리 된다. 여기서 기르는 것은 읽는 쪽이다.

전제 지식은 없다(선수 모듈 없음). 레슨 1만 읽어도 "코드를 못 봐서요" 라는 말은 안 하게 된다. 나머지는 필요할 때 하나씩 꺼내 봐도 된다 — 웹이 어떻게 오가는지(2), 로그인이 내부에서 어떻게 되는지(3), 데이터를 직접 확인하는 법(5), 바뀐 코드에서 위험한 곳을 찾는 법(8) 처럼 레슨마다 독립적인 주제다.

이 모듈을 마치면 개발자가 아니어도 코드를 읽고 무엇을 하는지 판단할 수 있고, 웹 서비스가 HTTP 위에서 어떻게 동작하는지, 로그인이 내부적으로 어떻게 이뤄지는지 이해한다. OS·SQL·네트워크의 기초 개념을 익혀 버그의 원인을 추정할 수 있고, Git과 PR diff를 읽어 "이 변경이 어디에 리스크를 만드는지" 판단할 수 있다. 코드가 테스트하기 쉬운 구조인지 스스로 가늠하는 눈을 갖추고, 마지막으로 Git을 읽는 도구에서 업무 프로세스를 개선하는 도구 로 쓰는 법 — 브랜치 전략에 테스트 맞추기, PR을 게이트로 만들기, 결함 유입 커밋 찾기 — 를 익힌다. 마지막으로 크롬 개발자도구로 결함의 증거를 수집해 재현 가능한 리포트 를 만드는 법까지 다룬다.

완료 후 할 수 있는 것

  • 간단한 코드를 읽고 무엇을 하는 코드인지 설명할 수 있다
  • HTTP 요청·응답의 구조(메서드, 상태 코드, 헤더)를 읽을 수 있다
  • 세션·토큰 기반 인증과 인가가 어떻게 동작하는지 설명할 수 있다
  • OS의 프로세스·파일시스템·권한 개념을 테스트 상황에 연결할 수 있다
  • 기본적인 SQL 쿼리를 읽고 작성해 데이터를 직접 확인할 수 있다
  • DNS·TCP/IP·포트 같은 네트워크 기초 개념으로 연결 문제를 추정할 수 있다
  • Charles·Wireshark·tcpdump로 네트워크 트래픽을 직접 가로채 디버깅할 수 있다
  • Git 브랜치·커밋 구조를 이해하고 PR diff를 읽을 수 있다
  • PR diff를 보고 이 변경이 어디에 리스크를 만드는지 판단할 수 있다
  • 코드가 테스트하기 쉬운 구조인지(테스트 용이성) 판단할 수 있다
  • 브랜치 전략에 맞춰 테스트 개입 시점을 설계하고, PR 템플릿·CODEOWNERS로 QA 게이트를 만들 수 있다
  • git bisect·git log -S로 결함 유입 시점을 찾고, 태그 사이 diff로 릴리즈 회귀 범위를 스스로 산정할 수 있다
  • 크롬 DevTools로 결함 원인을 네 갈래(요청 없음·4xx·5xx·렌더링)로 가르고, HAR·콘솔 로그·쓰로틀링 조건을 증거로 남길 수 있다

채용시장에서의 위치

"코드를 읽을 줄 아는 QA"는 수동 테스트만 하는 QA와 명확히 다른 채용 시장에 있다 — 자동화 QA, SDET(Software Development Engineer in Test) 포지션은 이 모듈에서 다루는 지식을 전제로 한다. 하지만 더 중요한 이유가 있다: AI가 만든 코드를 검증하려면, 그 코드를 읽고 판단할 수 있어야 한다. 스테이지 6에서 다룰 AI 시대의 QA 역량은 전부 이 모듈 위에 세워진다 — 이 토대 없이는 AI가 짠 코드나 테스트가 맞는지조차 확인할 수 없다.

여기에 하나가 더 있다. Git을 업무에 쓰는 QA는 개발자에게 물어봐야 알던 것을 스스로 안다 — 릴리즈 범위, 결함 유입 시점, 핫픽스 반영 여부. 결함 리포트에 "유입 커밋: abc1234"가 적혀 있는 것과 "3일 전에는 됐습니다"는 개발자가 받는 정보의 양이 다르다.

DevTools도 같은 맥락이다. "안 돼요"와 "POST /orders가 500을 반환하고 응답에 COUPON_EXPIRED가 있습니다"의 차이는 관찰력이 아니라 도구 다. 그리고 오른쪽 문장은 담당자를 특정해주기 때문에 실제로 팀의 시간을 아낀다.

레슨 (12개)

  1. 입문약 25분

    코드 읽기의 기초: 변수·조건·반복·함수

    코드를 짜는 것과 읽는 것은 다른 기술이다. QA에게 필요한 건 후자다. 변수·조건문·반복문·함수 네 가지 블록만으로 대부분의 코드를 읽어낼 수 있다.

  2. 입문약 25분

    웹 동작 원리와 HTTP: 요청·응답, 메서드, 상태 코드

    웹 서비스는 결국 브라우저와 서버가 HTTP로 대화하는 것이다. 이 대화의 구조(메서드, 상태 코드, 헤더)를 읽을 수 있으면 버그의 원인을 훨씬 빠르게 좁힐 수 있다.

  3. 중급약 25분

    인증과 인가: 세션, 토큰(JWT), OAuth의 차이

    "로그인이 안 돼요"라는 버그 뒤에는 세션 만료, 토큰 오류, 권한 부족처럼 서로 다른 원인이 숨어있다. 인증과 인가를 구분하고 각 방식의 동작 원리를 이해한다.

  4. 입문약 20분

    운영체제 기초: 프로세스, 파일시스템, 권한

    앱이 왜 멈추는지, 로그는 어디에 있는지, 왜 이 파일을 못 쓰는지 — OS의 프로세스·파일시스템·권한 개념을 알면 이런 질문에 스스로 답할 수 있다.

  5. 입문약 25분

    SQL 기초: SELECT·WHERE·JOIN으로 데이터 직접 확인하기

    화면에 보이는 값이 이상할 때, 개발자에게 묻는 대신 데이터베이스를 직접 조회해서 원인을 확인하는 능력을 SQL 기초로 익힌다.

  6. 입문약 20분

    네트워크 기초: DNS, TCP/IP, 포트가 테스트에 미치는 영향

    "연결할 수 없습니다"라는 오류 뒤에는 DNS 문제일 수도, 포트가 막힌 것일 수도, 방화벽 문제일 수도 있다. 네트워크 기초 개념으로 이 가능성들을 구분한다.

  7. 입문약 20분

    Git과 버전 관리: 브랜치, 커밋, PR의 기본 구조

    개발자가 "이 브랜치에 배포했어요", "PR 올렸어요"라고 할 때 무슨 뜻인지 이해하려면 Git의 기본 개념부터 알아야 한다.

  8. 중급약 25분

    PR diff에서 리스크 읽어내기: 변경 범위로 테스트 우선순위 정하기

    코드 변경을 보면 어디에 리스크가 몰려있는지 짐작할 수 있다. PR diff를 읽고 회귀 테스트 범위를 리스크 기반으로 좁히는 법을 익힌다.

  9. 중급약 25분

    테스트 용이성 판단하기: 이 코드는 테스트하기 쉬운가

    같은 기능도 코드 구조에 따라 테스트하기 쉬울 수도, 거의 불가능할 수도 있다. 테스트 용이성을 판단하는 기준을 익히고, 이 강의에서 배운 지식을 종합한다.

  10. 중급약 22분

    네트워크 트래픽 가로채서 디버깅하기: Charles, Wireshark, tcpdump

    브라우저 개발자도구로 안 보이는 것들이 있다 — 모바일 앱의 API 호출, HTTPS 트래픽의 실제 내용, 앱이 아예 무엇과 통신하는지. 이걸 직접 들여다보는 도구 세 가지를 익힌다.

  11. 중급약 28분

    Git으로 QA 업무 프로세스 개선하기: 브랜치 전략부터 결함 유입 추적까지

    Git을 읽을 줄 아는 것에서 업무에 쓰는 단계로 넘어간다. 브랜치 전략에 테스트를 맞추고, PR을 게이트로 만들고, bisect로 결함이 언제 들어왔는지 찾아낸다.

  12. 입문약 30분

    크롬 DevTools로 증거 수집하기: Network·Console·Elements와 재현 가능한 리포트

    "안 돼요"를 "POST /orders가 500을 반환하고 응답에 이 메시지가 있습니다"로 바꾸는 도구다. QA가 실제로 쓰는 패널과, 증거를 남기는 방법을 익힌다.