5주차 회고록

동오·2024년 12월 21일

12월 16일 ~ 12월 20일

이번 주는 다른건 신경쓸 여유가 없었고 오로지 Sbb를 다시 구현하는데만 집중했었다.
성능 부분에서도 이전과 비교했을 때 많이 개선됐고 테스트 커버리지 또한 의도하진 않았지만 높은 결과를 만들어 냈었다.

지금까지 데브코스 진행하면서 체득했던게 많았던 주가 아니었나 생각이 든다.

Sbb2

SBB레포
점프 투 스프링부트

지난 주에 진행했던 SBB의 기능개선을 진행 후 추가 기능 구현을 할 계획을 잡았었고 주말간 그에 맞춰서 진행을 했었으나 문제가 발생했었다.

이미 로직이 다 구현된 상태에서 뭐 하나 고치려고하면 모든걸 뜯어고쳐야되는 문제가 발생했다.
또한 책으로 기능을 다 구현해둔 상태에서 리팩토링을 할라하니 이만저만 보통일이 아니기도 했었고 실제 서비스중인 상태라면 당연히 현재보다 로직이 훨씬 많고 복잡하기에 다시 만드는 것보다는 수정을 하는게 좋을거고 또한 설계를 잘 해뒀다면 리팩토링하는데 여러곳에서 문제가 발생하지는 않을테니 리팩토링하는게 맞는 방안이지만 현재는 로직이 그렇게 복잡하지는 않기에 다시 만드는건 크게 어려움이 없을거라고 판단해서 그냥 다 날리고 책을 보지 않고 구현을 시작했다.

TDD로 개발을 진행했고 생각보다 적응이 좀 됐는지 예전에 사이드 프로젝트 할 때 보다는 좀 더 기능 구현 속도도 빨라진 거 같고 좀 더 꼼꼼하게 로직을 구현할 수 있다는 걸 조금은 깨달은 거 같다.

또한 쿼리가 많이나갔던 기존의 Sbb의 문제점을 많이 개선시켰고 querydsl을 사용하여 조회 로직의 성능을 많이 개선시켰다.

기존에는 조회시 최소 5개씩 나가던 쿼리를 이제는 최소 1개에서 많으면 2개로 줄였다.
만약 100명의 유저가 동시에 조회를 한다면 500개의 쿼리가 나가던걸 100~200개로 줄였다는거고 더 많은 유저가 있다면 그 차이는 더 많이 날 것이다.

일주일간 다시 구현하느라고 좀 힘들기도 했고 오랜만에 다시 querydsl을 사용해서 버벅이던 시간도 많았지만 결과적으로는 얻어간게 더 많았더 시간이지 않았나 싶다.

Querydsl, TDD의 장점, fetch join, 페이징 등등 sbb2를 만들면서 사용했던 모든 것들을 조금씩 찾아보면서 했다보니 그만큼 체득도 많이 된 거 같고 물론 사이드 프로젝트를 하면서도 체득을 어느정도 했지만 이거 하면서 고민도 제일 많이했었고 여러 방안들을 떠올려보며 비교해보고 이랬던 시간이 많았어서 많은걸 얻었던 한 주 였다.

테스트 커버리지

테스트 커버리지는 예전에 찾아봤었는데 지금까지 이걸 신경쓰면서 프로젝트, 학습을 진행한 적이 한 번도 없었다.

심지어 사이드 프로젝트는 결과치를 내보지는 않았지만 대략적으로 50%도 안 됐던 거 같다.
사실 이번에 TDD를 하면서 테스트 커버리지를 신경쓰지는 않았는데 오늘 로직 작성하고서 궁금해서 결과를 뽑아봤는데 생각보다 훨씬 높은 결과가 나와서 뿌듯했었다.

하면서 깨달은건 TDD로 구현을 하니까 다양한 시나리오를 작성해서 테스트를 만들다보니 자연스럽게 커버리지가 올라갔던거 같고 또 테스트 커버리지가 높다는건 코드가 원하지 않는 동작을 하는지 안 하는지 검증을 해봤다는 의미로도 볼 수 있을 거 같다.

브랜치 커버리지는 이번에 처음 알았는데 찾아보니 조건문을 검증한 수치를 나타내는거였다.
진행하면서 예외 발생하는 부분을 given으로 throw를 통해 예외를 터트리는 방식으로 작성했는데 실질적으로 조건문 안에서 예외가 터지게 한다는건 전혀 생각하지 못했던 부분이라서 이 부분도 시간될 때 계속 개선해 나갈 예정이다.

그리고 테스트 커버리지를 관련해서 좀 더 찾아보고 정리해서 게시글을 하나 작성해볼 예정이다.

테스트 커버리지 결과

0개의 댓글