코드 리뷰: 웹사이트와 앱 운영자에게 왜 필요할까

웹사이트, 온라인 쇼핑몰, 작은 앱을 운영하고 계십니다. 코드는 누군가 썼습니다. 외주 개발자, 친구, 이미 손을 뗀 에이전시, 아니면 주말 몇 번 튜토리얼을 본 나 자신. 대체로 잘 돌아갑니다. 하지만 탄탄한 코드인지 테이프로 겨우 붙여 놓은 코드인지 알 수 없습니다. 코드 리뷰는 코드를 쓰지 않은 사람이 한 번 더 살펴보는 것이며, 작은 문제가 비싼 문제로 커지기 전에 그 질문에 답해 줍니다.

리뷰가 가치 있는 때
- 완성된 작업에 대금을 지급하기 전. 받은 코드가 합리적인지, 편법투성이인지 보여 줍니다.
- 프로젝트를 넘겨받을 때. 문서 없이 물려받은 코드는 누군가 설명해 주기 전까지 블랙박스입니다.
- 무언가 계속 고장 날 때. 가끔 실패하는 폼, 느린 페이지, 고칠 때마다 다시 나타나는 오류.
- 오픈이나 대규모 세일 전. 버그 하나가 실제 돈이 되는 때입니다.
- 직접 코드를 쓰면서 무엇을 더 잘할 수 있는지 배우고 싶을 때.
리뷰가 찾아내는 것
리뷰어는 코드를 한 줄씩 읽으며 다음을 찾습니다.
- 버그: 빈 장바구니, 월말 날짜, 아포스트로피가 들어간 이름처럼 특정 경우에 실패하는 로직.
- 위험한 곳: 코드에 그대로 적힌 비밀번호, 검사 없이 사용되는 사용자 입력, 너무 많은 것을 드러내는 오류 메시지.
- 약한 곳: 지금은 작동하지만 트래픽이 늘거나 라이브러리가 업데이트되면 망가질 코드.
- 가독성: 이후의 모든 수정을 더 느리고 비싸게 만드는 모호한 이름, 긴 함수, 반복되는 코드.
문제는 중요도순으로 정리되므로 무엇을 먼저 고치고 무엇은 나중으로 미뤄도 되는지 알 수 있습니다.
리뷰가 하지 않는 것
리뷰는 코드를 읽고 설명하는 것이지, 내 서버에서 실행하거나 운영 중인 사이트를 테스트하지 않습니다. 완전한 보안 감사나 부하 테스트도 아닙니다. 제안된 수정 사항은 제안으로 받아들이세요. 프로젝트를 관리하는 사람이 각 수정 사항을 적용하기 전에 테스트해야 합니다.
무엇을 보낼지 고르는 법
사이트 전체가 필요한 경우는 드뭅니다. 가장 중요한 부분을 고르세요.
- 돈이 오가는 곳: 결제 단계, 결제 처리, 가격과 할인.
- 사용자가 무언가를 입력하는 곳: 회원가입, 로그인, 문의, 검색 폼.
- 문제가 있는 곳: 눈에 보이는 오류 뒤에 있는 파일이나 함수.
알맞은 곳의 몇백 줄이 아무 데서나 가져온 수천 줄보다 많은 것을 알려 줍니다.
코드 준비하는 법
- 비밀 정보를 지우세요. 비밀번호, API 키, 고객 데이터를 PASSWORD_HERE 같은 자리 표시자로 바꾸세요.
- 언어와 버전을 알려 주세요. 예를 들어 PHP 8 또는 React를 쓰는 JavaScript.
- 코드가 무엇을 해야 하는지 쉬운 문장 한두 개로 설명하세요.
- 오류 메시지가 있다면 정확하게, 전부 복사하세요.
- 무엇에 집중할지 말해 주세요: 버그, 속도, 가독성, 위험한 곳.
결과 활용하는 법
리뷰 결과를 코드를 관리하는 사람과 공유하고, 심각한 것부터 수정 순서를 정하세요. 개발을 잘 모르더라도 쉬운 말로 쓴 요약이 있으면 올바른 질문을 하고 답변을 판단할 수 있습니다.
정리
코드 리뷰는 고객보다 먼저 버그, 위험한 곳, 약한 곳을 찾아내는 독립적인 점검입니다. 리뷰가 필요하다면 코드 리뷰를 주문하세요. 최대 100줄, 400줄 또는 1,000줄의 코드를 붙여 넣고 무엇이 잘못되는지 설명하면 코드가 하는 일에 대한 설명, 중요도순으로 정리된 문제 목록, 내 프로젝트에서 테스트할 수정된 코드 조각을 받을 수 있습니다. 대금은 작업을 승인한 후에만 지급됩니다.