1. 문제 - 과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제
아무래도 회사에서 테스트 코드를 다루지 않고, 테스트 코드를 작성에 대해 거의 배경지식이 0 인 상태라서 단위 테스트, 통합테스트 다 들어만 본 상태이고 막상 요구사항이 주어졌을 때 TC 작성하는 부분에 있어서 여러가지 어려움이 있었다. 어려움을 나열 해 보자면
1. TDD로 개발을 하던 버릇이 없어서 레이어드 아키텍쳐에 대해서 원하는 부분을 랜덤으로 개발하던 나에게 Top down 방식으로
Controller - Service - Repository 가 단방향 참조를 지키며 TC를 작성하는 부분이 너무 어색했다.
2. Assert 라이브러를 통해서 예측 모델과 실제 모델을 비교해야하는데, 어떤 메서드가 있고, 어떤 것을 비교해야하는 지 잘 모르다 보니 찾아 보면서 테스트 코드를 짜니 시간도 오래걸리고 비교하는 데 한정적이었다.
3. 단위테스트할 때 service class들을 Mocking하고 테스트 하는데 Mock이 작동할 때 생기는 일들에 대해서 몰라서 문제가 있었다.
2. 시도 - 문제를 해결하기 위해 어떤 시도를 하셨나요?
1. 관련 서적들이나, Test Code 강의를 사서 정독, 수강하기
2. 현업자 멘토링분에게 코칭받기
3. 시간이걸리지만 하나하나 생각해가면서 직접 짜보기
3. 해결 - 문제를 어떻게 해결하셨나요?
시간이 많이 걸리더라도 실제 Assertion의 중요한 메서드를 사용해 가면서 필요한 Test 들에 대해서 작성을 해보았고,
Mock 객체도 학습한 내용대로 직접 구현을 해보았고, 멘토링 받은 부분에 대해서 더욱 생각해보면서 코드를 작성해 보았더니
완전 100%는 아니더라도 이제 앞으로 습관을 들일 수 있겠다라는 해결책이 나왔다.
4. 알게된 것 - 문제를 해결하기 위해 시도하며 새롭게 알게된 것은 무엇인가요?
-필요없는 테스트는 없다. 의미가 없는 테스트가 있을 뿐
모든 테스트가 필요하지않고, 많이 실패하는 테스트를 짜야한다.
각 계층에서 테스트하는 이유가 있다.
Controller - HTTP 스펙이랑 동일한가 - 실수 체킹 -> 통합테스트
Bussiness- 비지니스로직이 틀리지 않고 제대로 되어있는가
Repository - 잘 저장되고 잘 불러와지는 가. -> 통합테스트& 단위테스트 모두가능
----------------------------------------------------------------------------------
- 현재 만족하고 계속 유지할 부분 -
현재 만족하는 부분은 새벽운동을 하루도 빠짐 없이 이행했다는 점과
퇴근 후에 항해플러스 과제를 하루도 빠짐없이 고민하고, 이에 부족한 부분을 채우려고 노력한 부분이
너무 만족스럽고 계속 유지할 부분이라고 생각한다.
- 개선이 필요하다고 생각하는 문제점-
크게 생활에는 개선이 필요하다고 생각을 하진 않고, 학습적인 측면에서 개선이 필요했다고 생각하는 문제점은
과제 부분에서 필요한 요구사항만 시야를 좁혀서 개발하니 다른 사람들과 비교했을 때 너무 많이 단순한 것 같다는 생각이들었다.
- 문제점을 해결하기 위해 시도해야 할 것 -
과제를 할 때 요구사항만 볼 뿐만 아니라, 그 요구사항에서 일어날 수 있는 정말 다양한 여러가지의 것들을 생각하면서
코드를 짜다보면 더 많이 성장할 수 있을 것 같다는 생각이 들었다.
'부트캠프 > 항해+99 백엔드' 카테고리의 다른 글
태태개발일지 -WIL (0) | 2024.07.13 |
---|---|
태태개발일지 -WIL (0) | 2024.07.06 |
태태개발일지 - TDD & CleanCode (0) | 2024.06.30 |
태태개발일지 - WIL (0) | 2024.06.29 |
태태개발일지 - [항해 플러스] 백엔드 5기 WIL (1) | 2024.06.15 |