본문 바로가기

일기

[회고] 우테코 레벨 3 회고 - (2) 근로와 테코톡

지원플랫폼 근로

코틀린 DSL로 인수테스트 픽스쳐 만들기 (혹은 Controller 리팩토링..)

레벨 2가 끝날 때쯤 본격적인 태스크를 배정받았다. 그건 바로 코틀린 DSL로 인수테스트 픽스쳐 만들기!

처음부터 쉽지 않을 거라는 예상은 했었지만... 예상보다 10배는 더 쉽지 않은 여정이었다.

 

우선 페어인 애쉬와 처음 만나 도메인 파악부터 시작했다. 어느정도 도메인을 안다고 생각했는데 자세히 살펴보니 도메인 이름부터 용도까지 전체를 파악하는 게 쉽지 않았다. 처음에 도메인을 확실히 정리하고 가니 그 뒤에 도메인을 몰라서 헷갈리거나 막히는 일은 없었다.

 

파악한 도메인들을 정리해둔 비밀글

 

하지만 픽스쳐를 만드는 과정에서 수많은 벽에 부딪혔다. 자세한 내용은 쓰면 안 될 수도 있어서 대충 써보자면 이렇다.

 

1. 저장 api가...
2. 단건 조회 api는 또...
3. id랑 객체 둘 다 받을 수 있게 하라고?
4. 관리자 로그인 무엇..
5. webTestClient 어떻게 쓰는 거야
6. DTO 종류 구분이 안 되네 뭘 써야 해

 

간단하게 써놨지만 하나하나 고통의 연속이었다. 심지어 레벨 3에 애쉬와 다른 캠퍼스에 배정되는 바람에 온라인으로 보거나 캠퍼스를 왔다 갔다 하면서 만나야 해서 더 힘들었다.

 

당시 내 심정

2.1.0 개발 회고 때도 얘기했었지만 월요일 회의 때마다 다른 팀은 kotest든, restdocs든 뭔가 결과물을 하나 둘 가져오는데 나는 항상 이게 안 되고 저게 안 돼서 이렇다 할 결과물이 없다는 게 아쉬웠다. 게다가 평일엔 시간이 없으니 주로 주말에 애쉬와 만났다. 그러다 보니 월-금 동안은 개발을 진행하지 못하고 주말엔 중간에 막혀도 코치분들에게 물어보기 어려워서 속도가 더 더뎠던 것 같아 아쉽다.

 

그래도 이것저것 삽질해보면서 controller, service, domain, dto 코드는 거의 다 읽어본 것 같다. 코틀린 DSL과 webClient에 대해서도 공부해볼 수 있었던 좋은 기회였다.

페어인 애쉬한테도 고마웠다. 바쁜 데다 고민할 것도 많고 어려웠는데 항상 열심히 해주고 칭찬도 많이 해줘서 재밌게 페어할 수 있었던 것 같다. thanks.

 

결론적으로 픽스쳐는 거의 손도 못 대고 일단 컨트롤러부터 리팩토링 해야 할 부분이 많아서 제이슨, 케이와 페어로 컨트롤러 리팩토링을 진행했다. 제이슨이랑 페어하면 재밌고 또 얻어가는 것도 많아서 좋다. 여튼 이거라도 해서 다행이라고 생각했다.

 

근로 전체 회식도 진행했는데 7월 이달의 크루로 내가 뽑혔다. 와우. 별로 한 것도 없는데.. 솔직히 기분이 매우 좋았다. 다들 감사합니다.

 

우리 근로가 바쁘지만 그만큼 많이 배울 수 있는 것 같다. 아쉬운 점을 많이 써놨지만 아쉬운 만큼 근로에 진심이라는 뜻 아닐까? 이번 레벨 4 때는 진짜 배포라서 더 바쁠 텐데 후회 없게 해야지. 3.0.0 아자아자🔥 

 

테코톡

레벨 2 때 못한 테코톡을 이번에 아키와 하게 되었다. 주제는 자바 리플렉션. 솔직히 리플렉션이 뭔지도 모르고 신청했다. 

 

처음에는 테코톡에 대해 생각하는 것만으로도 스트레스였다. 프로젝트와 근로는 일이 많아도 내가 좋아하고 하고 싶은 일이라 정신적으로 버틸 수 있었지만 테코톡은 하고 싶지 않은 일이었기 때문이다. 그래도 돌아보면 다신 없을 좋은 경험이었던 것도 사실이다. (이미 끝나서 미화됐을지도)

 

우테코를 하면서 수많은 키워드를 공부했지만 리플렉션만큼 깊게 공부해본 주제는 없다. 아키와 나 모두 리플렉션이 뭔지 몰랐기 때문에 온갖 인강과 유튜브를 찾아 보고 공식 문서를 번역해가며 함께 공부했다. 리플렉션이 라이브러리에서 어떻게 사용되는지 알기 위해 라이브러리 코드도 엄청 까봤다. 이것 저것 테스트도 해보고 직접 DI 프레임 워크도 만들어보고 삽질도 많이 했다.

 

그리고 테코톡을 위해서는 나 혼자 이해하고 끝날 게 아니라 남을 이해시켜야 했다. 영상이 유튜브에 박제되기 때문에 정확한 정보를 전달해야 했다. 그래서 더 열심히 공부할 수밖에 없었다. 아마 테코톡이 아니었다면 이런 경험을 못했을 것 같다.

 

특히나 가장 어려웠던 건 '기본 생성자가 왜 필요할까?'에 대한 답을 찾는 것이었다. 지금 구글에 기본 생성자가 필요한 이유를 쳐보면 하나 같이 '리플렉션이 유일하게 알 수 없는 것이 생성자의 인자 정보이기 때문'이라는 내용만 나온다. 

 

 

처음엔 나도 큰 의심 없이 이 내용을 가져다 썼다. 하지만 차리가 1분 만에 리플렉션으로 생성자의 파라미터 정보를 들고 오는 걸 보여줬다ㅎ. 이렇게 발표 전 날 회차리를 정통으로 맞고 내용을 전면 수정했다. 기본 생성자가 필요한 이유가 어디에 명확히 나와있지 않아서 공부하기 어려웠지만 인터넷에 돌아다니는 잘못된 정보를 처음으로 바로 잡은 한국어 자료가 우리의 테코톡 영상이 될 것 같아 뿌듯했다.

 

아키와 테코톡을 함께 준비한 것도 참 다행이었다. 혼자 했으면 부담감이 배가 되었을 것 같다. 둘이 테코톡에 대한 열정이 비슷한 것도 정말 좋았다. 둘 중 한 명이 너무 열정적이거나 그 반대였다면 힘들었을텐데 우리는 테코톡에 대한 열정이 비슷해서 큰 문제가 없었다. 또 내가 체력적인 문제로 주말에 게더에서 보자고 하거나 준비하다가 중간에 자러 간 적도 몇 번 있었는데 아키는 항상 괜찮다며 나를 배려해줬다. 종종 함께 수다를 떨거나 아키 특유의 농담을 듣는 것도 즐거웠다.

 

물론 아쉬운 점도 있다. 둘이서 하니 테코톡 준비를 위해서는 매번 시간을 조율해야 한다는 점은 단점이었다. 심지어 캠퍼스도 달라서 더 만나기 어려웠다. 또 내가 평소에 관심 있던 주제를 선택했다면 더 즐거운 마음으로 테코톡을 준비할 수 있었을 것 같긴 하다. (코틀린이라던가..)

 

그래도 이만하면 아주 만족스러운 과정과 결과물이라고 생각한다! 후회는 없다.

며칠 전 올라온 아키와 파랑의 자바 리플렉션 테코톡 영상을 마지막으로 레벨 3 회고를 마무리한다. good.