개념
짜는 것과 읽는 것은 다른 기술이다
"저는 개발자가 아니라서 코드를 못 봐요"라는 말을 QA에게서 자주 듣는다. 하지만 코드를 처음부터 짜는 능력과 이미 짜여진 코드를 읽고 무엇을 하는지 이해하는 능력은 다른 기술이다. QA에게 필요한 건 대부분 후자다 — 그리고 후자는 생각보다 배우기 쉽다.
코드를 이루는 네 가지 블록
거의 모든 프로그래밍 언어는 이 네 가지 개념의 조합으로 되어 있다.
1. 변수(Variable) — 값을 담아두는 상자.
let discount = 0.1 // "discount"라는 상자에 0.1을 담아둔다2. 조건문(Conditional) — "만약 ~라면"으로 갈라지는 분기.
if (discount > 0) {
// 할인이 있을 때만 실행되는 코드
} else {
// 할인이 없을 때 실행되는 코드
}3. 반복문(Loop) — 같은 동작을 여러 번 되풀이.
for (let item of cartItems) {
// 장바구니의 각 상품에 대해 반복 실행
}4. 함수(Function) — 이름 붙은 작업 단위. 입력을 받아 결과를 낸다.
function applyDiscount(price, rate) {
return price - (price * rate)
}조합해서 읽기
function calculateTotal(cartItems, couponRate) {
let total = 0
for (let item of cartItems) {
total = total + item.price
}
if (couponRate > 0) {
total = applyDiscount(total, couponRate)
}
return total
}이 함수를 한 줄씩 읽어보면: "장바구니 상품들을 하나씩 돌면서(반복문) 가격을 더하고(변수), 쿠폰 비율이 0보다 크면(조건문) 할인을 적용한다(함수 호출)." — 문법을 몰라도 네 블록이 뭘 하는지만 알면 이 정도 코드는 읽어낼 수 있다.
모르는 문법을 만났을 때
모든 문법을 외울 필요는 없다. 처음 보는 표현을 만나면 "이게 변수인가, 조건인가, 반복인가, 함수인가"부터 판단하고, 필요하면 그 문법만 검색해서 확인한다. QA에게 필요한 건 완벽한 문법 지식이 아니라, 이 코드가 대략 무엇을 하려는지 파악하는 감각이다.
실무에서 왜 필요한가
버그 리포트를 쓸 때 "이 조건에서 이런 결과가 나온다"(모듈 6 레슨 2)를 정확히 쓰려면, 가끔은 코드를 직접 열어 "이 조건문이 실제로 어떤 조건을 검사하는지" 확인하는 게 말로 추측하는 것보다 빠르고 정확하다. 또한 개발자가 "이 부분 고쳤어요"라고 할 때, 실제 diff를 열어 무엇이 바뀌었는지 직접 읽을 수 있으면 재검증(모듈 6 레슨 1)의 정확도가 크게 올라간다.
실습 과제
과제 1 — 코드 설명해보기 (15분)
다음 코드를 한 줄씩 한국어로 설명해본다.
function isEligibleForFreeShipping(cartTotal, memberLevel) {
if (memberLevel === "VIP") {
return true
}
if (cartTotal >= 30000) {
return true
}
return false
}과제 2 — 조건 찾아 결과 예측하기 (10분)
위 함수에 cartTotal = 25000, memberLevel = "일반"을 넣으면 결과가
무엇일지 코드를 따라가며 예측해본다.
자가 체크리스트
- 변수·조건문·반복문·함수 네 가지 블록의 역할을 설명할 수 있다
- 간단한 함수를 한 줄씩 읽고 한국어로 설명할 수 있다
- 모르는 문법을 만났을 때 어떻게 접근해야 할지 설명할 수 있다
- 코드를 읽는 능력이 결함 리포트·재검증에 어떻게 도움이 되는지 설명할 수 있다
흔한 실수
- "개발자가 아니니까 코드는 못 본다"고 지레 포기한다. 짜는 것과 읽는 것은 다른 기술이며, 읽는 건 생각보다 접근하기 쉽다.
- 모든 문법을 완벽히 외우려 한다. 필요한 건 대략적인 흐름 파악 능력이지 문법 암기가 아니다.
- 코드를 보지 않고 항상 개발자에게 구두로만 물어본다. 간단한 질문은 코드를 직접 열어 확인하는 게 더 빠를 때가 많다.
참고 자료
- freeCodeCamp — Learn to Code — 무료로 프로그래밍 기초 개념을 실습할 수 있는 자료
- Codecademy — 변수·조건·반복·함수 개념을 다루는 입문 코스(여러 언어 지원)