지난 글인 ‘스타트업에서 주니어 개발자 혼자 살아남기 #1’에서는 저의 1년간의 여정과 더불어 제가 개발의 정답을 찾아가는 과정을 공유했는데요.
오늘은 테스트 코드와 요즘 핫한 AI에 대한 저의 경험을 공유해보려 합니다.
테스트 코드… 그거 꼭 만들어야 하나요?
얼마 전 오렌지플래닛 전주센터에서 주최한 스타트업 간담회에서 스피커로서 TDD(Test Driven Development)에 대한 이야기를 했습니다. 갑론을박이 있을 만한 주제이지만, TDD든 NOT TDD든 상관없다는 의견을 발표했습니다.
<<테스트 코드를 작성하는 동안 소요되는 리소스를 무시할 수 없고, 비즈니스 로직 변경에 취약하기도 합니다.>> 그래서 빠르게 변화하는 스타트업에서는 어울리지 않을 수 있지만, 오히려 테스트 코드가 필요하다고 생각합니다.
저는 약 1000개의 테스트 케이스를 만들었지만, TDD를 지켜서 만들지는 않았습니다. 빠른 기능 개발을 위해 기능을 먼저 만들고, 이후 시간이 나는 대로 테스트 코드를 작성했습니다. 만약 기능이 변경된다면 작성해 놓은 테스트 코드를 과감히 버리고 새로 작성했습니다.
테스트 코드를 작성하고 얻은 점은 크게 2가지입니다.
1.
내 코드에 대한 자신감
테스트 코드는 원하는 대로 기능이 작동하는 것을 보장하기 때문에 테스트에만 통과한다면 내 코드가 잘 작동할 것이라는 믿음이 생겼습니다. 또한 CI/CD 파이프라인에 테스트 과정을 추가함으로써 배포에 대한 두려움도 사라졌습니다.
2.
사이드 이펙트 예방
점점 늘어나는 기능과 복잡해지는 코드에 놓치는 부분이 생길 수 있지만, 테스트 코드를 작성해 두면 여러 이유로 발생할 수 있는 사이드 이펙트를 미리 발견하고 수정할 수 있습니다.
이러한 이유로 빠른 변화에는 오히려 테스트 코드가 필요하다고 생각합니다. 아직 테스트 코드를 작성해 본 경험이 없다면, 열심히 작성한 테스트 코드가 통과하는 짜릿함을 맛보셨으면 좋겠습니다.
AI, 너 내 동료가 돼라
요즘 ChatGPT나 Copilot X 같은 AI 기술이 빠르게 발전하고 있으며 이미 많은 분이 사용하고 있습니다.
2023 Stackoverflow Developer Survey에서 AI 도구에 대한 개발자들의 의견을 알 수 있었습니다. 설문 전체 응답자 중 70%가 개발 프로세스에서 AI 도구를 사용 중이거나, 사용할 계획이 있다고 답했습니다. AI 도구의 이점으로는 생산성 향상 32.81%, 학습 속도 향상 25.17%, 효율성 향상 24.96% 등의 수치를 보였습니다.
저는 초반에 AI 도구에 대한 두려움을 느꼈지만, 이를 동료로 삼기로 생각을 바꿨습니다. 업무를 하면서 생기는 의문점이나 효율적인 방법을 ChatGPT와 대화하며 찾고, 공부할 때도 ChatGPT와의 대화를 통한 Drill-down 방식으로 더욱 세부적으로 학습하고 있습니다.
여러 명이 할 일을 한 명이 할 수 있게 도와주고, 축적된 데이터를 빠르게 찾을 수 있다는 AI 기술의 장점을 잘 활용한다면 주니어 개발자 혼자서도 +n년차 정도의 훌륭한 성과를 낼 수 있을 것입니다.
마무리하며
개발자는 평생 공부해야 하는 직업이라고 합니다. 그래서 더욱 공부와 친해지려고 노력했고, 항상 원리나 근본을 이해하기 위해 Top-down 방식의 학습법보다는 Bottom-up 방식의 학습법을 고집했습니다. 그 과정에서 처음에는 방대한 데이터에 압도당하는 기분이 들었습니다. 하지만 앞에 놓인 계단을 한 칸씩 오르면 된다는 생각과 “안 되는 건 없다.”라는 마인드 셋을 가졌기 때문에 어려움을 헤쳐 나갈 수 있었습니다.
성장하고자 하는 의지를 가지고 스타트업에서 다양한 경험을 한다면 멋진 주니어 개발자로 성장할 수 있지 않을까 생각합니다.
모든 주니어 개발자를 응원합니다:)
editor. 티모
개발자 스터디? 커뮤니티? 관심 있는 사람