본문 바로가기
IT 서비스/단잠

미리 알았다면 좋았을 것을..프로젝트를 진행 하면서 후회했던 것들

by agong이 2025. 2. 4.

이글은 Spring 프로젝트를 진행하면서 후회했던것들, 처음부터 알았으면 좋았을 것들을 정리한 글입니다.

Test는 굳이? 그냥 내가 테스트 해보면 되잖아

내가 처음했던 생각이다. 물론 많은 분들이 테스트 코드에 대한 중요성을 말씀해주셨다.테스트 코드를 짜야한다. TDD가 대세인 요즘이지만 스프링에 처음인 저는 '테스트 코드는 나중에 짜면 되지'라는 가벼운 생각으로 기능을 먼저 구현하였습니다.
결론부터 말하자면, 멍청한 생각이였습니다.

나는 기계가 아니다.

반복되는 테스트 작업. 내가 스스로 100가지의 경우를 직접, 반복적으로 하지 못한다. 그냥 적당히 몇개 테스트 해보고 넘어갈 뿐이다. 이렇게 하다보니 나중에 계속해서 오류는 쏟아졌고 나중에 고치는데 에너지를 더 소비하였다.

내가 뭘 테스트했더라?

또다른 문제는 내가 뭘 테스트 했는지 모두 기억하지 못한다는 것이다.
"null을 테스트 했던가? 타입이 다른 데이터를 넣어봤던가? 중복은? 존재하지 않으면?" 이를 일일이 다 기억하지 못하고 헷갈렸다. 그렇다 보니 어떠한 부분에 오류가 없을 것이라고 확신하지 못하였다. 그래서 클라이언트에서 어떠한 오류가 발생했을 때 '내잘못인가?' 하고 매번 api를 직접 호출해서 확인하였다.

이래서 테스트 코드가 필요하구나

'이부분은 테스트 했으니 오류가 발생하지 않을거야.'
테스트 코드는 내게 있어 자신감이다. 테스트를 통해 검증된 내 코드는 이제 '어떤 요청에 어떻게 내 코드가 동작할거야' 말할 수 있는 자신감을 얻는다. 미처 테스트 하지 못한 부분에서 오류가 발생했다면 이를 채워나가면 된다.
'확실한건 적어도 내가 코드를 잘못짠건가? 클라이언트에서 잘못한게 아닌가? 하는 의심병은 사라진다.'
그래서 과거의 나에게 말하고 싶다.

'시간이 걸리더라도 테스트 코드를 작성해라고'

일단 그냥 돌아가게만 하고 나중에 바꾸면 되지

일단 빠르게 돌아가게 하고 나중에 수정하면 되지라는 생각이었다. 하지만 나중에 바꾸려면 더 많은 에너지가 필요했다.

나의 에너지는 무한동력이 아니다.

나는 내 프로젝트를 사랑한다. 하지만 사람은 시간이 지나면 점차 열정은 떨어진다. 나역시 마찬가지다. 시간이 길어지다 보니 에너지가 종종 떨어지고 처음시작할 때보다 열정이 떨어진게 사실이다.

더 큰병 되기전에 병원 가라🏥

어른들이 하던 말씀이다. 이는 내 코드에도 마찬가지 인것같다. 예를들어 service코드의 로직을 바꾸고 싶었다. 나중에 바꾸면되겠지라는 생각으로 코드를 작성했다. 나중에 이를 수정하려고 보니 예기치 못한 오류가 발생하고 이곳 저곳을 수정해야했다. 물론 코드를 잘 짰다면 하나만 수정해도 모두 잘 돌아갈 수 있을 수 있다. 하지만 나는 아직 완벽하지 못하다.

되도록 빠르게 수정하자

다른 기능으로 넘어가기전에 최대한 빠르게 수정하자. 병원도 더 큰병되기전에 가는 것이 좋다. 코드도 마찬가지인것 같다.

더 큰 에러가 발생하기 전에 수정하자

코드리뷰는 나를 위한 채찍질이다.

내 프로젝트에서는 코드리뷰를 따로 진행하지 않았었다. 이유는 모두가 스프링에 대해 익숙하지 않았기 때문에 서로를 코드리뷰 해줄 실력이 되지 않다고 생각했기 때문이다.

형태가 다양한 내 코드.

내 코드가 일정하지 못하다. 엄청 집중할 때는 예쁘고 깔끔한 코드가 작성되었다. 때로는 집중되지 않아 코드를 휘갈길 때도 있었다. 이를 방지하는 것이 코드리뷰라고 생각한다.

잘하지 못하도 서로 코드리뷰 하자

코드리뷰는 나, 팀원 모두를 위한 것이다. 일정한 퀄리티의 코드를 짤수 있고, 다른 팀원이 내 코드를 볼때 이해할 수 있다.
나중에 한꺼번에 내 코드를 보려고 할때 이해하기는 쉽지 않다.
어려운 책도 한페이지씩 천천히 읽다보면 이해가 잘 된다.
실력이 부족할 수록 코드도 어려울 것이다. 이럴때일 수록 코드리뷰를 하자!

코드리뷰는 모두에게 좋다

댓글