주간 정리
20w부터 새로운 프로젝트를 시작한다. 새로운 웹사이트, 새로운 어플리케이션 개발이라 기초설계를 하는 개발 문서 작업과 HTML 마크업을 간단히 슈도코드로 작성해놨다.
그리고 2달간 발견 못했던 에러를 발견했는데 요즘 개발자 구하기 어렵다는 말을 실감하게 하는 에러였다.
새로운 프로젝트에 들어가며 프론트 디렉토리, 파일 구성을 문서화해 정리하는 작업부터 시작했다.
난 우리 회사에서 과장님을 만나 참 다행이라고 생각하는 부분 중 하나가 개발을 시작하기 전 항상 Technical Drawing을 만들어 오게 하는 것이다.
평소 프론트 개발쪽은 내가 필요한 공통 함수나 변수, 파라미터 네이밍 정도의 협의만 하면 되서 개발건마다 문서로 작성할 수준의 양이 아니었지만, 이번처럼 웹 사이트와 어플리케이션을 기존이랑 다르게 새롭게 만들어야하는 경우는 TD를 만들어야 했기에 디렉토리 구성과 파일부터 정리하고 개발 진행 상태를 정리했다.
과장님께서는 다음주에 리뷰하자 하셨다. 두근두근.
이번 기회에 노션을 써서 정리해봤는데 친구한텐 PPT 처음 만든 사람처럼 만들었다는 평가를 들었다. ^^...
2달 간 숨겨져있던 에러를 발견했는데 어디서부터 설명을 해야할 지 모르겠다. 원인도 찾아냈지만 이걸 왜 이제 발견했는지, 그리고 이 원인을 어떻게 발생시켰는지 설명하기 어려운 부분 투성이다.
에러의 발생지는 광고집행을 진행하는 플랫폼의 페이지였다. 이 플랫폼은 지금은 타 부서로 소속을 옮긴 주니어 개발자 1명이 개발을 맡고있고 라이브서버 반영은 내가 맡고 있었다.
에러는 간단했다. 회원들의 후기가 담긴 슬라이드 표출이 정상적으로 되지 않았다. 회원가입, 결제 등의 중요기능이 막힌게 아니라 크리티컬한 이슈는 아니었지만 슬라이드의 디자인이 괴상하게 깨져 미관을 상당히 해치고 있었다. 제일 중요한건 네이버, 페이스북 등에서 광고를 진행중인 페이지라 유저 유입이 계속 이루어지고 있는 상태였다.
에러의 원인을 찾으러 로그를 뒤졌다. 정말 터무니없는 코드가 하나 들어가있었다.
요즘 개발자 구하기 어렵다는 말을 심심찮게 듣는데 나도 처음엔 '개발자가 이렇게 차고 넘치는데 무슨?' 이라고 생각했지만 오늘 이후로 그 말 앞에 아주 중요한 형용사가 생략됐다는 걸 깨달았다.
(정상적인) 개발자를 구하기가 어렵다.
if문의 조건 추가를 위한 연산자는 수학의 사칙연산과 같은 것이라서 개발 공부를 하게 되면 반드시 숙지하게되는 과정을 거친다. and 조건문은 &&을 쓰고, or 조건문은 ||을 써야한다.
그래도 굉장히 개방적인 사고를 가진 과장님과 나라서 혹시라도 우리가 시대의 흐름에 뒤쳐졌을까 공식 문서도 찾아보고 실제로 코드를 짜서 검증을 해봤다.
var NC = "123123123";
if (NC == "1982", "1983", "1986") {
console.log("진입");
}
//result : 진입
쉼표를 쓰면 조건에 맞지 않아도 if 조건문 안으로 들어왔다. 때문에 조건 외의 페이지도 모두 영향을 받아 슬라이드 표출이 이상했던 것이다.
정말 인간적으로 한 발 더 나아가, 사람이 할 수 있는 실수라 치고 이걸 검수 단계에서 놓쳤다는 것도 꽤나 의문이었다. 검수가 어떻게 이루어지고 있던걸까? 마케팅팀 기획자와 주니어 개발자가 크로스 체크를 하고있는 체계에서 어떻게 이런 일이 발생했을까?
주니어 개발자의 의문스러운 개발 지식과 크로스 체크를 하는 의미를 무색하게 한 검수는 과장님과 나를 계속 혼란스럽게 만들었지만 이미 벌어진 일이고 이슈도 금방 수습 가능했다. 과장님은 앞으로 이런 일을 방지하기 위해 예방책을 타 부서에 공유해야하는 상황이었고 나는 최대한 머리를 굴려(두뇌 풀가동) 예방책을 제시했다.
예방책으로 크로스 체크 시 기존 운영중인 모든 페이지 중 같은 성격을 지닌 대표 페이지들을 선별하여 같이 검수하는게 어떻냐고 과장님께 의견을 드렸다. 이렇게 되면 개발자가 실수를 하는 부분도 개발 서버에서 거를 수 있으니 앞서 같은 터무니없는 코드로 인한 이슈도 잡을 수 있기 때문이었다.
과장님은 괜찮은 방법이라고 해주셨고 해당 예방책은 타 부서에 공유가 되었다. 그리고 실무자들이 또 놓칠 수 있는 부분이 없을까 한번 더 검토한 결과, 운영중인 페이지가 매번 변동되기 때문에 크로스 체크 시 항상 현행화된 페이지로 검수할 수 있도록 주기적으로 운영중인 페이지 리스트 정리 공유도 요청했다.
이슈도 해결했고 예방책도 잘 세웠지만 항간에 떠도는 말이 정말 와닿는 이번 주 에피소드였다.