TDD(6)
-
스프링 테스트 코드 전환기 근황2 (2/2): 작업 방식과 규칙
비욘세 규칙과 BDD 구글의 소프트웨어 엔지니어링이라는 책을 읽다보면 비욘세 규칙이라는 말이 나옵니다. 비욘세의 노래 Single ladies 중 가사 Cause if you like it, then you shoulda put a ring on it (네가 나를 좋았다면 프로포즈를 해줫어야지) 라는 내용에서 기인한 규칙이라는데요. 이걸 테스트 코드 작성과 연결해서 생각한다고 합니다. 구글에서 말하는 비욘세 규칙은 "필요했으면 테스트 했었어야지" 정도로 의역할 수 있을 것 같습니다. 책에서는 비욘세 규칙을 설명하면서 구글의 인프라 팀이 이 규칙을 활용해서 얻을 수 있었던 장점에대해 이야기합니다. 보통 인프라팀은 사내에 있는 대부분의 코드 베이스와 연관되어있고 긴밀한 협력관계에 있는 팀입니다. 따라서 인프..
2021.12.19 -
스프링 테스트 코드 전환기 근황2 (1/2): 어떻게 진행되고 있나?
회사에서 테스트 코드 전환을 시작한지 두 달 정도가 지난 것 같습니다. 연말이기도하고 짧은 기간동안 프로젝트가 어떤 변화를 거쳤고, 어떻게 발전해가고 있는지 정리하면 좋을 것 같아서 글을 남깁니다. 두 달간의 회고 테스트 코드 전환은 생각했던 것보다 순항 중이라고 생각합니다. 사내에 테스트 코드를 넣기 시작한 계기와 필요성을 어필할 수 있었던 자리가 있었는데, 대부분 긍정적으로 봐주셔서 너무 감사했습니다. 덕분에 작업하면서 올바른 방향으로 프로젝트가 발전하고 있다고 확신하고 작업할 수 있었던 것 같습니다. https://kok202.tistory.com/335 스프링 테스트 코드 전환기 근황1 (0/0) 발표 자료 https://kok202.tistory.com/331?category=979769 테스트..
2021.12.19 -
스프링 테스트 코드 전환기 근황1 (0/0) 발표 자료
https://kok202.tistory.com/331?category=979769 테스트 코드 전환기 시작 (1/3): 테스트가 필요하다 느꼈다. 트로이 목마 트로이 목마에 당했습니다. 실제 데스크탑이 트로이 목마 바이러스에 걸렸다는 의미는 아닙니다. 테스트 문화를 전파하는 너무나 강력한 트로이 목마에 걸렸습니다. 올해 초의 일 kok202.tistory.com 테스트 코드 전환을 하겠다고 말한지 두달 정도가 지났는데, 현재 상황은 어떻고 어떤식으로 진행되고있는지 글을 쓰려합니다. 그 전에 테스트 관련 공부를 하면서 느꼈던 점과, 왜 이런 프로젝트를 진행하고 있는지 회사 동료분들께 소개시켜드리고자 발표를 한번 한적이 있는데요. 이때 발표하면서 쓰였던 자료를 올려봅니다. * 파트내에 공유하는 목적으로 만..
2021.12.03 -
스프링 테스트 코드 전환기 시작 (3/3): 테스트 작성이 왜 어려웠을까
테스트 작성의 어려움 방향도 정했겠다. 단위 테스트는 어떻게 늘려가면 좋을까요? 진짜 간략하게 현재 프로젝트 코드에 대해 설명드리자면 아래와 같이 작성되어 있었습니다. @Service public class ServiceA { @Autowired private RepositoryA repositoryA; @Autowired private RepositoryB repositoryB; @Autowired private RepositoryC repositoryC; public void functionA () { A a = repositoryA.find(); B b = repositoryB.find(); C c = repositoryC.find(); // 정말 간단한 비즈니스 로직 repositoryA.save..
2021.10.10 -
스프링 테스트 코드 전환기 시작 (2/3): 테스트 코드를 어떤 방향으로 짤까
구글에서 말하는 테스트 책이 워낙 방대하니 책에서 말하는 테스트가 필요한 이유를 요약하겠습니다. 요점은 시스템이 확장하는데 테스트가 없다면 수정이 자유롭지 못하게 된다는 것입니다. 테스트 코드가 없다면 이 코드가 어디까지 영향을 줄지 예측할 수 없기 때문에, 개발자들은 코드 한번 수정하는데 소극적이게 됩니다. 그 결과 구글도 2000년대에 구글 웹서버를 확장하기 위해 수 많은 인력을 투입했으나 개발 속도에 진전이 없었다고합니다. 그리고 버그도 크게 줄어들지 않았다고 합니다. 개인적으로 올해 시스템이 커지면서 업무 상에 실수가 많았다고 생각하는데, 상황이 상황이었던지라 이런 대목을 읽으니 크게 공감하였습니다. 구글에서 정의한 테스트의 세 분류 구글에서 정의한 테스트는 크게 3가지로 분류할 수 있습니다. 소..
2021.10.10 -
스프링 테스트 코드 전환기 시작 (1/3): 테스트가 필요하다 느꼈다.
트로이 목마 트로이 목마에 당했습니다. 실제 데스크탑이 트로이 목마 바이러스에 걸렸다는 의미는 아닙니다. 테스트 문화를 전파하는 너무나 강력한 트로이 목마에 걸렸습니다. 올해 초의 일입니다. 회사에 후배님이 신규 입사하셨고, 저희 파트로 배정 받으셨습니다. 저는 후배님에게 현재 작업 중인 프로젝트에대해 설명을 드리며 개발할 내용을 나누었고 코드를 리뷰하고 있었습니다. 그러자 후배님께서 물으셨습니다. "저희는 테스트 코드가 없나요?" 네, 그렇습니다. 부끄럽게도 현재 개발 중인 프로젝트에는 테스트 코드가 거의 없습니다. 변명할 수 있는 이야기는 많지만 적지 않겠습니다. 말그대로 프로젝트 전반에 테스트 코드는 거의 없다고 봐도 무방비합니다. 처음 후배님이 이런 질문을 할 때 여러가지 이유를 들어 이렇게 된 ..
2021.10.10