답변
테스트코드, 현업에서 “우선은” 쓰입니다.
FE 현업에서 테스트 코드 무용론이 사실인 경우도 종종 있습니다.
저는 테스트 코드를 짜는 것을 선호하지 않지만, 짜야한다고 생각을 하지만, 잘 안짜게 됩니다.
개인 의견
총 4개의 회사에서 FE로 개발을 했습니다. 제가 왜 테스트코드를 잘 안짜는지….변명을 해보겠습니다.
1번 회사. 2016~2018년
- 스타트업 1년도 안된 회사. Be/Fe 명확히 구분 없이 Server Side Rendering이었습니다.
- MVC모델(Model View Controller)을 통해서 View 정도만 하거나, 조금 더 하면 컨트롤러 정도까지 개발했었습니다. 따로 View 만 테스트 코드 짜는게 많지 않았고, 코드 파일 하나가 거대했습니다.
- 테스트 코드 하나 짜는게 무의미했던게, 개발을 너무 못했어서 하나의 Controller, View에서 너무 많은 일을 하고 복잡한 로직을 갖고 있었습니다. 하나 바꾸면 다 바뀌어서 테스트케이스가 다 깨져버렸고, 그게 발목을 잡았기도 했습니다.
- 결론은, 코드를 너무 못짰었고 best practice가 없어서 테스트 코드가 무용지물 이었습니다.
- 늘 하는 말이, 이거 코드 고치고 테스트코드 짤 바야, 새로 빨리 만들겠다~~ 였습니다. ⇒ 다 변명입니다.
- 반대로 생각하면, 정말 로직이 복잡했기에 코드 분리 잘하고 테스트 코드를 잘 짰다면 의미가 있었을 것 같습니다.
- 아무튼, 테스트케이스를 만들자는 내부 개발자의 의견은 많진 않았습니다
2번 회사. 2018년~2020년
- 총 인원 7명정도의 소규모 회사였습니다.
- 일단 CTO, CEO님의 기조대로, 빠른시도, 빠른 pivot, 빠른판단, 빠른선점 등등 모든걸 빠르게 했습니다.
- 정말 계획대로 착착착 빠르게 했긴했습니다.
- 그 빠르게 하는 것에는, 테스트케이스 짜는건 전혀 고려되지 않았습니다. 정말 서비스를 만들고 유저에게 피드백을 받고, 과감하게 피드백 반영해서 기획/디자인/개발을 다 바꾼다는 기조였습니다.
- 테스트 케이스 짰었으면, 배 아팠을 것 같습니다. 진짜 모든게 계속 바뀌었습니다.
3번 회사. 2021년
- 나름 큰 규모의 회사였습니다.
- 회사가 테스트케이스를 짠 경험은 많진 않았으나, React FE 코드 부분적으로 짜여있고, 개인의 주도하에 짜는 경우가 많았습니다.
- FE 개발자끼리 많은 대화를 통해서, 테스트케이스도 중요하지만 더 중요한 우선순위를 두었었습니다.
- 코드리뷰는 정말 잘하자. 남이 1의 노력을 해서 PR을 올렸다면, 나도 1에 준하게 노력해서 코드리뷰를 하자.
- 페어프로그래밍을 지향하자. 바쁘다는 핑계로 코드리뷰도 잘 못하고, 테스트케이스도 잘 못짜고 있다. 주기적으로 페어프로그래밍을 하면서 코드를 잘 짜자.
- 그러다 보니, 또 자연스럽게 테스트코드를 잘 안짰습니다. (물론 그 와중에 열심히 테스트 케이스를 짜는 개발자 동료도 있었습니다)
4번 회사. 2022년~2023년
- 회사 전반적으로 테스트케이스를 강조하고 많이 짜고 있습니다.
- 물론 기획/디자인이 자주 바뀌어서 테스트케이스도 계속 바뀌고 업데이트 되는 경우가 있습니다.
- 그래서 내린 결론은, 디자인과 관련된 것 보다는, 메인 로직과 관련된 코드를 UI 코드(view영역)와 잘 분리를 시키는게 1순위고, 그 분리된 코드에 대해서 테스트 케이스를 짜는 것입니다.
- 기획/디자인이 자주 바뀔 수 있긴하지만, 가능한 메인 로직은 정말 극적으로 바뀌는 경우는 드물어서요.
- 그래서 나름 잘 짜여지고 있는 것 같기도 합니다.
- 그런데 말입니다… FE 개발자가 어떤 팀에 속해서 어떤 일을 하냐에 따라 약간의 차이가 있습니다.
- 기존에 유저가 많고 오랫동안 서비스해온 기능/페이지의 경우 당연히 테스트코드도 짜고, 한땀한땀 노력을 해서 개선을 합니다.
- 반면 빠른 검증(PoC)를 하거나 R&D를 하는 팀은 빠른 시도/빠른 결론도출/빠른 서비스 출시를 하는 경우가 있어서, 어느정도 테스트코드를 감안하고 짜지 않는 경우도 존재한다고
저는
생각합니다.
- 저는 늘 이렇게 사업적으로 빠른 시도를 하는 팀에서 일했던 것 같고, 2023년 6월 14일 기준 제가 빠르게 시도해서 출시하거나 태핑한 서비스는 많이 서비스를 중단하게 되었네요.
- 하지만, 저도 테스트코드가 필요한 부분에 대해서 동료에게 배우고 조언 받고 짜고 있습니다!!
그러므로, 저는 테스트코드는 필요시 잘 짜야한다고 생각합니다. 하지만 저는 성향상 빠른 시도를 하는 팀을 선호하기도 하고, 상대적으로 테스트코드를 잘 안짜길 선호합니다.
테스트코드를 잘 짜는 건, 회사차원에서 엄청 메리트 있는 능력으로 보기에, 굳이 지금부터 안짤 필요는 없다고 생각합니다. 테스트코드를 잘 짜는데, 회사차원에서 사용을 안하는거랑, 테스트코드를 아에 못짜서, 못하는 것은 다를테니까요.