글 쓰는 또라이가 세상을 바꾼다/8기

프론트엔드 취준생의 TDD 적응기 1

명에 2023. 4. 9. 21:51

서론

감사하게도 최근에 메이커준님이 진행하는 TDD 스터디에 참가할 수 있었습니다.

저는 TDD 스터디에 참가하면서 TDD란 무엇이고 왜 이것을 해야하는지, 어떻게 하는 것인지 감을 잡게 되었습니다.

우리가 쉽게 검색해서 접할 수 있는 내용들과는 약간은 결이 다른 내용, 핵심이 다른 내용이라고 느껴졌고,

그래서 이 경험을 다른 분들한테 공유하고 싶어 글을 쓰게 되었습니다.

 

이 글을 빌어 메이커준님께 감사의 인사 드립니다. 

 

경험을 읽고, 교육을 하는 메이커준입니다.

👋🏼 메이커준 초간단 소개

www.makerjun.com


우선 TDD가 무엇이고 어떻게 쓰고 이런 것은 방법, 수단의 영역입니다.

제 의견은 "이러한 것(방법, 수단)들은 동기나 문제가 충분히 정의되지 않았을 때 공부하는 것은 큰 의미가 없다" 입니다.

그래서 동기와 TDD를 사용해서 해결하고 싶은 문제들을 이번 글에서 풀어보고자 합니다.

 

동기 - 왜 TDD를 배우려 했는가

두 가지 이유가 있습니다.

 

우아한테크코스 프리코스에서 테스트 코드를 작성하고, 이를 통과하는 코드를 짜는 활동들을 했었습니다.

TDD가 무엇인지, 이것을 왜 해야하는지 모르는 상태에서 위와 같은 활동을 했었고

매번 테스트 코드를 작성하고 원래 코드에 맞춰 수정하는 일이 빈번했습니다.

 

이렇게 TDD를 서툴게 활용했을 때, 놀랍지만 제가 얻는 이득이 존재했습니다.

 

1. 테스트 코드를 작성하면서 이 기능의 역할, 반환값, 예외 등을 코드 작성 이전에 고민하고 작성할 수 있었다는 것

2. 이 기능이 정확히 작동하는지 빠르게 알 수 있었다는 것

 

그래서 저는 이 TDD라는 것을 공부해보고 싶었습니다.

 

 

다른 하나는 너무나 현실적인 이유입니다.

 

프론트엔드 채용 공고 내 우대 사항에 테스트 자동화/TDD 등의 내용이 상당히 많았습니다.

전통적 / IT 대기업, 중견 기업, 스타트업 가릴 것 없이 프론트엔드 JD에 테스트 관련 언급들이 굉장히 많았었어요.

즉, 내가 취업을 하기 위해서 TDD를 공부해보는 것이 유리하겠구나 생각할 수 있게 되었던 지점이었습니다.

 

프론트엔드 개발자 채용 정보 | 트레이디

트레이디는 대한민국을 넘어 세계로 미래로 뻗어가는 스타트업이에요. 빅데이터 기술력을 바탕으로 경제, 비즈니스, 생활 속 다양한 사회적 문제를 해결하고 있습니다. 뉴스경제 정보, 생활 속

www.rocketpunch.com

 

토스채용

공고 자세히 보기

toss.im

 

 

 

이젠 TDD를 왜 배우고 싶었는지 이야기를 다 했으니, 해결하고 싶은 문제 이야기를 해볼까 합니다.

 

저는 이전부터 글을 잘 쓰고 싶었습니다.

왜냐하면 잘 쓴 글과 이미지, 영상들로부터 많은 도움을 받고 성장했기 때문입니다.

즉, 다른 사람들의 멋진 글을 보며 성장했었기에 잘 쓴 글 하나가 미치는 영향력을 몸소 깨닫게 된 것이죠.

 

이제는 저도 글을 잘 써서 다른 분들한테 좋은 영향을 주고 싶었습니다.

본인이 가진 역량을 드러내면서 타인에게 좋은 영향을 주는 것 중 제일 좋은 것은 지식 나눔이고

지식 나눔 중에서도 가장 대중적인 방법이 글쓰기라고 생각했기 때문이에요.

그래서 이렇게 글을 쓰고 있는게 아니겠어요?

 

그래서 글을 쓰기 시작했고, 글을 쓰다 보니 제 글이 마음이 들지 않다는 생각이 매번 들었어요.

왜 그랬을까요?

 

문제 정의

문제를 이야기하기 전에 제 글을 가져와 보겠습니다.

얕은 복사와 깊은 복사

 

위 글을 읽으면서 어떤 생각이 드셨나요? 이해는 쉽게 되셨나요?

저는 제가 쓴 글을 읽으면서 독자님들이 쉽게 이해할 수 없다고 생각했어요.

 

재그지그의 개발 블로그로도 유명하신 정종윤님도 저와 같은 생각을 했는지

개인적으로 이렇게 복잡한 주소 관계를 나타내는 경우에는 다이어그램이 있으면 더 이해하기 쉬웠던 것 같아요!

라고 피드백을 주셨습니다. (감사합니다 종윤님!!)

 

정리하자면

문제는 "이해를 돕기 위한 이미지가 없는 것"이고 이유는 "이미지 없이 내용을 이해하기 어려우니까"라고 정의할 수 있었습니다.

 

그런데 문제가 그것만 있었을까요?

 

저는 위의 문제에도 동의하지만, 그것만이 문제라고 생각하지 않았어요.

그것보다 더 집중했던 문제는 글의 구성, 레이아웃이었습니다.

 

 

이전에 아이패드용 스위프트 플레이그라운드라는 앱을 즐겨했었어요.

저는 이 앱을 사용하면서 매우 흥미로웠습니다.

이 앱은 일반적인 글의 형태와 조금 다를지도 모르지만, 제게 글과 이미지가 세로로 나열된 것보다 더 좋은 사용자 경험을 주었어요.

그래서 이런 방식으로 글을 구성하면 어떨까, 더 이해하기 쉽지 않을까? 싶었습니다.

 

 

글이 조금 길어졌으니 다음 글에서 문제 분석과 TDD 정의, 한 사이클을 적용한 결과 등에 대해서 이야기를 해보겠습니다.

읽어주셔서 감사합니다.