개발자 분들께 질문 – 여러분들의 테스트 환경은 어떤가요?

  • #3752063
    백엔드개발자 24.***.163.47 997

    한국에서 일하다 넘어온 백엔드 개발자입니다.

    앞글자만 대면 아는 빅테크는 아니지만 그래도 Bay area에서 이름 들으면 알만한 회사인데 몇 달 지난 지금까지도 여기 개발환경 볼 때마다 이해가 안 가는 부분이 있어서요. 미국 쪽엔 업계 지인들이 없다보니 물어볼 곳이 없어 여기에 글 남겨봅니다. 개발자 분들이 제법 계시는 듯 해서요.

    여기 환경이 dev > staging > prod 순서로 있는데 UI까지 연계되는 수정 사항은 코드 짜놓고도 e2e로 확인해 볼 방법이 없는 경우가 대부분입니다. 개발서버 쪽은 워낙 여러 팀이 관여해서인지 늘 깨져있어서 메인페이지와 일부를 제외하고는 로딩 조차 안되는 페이지가 많고, staging은 운영 올리기 직전에 다른 문제 (성능이나 의존성 관련) 있는지만 보는 곳이라 테스트용도가 아니거든요.

    이렇다보니 프론트엔드 개발자와 스펙 정한대로 서로 개발 끝내기만 하면 같이 맞춰보는 절차없이 각자 운영계에 올린 후 변경 부분에 대해서는 임직원들만 접근이 가능하도록 코딩 해둔 상태에서 테스트를 해요. 자잘한 화면 폰트 수정 같은 것도 이때서야 확인하고 다시 운영에 반영하는 방식이다 보니 뭔가 순서가 뒤바뀐 느낌인데… 다들 불만없이 하고 있으니 이상하게 느끼는 제가 오히려 이상한 상황이네요. 제가 미국 테크 기업이 한국보다 나을거라는 환상을 가졌던건가요?

    이번에 메일 관련 수정건을 하나 맡았는데 보안상 이유로 prod 말고는 메일을 발송할 방법이 없어서 이 또한 운영계에 반영해두고 테스트할 예정인데 코드 반영할 때마다 PR 올리는 공수도 만만치 않아서 생각만해도 이미 갑갑하네요.

    매니저랑 1on1 하면서 단위테스트 말고는 수정 사항을 딱히 확인할 길이 없어서 어렵다고 하니 이게 요즘 고객 상대로 민감한 개인정보를 빅데이터로 다루면서 24/7 돌아가는 테크기업들이면 다 그렇다더라구요. 좀 더 버티다 다른 곳 이직해보려는데 이 말이 사실인가요?

    • gamnawara 98.***.74.4

      아무리 허접스레 일해도 연봉 40-50만불씩 따박따박 주는데는 이유가 있을거에요. 저도 그러려니 하고 다닙니다.

      • 백엔드개발자 24.***.163.47

        40-50만 받으면 그냥 그러려니 해지려나요. 그런 곳으로 이직을 고려해봐야겠네요 ㅎㅎ

    • . 98.***.134.123

      저희 회사랑 반대네요. Shift Left인가 뭔가하는 이상한걸 upper management에서 갖고와서 dev서버에서 뭔가 좀만 잘못되도 딴거 다 내려놓고 그것만 수정하게 하는데. 개발자가 테스트베드로 써야할 dev환경을 지 ass cover한다고 그짓하고 있음.

    • 치사토 192.***.111.180

      우리는 review & commit이 되면 nightly build하며 unit test 몇 시간 돌리고, 그 다음 regression test pipline이 돕니다. regression test 때는 test cluster에 deploy되고 실제 prod와 100%는 아니지만 스케일만 작을 뿐 여러가지로 상당히 비슷한 환경에서 자동화된 test들이 실행됩니다. 오랜 기간에 거쳐 build up된 것들이죠. Release해서 prod에 deploy할 때도 sandbox, research, prod로 나누어 단계별로 하면서 이상이 없는가 점검합니다. 수만대의 서버에 다양한 사용자들이 있으므로, 한참 지나서 생각지 못한 incompatibility가 발견되기도 합니다.

      이와 별개로 개발 과정에서 개발자들이 테스트 클러스터 하나씩 가지고 있어서 유닛 테스트 추가에 더해 production과 유사한 환경에서 추가 테스팅을 할 수 있습니다. 그 다음에 PR이 올라가고 review가 되지요. 프로젝트가 크지 않다면 commit할 때마다 unit tests를 다 돌릴텐데, 수시간 걸리는거라 nightly로 돌리는겁니다. prod가 좀 large scale이라서 그런 면의 테스팅은 개발과정에서 한계가 있습니다. 최대한 리뷰와 단계별 deploy로 문제를 발견하고 있습니다.

      프로세스가 제대로 없고 체계가 안잡인 것도 문제지만, 이노베이션을 발목잡는 process hell도 피해야하니까, 이게 모두 balancing act입니다. 엔지니어링 백그라운드가 없는 리더쉽은 컨설팅 회사나 누가 좋다고 하는 툴 사다가 enforce하여 해결하려고 하기도 하죠. 그러다가 rule보다 exception이 더 많은 process가 되는 경우도 예전 회사에서 경험했습니다.

      • 백엔드개발자 24.***.163.47

        와우, 개발자마다 테스트 클러스터 하나라니…
        뭔가 제가 기대했던 대로 운영하고 있는 곳도 있는 듯하여 마음이 좀 놓이네요. 상세한 설명 감사합니다 ^^

    • 배우는 이 165.***.205.3

      Sandbox / DEV – QA – PrePROD – PROD

      제대로 할려면 이정도 해야 합니다.
      Sandbox 에서는 O/S나 기타 사용하는 tool의 patch가 있을때 DEV 보다는 sandbox에서 먼저 업글하고 기본적인 것이 돌아가나 확인후에 DEV 에 적용하죠
      QA는 각팀의 각각의 Function에서 이상없나 확인하는 것이고… 테스트 데이타가 일부 들어가죠.
      Pre-PROD는 실제 데이타를 넣고 이상없는지 확인하는 부분인데 여기에는 production과 동일한 코드이고 그 적용하려는 부분만 새로운 코드가 들어가는 것이죠. 또다른 QA 서버인데 거의 모든 데이터가 있다고 보시면 됩니다.
      물론 QA에서 체크하지만 또 apply하는 순서나 기타 데이타와의 문제등등이 있기 때문에 한단계 더 두기도 합니다.
      여유가 있는 회사에서는 그렇죠 ㅎㅎㅎ

      미국에서는 스펙대로만 개발해서 올리면 본인 책임이 아니니까 별 군소리가 없는 것이겠죠.
      약간의 비효율이라고 생각하실 수 있지만 QA (Staging) 서버에서 전부 같이 확인하는 것이고 만약에 문제있으면
      다시 개발하고 다시 QA에서 확인하는 것이라 그게 미국 개발자들에게는 익숙할 지도 모릅니다.
      모든 것은 문서와 스펙대로 🙂

      • 백엔드개발자 24.***.163.47

        말씀해주신대로 이상적인 테스팅환경을 운영하는 곳이 한 곳 정도는 있겠죠?
        그런 곳을 만나기 전까지는 문서와 스펙대로 제가 여기 문화에 얼른 적응하면 되겠군요 ㅎㅎ 감사합니다 ^^