본문 바로가기
T.I.L. :: Today I Learned/항해99 14기 본과정

Day 84. 무한 리팩토링 + 테스트 코드

by DaSsom 2023. 6. 25.

이번주는 정말 ... 무한 리팩토링과 테스트코드 연습을 하는 주간이었다. 백엔드끼리 챌린지를 할 수 있는게 뭐가 있을까 생각해보다가 우선적으로 꼽은 것은 테스트코드 였다. 테스트 코드의 중요성을 여러번 들어서 익히 알고 있었기에 꼭 해야만 한다는 강박을 버릴 수 없었다. 하지만 테스트코드 너무 험난한 것..

 

우리는 중간 발표때 코드 커버리지 70%가 목표라고 했다.... 70%.. 테스트코드를 제대로 적용하려면 80%정도는 나와야한다고 들었기에 70%도 많이 낮춘 도전과제라고 생각했는데 아니었던 것 같다.. 지금은 50%까지만 끌어올려도 성공했다고 생각함. 아무튼 이번주는 테스트 코드를 쓰기위해 서비스단과 컨트롤러단에서 어떤 차이를 주고 작성해야할지 고민이 많은 주였다. 

 

1. 각 클래스에서 필요한 내용만 테스트하면된다.

그러니까 서비스단에서는 비즈니스 로직이 잘 돌아가는지 체크하는 것이지 repository에서 데이터를 잘 불러오는지 테스트를 하는 것은 repository단 테스트에서 하는 것이다. 정말 단순하게, 컨트롤러에서는 메서드를 잘 호출하는지, 서비스는 로직이 잘 돌아가는지, 레포지토리에서는 db 조회를 잘 하고 있는지! 

 

2. jacoco적용

Jacoco를 통해 테스트의 코드 커버리지가 얼마나 되었는지 확인할 수 있다. 어떤 라인이 어떻게 체크되었는지 확인할 수 있어서 코드 커버리지를 올리겠다는 목표를 가진 우리는 이게 필수라고 생각한다.

 

그 밖에 이번주에 새롭게 접한 것은 Spring Web Flux이다. 우리 팀에서 필요했던 실시간 알림 기능을 위해 OSIV 설정을 끄게 되었는데 아무래도 이렇게하니 DB 접근이 생각보다 더 많아질 것 같아서 다른 방법을 찾아야만 했고 그중에 알게 된것이 웹 플럭스이다. 쉽게 이해가 되는 개념은 아니어서 앞으로 프로젝트가 끝나더라도 좀 더 찾아볼 계획이다.

 

그리고 협업의 중요성을 다시 한 번 느끼게 되었다. 백엔드에서 아무리 api를 많이 추가한다고 하더라도 프론트엔드에서 작업이 안되면 기능은 무용지물이 된다. 팀의 인원상 백엔드 인원이 비교적 많다보니 우리는 간간히 오류를 잡고 서버만 체크하면 되지만 프론트엔드에서는 이번 유저 피드백 반영이 큰 과제가 되었다. 그래서 상대적으로 우리가 조금 더 여유로웠고 그렇기에 다른 것들을 공부할 수 있는 기회가 되었다.

 

이제 남은 기간은 일주일. 최종 발표를 앞두고 준비해야하는 자료가 꽤 있어서 이번주는 그것에 집중하게 될 것 같다. 조금만 더 힘내서 마지막까지 아쉽지 않게 무사히 항해를 마치고 싶다. 

 

이번주도 열심히 공부했다 !