생애 처음으로 내가만든 코드를 배포했던 날 (SEO 이야기)

2021. 6. 6. 11:59Japan Life

 대학을 졸업하고 첫 직장을 도쿄에 있는 쌩?일본 SI대기업으로 들어갔던 나는 일본사람들보다 당연히 일본어를 못하니 실력이라도 확실히 보여줘야 겠다며 참 어깨에 힘을 많이 주고 다녔었다. 26살이라는 그렇게 많은나이도 아니었지만 좀 과잉적으로 책임감을 가지고 있었던 시절이었다. 그만큼 입사 후 첫번째로 배정받는 프로젝트는 나에게는 무조건 성공적으로 내 실력을 보여줘야 하는 곳이라고 생각했었다.

 

 당시 첫번째로 배속된 팀은 일본사람들이라면 누구나 알법한 고객사의 한 서비스를 개발, 운영하는 팀으로, 당시 우리 팀에서는 이 회사의 특정 서비스에 대한 신규개발, 운영 등을 전반적으로 맡아서 하고 있었다. 그 서비스는 우리나라로 치면 JOB코리아, 사람인이라고 하면 적당할 것 같다. 내재화보다는 돈을 주고 외주를 주는데에 아주 익숙한 일본사회에서는 SI기업이나 컨설팅 등의 수요가 아직도 많은 걸로 알고 있는데 당시는 우리 고객사도 꽤나 큰 덩어리의 서비스를 우리에게 전적으로 맡겼고, 고객사의 담당자나 고객사 직원들은 PM역할만 했었다. 나에게 첫번째 주어진 임무는 3개월동안 SEO 개선을 위한 코드를 수정해서 성공적으로 배포하는 것이었다.

 

 SEO 개선은 쉽게 말해 유저들이 구글에 검색했을 때 우리 결과를 좀 더 상위에 보여주는 거다. 구글은 웹페이지에 대해서 자신들의 알고리즘을 통해 랭킹을 매기고 있으며, 그 랭킹이 높을수록 구글 검색결과 상위에 보여질 확률이 높다. SEO를 위해서는 Server Side Rendering (SSR),  HTML 태그 바꾸기, 링크 주소 다듬기 등 방법은 매우 다양하다. 그 당시에 우리도 다양한 방법을 시도했었는데, 주로 내가 담당한 부분은 이렇다.

 

 예를 들어, 우리 서비스에서 유저가 '마케팅 경력직' 이라고 검색해서 수백개의 페이지로 된 기업정보 검색결과 나왔다고 하자. 유저는 첫번째 페이지부터 찬찬히 살펴보고 두번째, 세번째 페이지로 넘어갈 것이다. 하지만 같은 검색어여도 페이지번호가 다르면 URL도 다르다. 구글은 URL별로 웹페이지의 랭킹을 매기기 때문에, 서비스 운영자 입장에서는 같은 검색어에 대한 구글의 랭킹점수가 페이지별로 분산되버리는게 아깝다. 따라서, 특정 검색어에 대해 첫번째 페이지로 랭킹점수를 몰아줄 수 있는 방법을 검토했고, 각 페이지에 canonical 태그를 삽입하거나, URL 작성 정책을 조금 변경하여 배포하기로 했다.

 

 그 당시에는 듣도보도못한 Adobe ColdFusion 이라는 언어를 사용해서 개발했는데 내가 입사하기 훨씬 전부터 정해졌던 거라 왜 ColdFusion으로 선택했는지 이유는 모르겠다. 다만 꽤나 직관적이고 익히기도 쉬워서 1~2주만에 금방 적응되었던 것 같다. 문법도 Java랑 거의 비슷했다. Spring의 가볍고 쉬운버전같은 느낌이다.

 막상 개발을 시작하니, 내가 생각했던 것보다 서비스의 규모가 상당히 컸다. 그리고 일본 사이트를 들어가보면 알겠지만 정말 텍스트가 많다... 텍스트가 많다는 것은 링크도 그만큼 많다는 거다. 몇날몇일을 개발팀과 함께 사이트를 뒤져가며 수정이 필요한 링크들을 리스트업했지만, 그 다음날에 '헐 이런데에도 링크가 있었어...?' 라고 할정도로 계속 발견되었다. 결국 크롤링 로봇을 만들어서 URL별로 전부다 링크를 크롤링해서 '더이상은 없겠지?' 생각하긴 했지만 그래도 불안하긴 마찬가지였다.

 

 그렇게 3개월간 코드 수정을 진행하고 단위 테스트, 부하 테스트 등을 수행했다. 또한 배포 계획도 세웠다. 나는 참 대기업이라는 곳에서 실제로 어떻게 코드가 배포되는지 경험해봤던 이 3개월이 정말 소중했던 경험이다. 이 작은 기능임에도 불구하고 수많은 사람들과 테스트, 배포 계획을 세우고 서로 코드리뷰를 하는 게 그 '이렇게까지 해야하나...' 할 정도로 힘들었지만 뭔가 체계적으로 일이 진행해봤다는 게 좋은 경험으로 남는다.

 

 배포 당일날, 배포시간은 새벽6시다. 아침 새벽 4시에 일어나서 회사에 가는 길은 하나도 졸리지 않았다. 아니 전날부터 잠을 못잤다는게 맞는 것 같다. 혹시나 내가 올린 코드로 인해서 문제가 일어나서 서비스가 다운되진 않겠지...? 하는 걱정이 가득했다. 새벽6시가 되자 개발팀장의 구호에 맞추어서 준비된 스크립트를 각 담당자들이 차례대로 실행하기 시작했고 모두들 스크립트의 실행결과를 함께 확인한다. 10분만에 배포는 이루어졌고 실제로 사이트에 들어가보니 내가 수정한 코드대로 URL들이 잘 바뀌어 있었다. 유저 입자에서 누가 URL을 보겠냐만은 이 URL을 내가 바꿨다고 자랑이라도 하고싶었다. 

 

 배포는 성공적으로 끝났지만, 결국에는 내 코드에서 일이 하나 터졌다. 크롤링 로봇도 못잡은 한 오래된 링크가 수정이 안되어 있어서, 한 유저가 페이지 이동에 실패한 에러 로그가 잡혔다. 그렇게 꼼꼼하게 준비했건만 결국 일이 터진 거였다. 다만 너무 오래된 링크였고 당시 고객사 PM분께서도 몰랐던 링크였다며, 이걸 클릭한 유저가 더 신기하다면서 이정도 에러는 Hot fix 로 넘기면 된다며 신경쓰지 말라고 말씀해주셨다. 기합만 잔뜩 들어있었던 나는 석고대죄라도 하고 싶은 마음이었지만 고객사도 팀장님도 너무 신경쓰지말라고 격려해주셔서 감사한 마음이었다. 얼른 Hot fix 형태로 고친 후 오전에 재배포를 하고, 일찍 출근했던 개발팀은 오후에 퇴근하고 하루가 마무리 되었다. 퇴근길은 오후2시밖에 안되었는데 너무나 긴 하루였다.