[우테코 Level 1] 미션2. 사다리 타기, TDD

별의개발자커비·2024년 3월 3일
1

우테코 6기

목록 보기
3/22

흐릿해지는 TDD의 끝을 잡고

이번 2~3주차의 미션 학습 목표는 그 이름도 유명한, TDD였다.
사실 1주차도 TDD로 해보려고 시도를 해봤던터라 부담이 되지는 않았는데
오히려 그래서 TDD를 엄격하게 적용하지 못했던 부분이 있었던 것 같아서 조금 아쉬웠다.

특히, 리팩토링을 할 때나 출력 예시를 맞추기 위해 코드를 수정해야할 때 등의 후반 작업 상황에서 TDD 적용이 가장 덜 됐던 것 같아 아쉬움이 남는다.

물론 TDD를 엄격하게 적용해보다가 점점 자신에게 맞는 주기를 찾아가는 것이 필요하겠지만,
초심자인 나는 좀 더 엄격하게 적용해보는데 집중해봐야겠다!

YAGNI

이번 미션에서 리뷰를 진행하며 얻은 가장 큰 인사이트가 뭐냐고 한다면 YAGNI 원칙이라고 할 수 있다.
You aren't gonna need it 실제로 필요할 때 무조건 구현하되, 그저 필요할 것이라고 예상할 때에는 절대 구현하지 말라

저 문장을 보고 돌아본 내 코드는,
객체, 역할 분리에 초점을 맞추다보니 지나친 분리로 인해 가독성과 유지보수를 우선 순위에서 내린 코드라는 생각에 머리를 한 대 맞은 것 같았다.

모든 정책을 하나하나 분리하고 추상화한다면 어떤 새로운 요구사항이 들어와도 쉽게 수정할 수는 있겠으나, 코드가 복잡해지고 그만큼 유지보수도 어려워집니다. 반대로 확장성을 전혀 고려하지 않는다면 새로운 요구사항이 들어올 때마다 많은 클래스에 영향을 주겠죠.
이 사이의 적절한 협의점을 찾는 게 중요하다고 생각합니다. 이번 커비의 코드는 어떤 것 같나요?

분리했다가 다시 합쳐도 보고 이런 저런 시도들을 하면서 이 적절한 협의점을 찾는 것이 앞으로 주어진 과제 같다!

알고리즘 버려?

이번주 조원들이랑 이야기하면서 자주 나왔던 말.
알고리즘 준비도 미리 해야 취업 잘 된다는데... 알고리즘 스터디 할까?
그렇다. 알고리즘 불안기가 찾아왔고, 다들 비슷한 생각을 하고 있었어서 속전속결로 스터디를 만들자는 결론에 이르게 되었다.

속으로는 아... 알고리즘 재미없는데... 미션 공부 더 하고 싶은데...라는 생각이 들었지만,
취업을 하려면 하기 싫어도 해야하는 거겠지라는 생각으로 하자하자 분위기가 되었다.

그리고 이것에 대해서 브라운과 포비의 의견을 들을 수 있었는데,

미션과 관련된 공부를 하는 것이 미션을 하는 지금 가장 도움이 되는 공부 아닐까요?

좋은 회사를 가기 위해 알고리즘 문제를 매일 푼다면, 꾸역꾸역하게 되고 '아 미션해야하는데...'하면서 스트레스 받게 될 가능성이 높다.

회사를 따라가지 말고 회사가 따라오게 하자! 목표를 돈보다는 진짜 우리 삶에 필요한 것에 둬보자.

사실 내가 듣고 싶었던 말이었다.
나는 지금 미션과 미션과 관련해서 크루들과 나누는 토론들, 공부들이 너무 재밌다. 현재 시점의 나에게 그에 반해 알고리즘은 재미가 느껴지지 않는다.
그렇다면 현재 진행 중인 과정이자 내가 재미있는 것을 하는 데 시간을 들이는 것이 더 맞다고 생각이 들어 알고리즘은 당분간 편하게 놓아주기로 결심했다.

꼭 해야겠다면 레벨2쯤, 여력이 되고 필요하다는 동기부여가 강하게 들면 그 때 해도 되니까.
어찌보면 버리는 연습이라고 할 수 있겠다!

미션이 좋은 사람의 5차 리뷰

그렇게 알고리즘이나 CS 등 부가적인 것에 대한 생각을 내려놓고 다시 미션에 집중하면서 느낀점은,
나는 미션이, 그 과정에서의 고민이 좋다.

주위를 둘러보니 이번 미션은 일찍 merge된 크루들이 많아보였고 나의 리뷰어도 merge해도 된다는 이야기를 해주셨는데, 난 이 미션을 보내주기 싫었다😅
따라서 리팩토링에 리팩토링을 이어나가 5차 리뷰에 이르게 된 것이다...!

물론 리팩토링 과정에서 그냥 merge해달라고 할 걸 그랬나... 이게 몇 번째 구조를 갈아 엎는 거지...하며 머리를 쥐어뜯기도 했지만, 돌아보니 한 번 더 해보지 않았다면 하지 못했을 고민들을 할 수 있었던 점이 가장 큰 수익인 것 같다!

사다리 미션 진짜최종찐최최종 완료!

극단적 성과증명주의자의 학습 마인드셋 전환이라

이번주 소프트 스킬 강의에서는 성과증명 마인드셋과 학습 마인드셋 두가지를 다루었는데,

성과 증명 마인드셋 특
1. 나의 외부에의 증명에 집중
2. 내가 얼마나 잘하는지 증명하고 싶다.
3. 실패에 좌절하고 회복에 오래 걸림

그... 누가 제 소개 적어놨나요...
그렇다. 나는 극극극극 성과증명 마인드셋 풀충전 인간이다.
코딩을 처음 공부하고 우테코를 준비하면서는 크게 문제가 되지 않았다. 아니, 오히려 이 성과증명 마인드가 강력한 동기가 되어 프리코스를 버텨낼 수 있게 했다고 봐야 맞겠다.

하지만 우테코에 와서는 달랐다. 우테코가 시작되고 나서 매일 보는 주위의 잘하는 크루들, 또 미션 과정에서 느끼는 수많은 자잘한 실패들.
초반, 이런 상황들을 겪으면서 나의 성과증명 마인드셋은

잔잔한 우울감과
무의식적으로 계속해서 드는 비교들,
저정도를 따라잡으려면 어떻게 해야하지하는 고민들,
꼭 따라잡겠다는 비장한 마음들

을 내게 가져다 주었다.

그러다보니 미션개발 공부보다 따라잡는 것, 더 잘해지는 것이 목표가 되어가고 있었고,
자연스레 마음가짐이 개발이 재밌다. 보다는 개발을 더 잘해야겠다.가 된 나였던 것이다.
하지만 그동안 질리도록 겪어봐서 안다.
재미나 다른 동기 없이 그저 잘해져야겠다 라는 동기로 하는 일이란, 지속한다기보다 버티는 것에 가깝고 그걸 버티기 위해 얼마나 많이 나를 갈아넣어야하는지를.
그래서 이 성과증명 마인드셋과 반대되는 학습 마인드셋을 보고 저게 어쩌면 내가 찾던 건강한 동기일 수 있겠다는 생각이 바로 들었던 것 같다.

학습 마인드셋
1. 나의 성장에 집중
2. 잘하는 사람을 만나면, 오 내가 배울 수 있는 게 많겠네 좋다! 피하려고 하면 더 스트레스니까 내가 부족한 건 인정하고.
3. 실패를 오히려 좋아.한다. 오히려 성공할 수 있는 발판의 계기로 생각한다. 실패를 마주할 수록 배로 노력하고, 개선 방법을 적극적으로 찾음. 어려움 닥쳐도 노력 멈추지 않음.

개발 = 재밌는 거

위의 소프트 스킬 강의의 학습 마인드셋과도 연관되지만,
저번주에 있었던 포수타, 그리고 코치 브라운과의 커피챗에서 나눴던 이야기들에서 공통적으로 강조하는 한가지가 있었다.

개발을 재밌는 것이라고 인식하는 것.
나는 개발을 재밌는 것이라고 생각했는가?
사실 바로 그렇다. 라고 대답이 나오지 않았다.

어쩌면 우테코를, 그리고 여기서 공부하는 과정을 좋은 회사에 입사하기 위한 과정이라고 생각하기도 했던 것 같다.
하지만, 이 곳에서의 몇 주를 보내다보니 그게 최고의 가치가 아닐 수도 있겠다는 생각이 들면서, 그것보다 더 매력적으로 느껴지는 것이 슬금슬금 마음 속에 생겨나고 있다.

바로, 평생 재밌게 개발하기

사실 내 안의 결핍, 공허함을 채우고자 그동안 계속해서 무언가를 성취하려는 삶을 살았었다. 하지만, 요 몇 주 그런 공허함에 대해서 잊고 살았다. 그 이유는 개발 공부와 팀원들, 크루들간의 토론이 주는 성취감과 재미로 충분해서였던 것 같다.

그렇다면 내려놓을 수 있겠다는 생각이 든다!
1년 뒤의 취업을 꼭 좋은 회사로 해야한다는 목표를 말이다. 대신 조정하는 거다.
지금 여기서 재밌게 개발 공부하기. 그리고 평생 재밌게 개발하기로!

0개의 댓글