인프랩 퇴근길밋업 백엔드 테스트코드 후기
🐳 인프랩 7월 퇴근길 밋업 #백엔드 테스트코드
인프랩에서 진행하는 퇴근길 밋업에 매달 지원을 했는데 번번이 실패 ... ㅠ
특히나 사이드 프로젝트는 정말 가고 싶었는데 ...
하지만 굴하지 않고 7월 퇴근길 밋업 #백엔드 테스트코드에도 지원 !
개발자라면 정말 필요한 주제이기도 하고 회사에 도움이 될 만한 얘기가 또 없을까 하는 마음에 정말 너무 가고 싶었다.
결과는 !!
당.첨.
비록 .... 인프콘은 떨어졌지만 ㅠㅠㅠㅠ 퇴근길 밋업을 보내주시려고 그랬나 보다.
회사에도 퇴근길 밋업 간다고 자랑도 엄청 하고 테스트 코드에 관해 궁금한 것들도 준비를 해서 갔다 !
정말 너무너무 기대가 됐다 !!!
🐳 입장
3동은 후문, 정문이 있다고 하는데 후문이 아닌 정문으로 들어오도록 안내가 정말 잘 되어 있었다.
( 후문에도 정문으로 가는 방향까지 표시해 주는 섬세함이 돋보였다. )
6시 40분에 입장 후 간단한 확인 ( 문자내역을 확인하셨다 ) 과 함께 명찰을 나눠주시고 음료와 써브웨이 샌드위치를 가져가면 된다고 안내해 주셨다.
아무도 지키고 있지 않아서 편하게 먹고 싶은 맛을 골라 먹을 수 있었다 ! ( 저는 로티세리 샌드위치 먹었습니다 ! )
이런 것도 다 사진을 찍어 놓을 걸 ... 너무 허겁지겁 먹어서 사진이 없습니다 ...
샌드위치를 먹고 조금 쉬니 금방 7시가 되었고 드디어 세션이 시작됐다 !
🐳 1부 : 내 마음대로 되지 않는 테스트코드 왜 작성해야 할까?
1부는 인프런 백엔드 개발자 김명일 님이 발표를 진행해 주셨다.
주제는 내 마음대로 되지 않는 테스트코드 왜 작성해야 할까? ( 이론편 )
발표의 큰 줄기는 두 가지였다.
🐸 1-1. 왜 테스트 코드를 작성해야할까 ?
발표해 주신 내용은 크게 네 가지였다.
1. 사람이 하는 것보다 훨씬 빠르고 자주 수행이 가능하다.
이는 테스트를 자주 할 수 있게 만들어 준다.
이는 빠른 피드백과 짧은 주기의 배포로 이어진다
2. 테스트로 검증된 최신 명세서의 역할을 한다.
3. 심리적 안정감을 준다.
4. 코드 변경으로 인한 회귀 테스트 감지 역할을 한다.
🐸 1-2. 좋은 테스트의 기준은 무엇일까.
발표에서 말한 좋은 테스트의 기준은 다음과 같았다.
1. 빠른 테스트
2. 쉽게 깨지지 않는 테스트
3. 회귀 방지를 잘해주는 테스트
자세한 내용은 1부, 2부, QnA 글로 별도 작성하겠습니다.
🐳 2부 : 내 마음대로 되지 않는 테스트 코드, 어떻게 작성해야 할까 ? ( 현실편 )
2부는 인프런 백엔드 개발자 김학산님이 발표를 진행해 주셨다.
주제는 테스트코드의 현실적인 부분이었다.
모두가 이상적인 환경에서 개발을 진행하는 것이 아니기 때문에 이 발표가 정말 와닿았다.
김학산 발표자님이 발표해 주신 내용의 큰 줄기는 아래와 같았다.
🐸 2-1. 무엇을 테스트할 것인가
이 세션에서는 말 그대로 어떤 것을 테스트할 지에 대해서 발표해 주셨다.
뿐만 아니라 엣지케이스는 어떻게 처리하는지 코드의 어느 영역부터 테스트하는지에 대한 내용도 함께 발표해 주셨다.
이 부분 발표에서는 도서 단위테스트에 나오는 내용을 기반으로 설명해 주셨는데 어려운 내용이 쉽게 이해가 되었다.
🐸 2-2. 외부 의존성 관리
테스트 코드를 작성하다 보면 어느 것을 모킹을 해야 하고 어느 것을 모킹을 하지 말아야 할지에 대한 고민이 많았을 것이다.
외부 의존성 관리 부분 발표에서는 어떤 것을 모킹해야 하는지 상세한 예시 그리고 근거를 기반으로 설명해 주셨다.
이 부분 발표가 앞으로 실무에서 테스트를 작성해 나감에 있어서 모킹에 대한 기준을 제시해 줄 수 있을 것 같아서 도움이 정말 많이 됐다 !
🐸 2-3. 테스트의 현실적인 고민
빠르게 굴러가는 스타트업 특성상 테스트 코드를 작성할 시간조차 넉넉하게 주어지지 않을 것이다.
이러한 상황에서 어떻게 테스트 코드를 효율적으로 작성할 수 있는지 현재 발표자님의 상황을 들려주셨다.
발표에서 다뤘던 내용은 아래와 같았다.
- 어떻게 테스트 시간을 확보하는지
- 확보한 시간을 어떻게 효율적으로 활용해 테스트를 작성하는지
- 어떻게 노력의 가성비 있게 테스트하는지
정말 하나같이 실무에서 테스트를 작성하는 사람들에게 필요한 내용이지 않을 수 없었다.
🐸 2-4. 테스트코드 관리
그리고 마지막은 테스트 코드를 관리하는 철학에 대해 발표가 진행됐다.
테스트코드 자체도 하나의 관리의 대상이기 때문에 리팩토링, 관리가 필수라고 하셨다.
이는 테스트코드가 명세서의 역할도 할 뿐만 아니라 테스트 실행 속도와도 연관이 되기 때문이다.
🐳 QnA
모든 발표가 끝난 후에 QnA 가 진행 되었다.
QnA 시간에는 개발자들의 연예인 향로님이 함께 나와 진행을 맡아주셨다 !
향로님이 전체적으로 진행을 맡아 주시면서 질문자의 내용도 정리해 주실 뿐만 아니라
질문에서 더 좋은 인사이트를 끌어내어 질문자도 답변자도 더 생각해 볼 수 있게 해 주셨다.
QnA 시간에 전반적으로 각자의 상황에서 겪는 테스트에 관련된 궁금한 것들을 많이 나눌 수 있었고
시간이 모자라 다들 궁금했던 것을 질문하지 못할 정도로 많은 분들이 적극적으로 질문해 주셨다.
나도 시간이 조금만 더 있었더라면 하나만 더 질문하고 싶었는데 시간이 모자라서 너무 아쉬웠다.
🐳 후기
누구나 테스트 코드를 작성해야 한다는 것은 알고 있을 테지만
실무는 이상과는 다르기에 어느 수준까지 작성을 해야 하는지에 대한 고민을 많이들 하고 있지 않았을까 ?
그리고 그런 사람들이 함께 모여 다양한 얘기를 나누니 생각지도 못한 인사이트들을 많이 얻을 수 있었다.
그리고 이번 퇴근길 밋업 테스트코드편에서 얻은 가장 큰 교훈은
나는 테스트코드를 작성하기 위해 존재하는 사람이 아니라는 것이었다.
나는 보기 좋고 아름답고 잘 짜인 테스트코드를 위해 존재하는 것이 아니다.
이 말은 회사는 내가 예술을 하기 위해 존재하는 것이 아니라는 것이다.
테스트 코드의 목적은 개발 생산성, 장애 대응, 에러 방지가 되어야지
테스트 코드 짜는 것 자체에 목적을 두고 너무 많은 에너지를 소비하면 안 된다는 것이다.
내가 작성하는 테스트코드가 팀과 회사에 얼마나 도움이 되는지
그리고 팀과 회사에 도움이 되기 위해 테스트코드를 어떻게 활용해야 할지에 대해서 깊게 고민해 볼 수 있는 시간이었다.
18:30 ~ 20:30 까지 정말 짧은 시간이지만 다양한 것을 배우고
내가 왜 테스트 코드를 작성해야 하는지를 깨닫는 시간이 되었다.
마지막으로 이런 좋은 시간을 마련해 준 인프랩에 정말 감사하다는 말씀을 전합니다 !