728x90

서버 구축을 하는 5주 차가 마무리되었습니다.

 

요구사항 분석, 시퀀스 작성, ERD 작성, 서버 개발 등 다양한 작업이 있었는데요,

무엇보다 아픈 상황에서 진행을 하려다 보니 많이 힘들었던 것 같습니다.

 

사실 항해를 시작하면서 원했던 것이 다른 개발자분들은 어떻게 작성하고 있을까??

그리고 어떤 주제로 공부를 하고 이런 내용들을 제가 잘 이해하고 있을까?라는 점이 가장 궁금했는데요.

 

이러한 제가 원하던 부분들을 어느정도 경험을 할 수 있었고, 저 자신의 개발 실력에 대해 기본기부터 다져가며 학습을 하고 있는 것 같아 기분이 매우 좋은 상황입니다.

 

TDD를 제대로(?) 작성을 해보며 서버를 개발을 해보고 이 테스트 코드들이 CI에서 돌아가는 것들을 보면서 서버를 배포 시 문제 발생률은 테스트를 정확하게 했는지, 그리고 실패 케이스들은 예측을 하였고 그러한 실패 케이스들을 핸들링함으로써 해결을 하였는지를 검증하는 것이라 생각하였습니다.

 

무엇보다 실패 케이스가 가장 중요하다는 점인데요.

사실 저는 그냥 테스트 돌렸을 때 잘 저장되고 잘 작동하면 되는거 아니야??라는 생각이 많았습니다.

하지만 실패케이스를 강조를 하시는 것을 보고 왜 실패케이스가 중요할까 라고 생각을 해보니 실패 케이스를 예측하고 방지한다는 것은 결국 서버가 운영되었을 때 발생할 수 있는 오류 상황들을 인지하고 있고, 이를 방지하는 처리를 해놓았다는 말이 되는 것이라고 깨달았습니다.

 

만약 실패케이스를 제대로 잡지 않고 정상케이스만 테스트한다면 예상치 못한 상황들이 너무 많이 생겨버리고 그럼 오류가 터졌을 때 그 오류 케이스들을 잡아 내기에는 시간과 비용이 많이 들기 때문입니다.

 

덕분에 TDD의 중요성을 알게 되었습니다.

 

또한 TDD를 잘 작성하려면 모델 설계, 서비스간 의존성 등을 잘 설계하여 작성해야 하는데요.

이는 만약 여러 모듈들의 결합도나 호출 등이 너무 많고, 한 곳에서 모두 관리한다면 테스트의 시간도 오래 걸리고 하나의 메서드를 테스트하기 힘들어지기 때문입니다.

 

물론 하자면 못하는 게 없기는 하겠지만 그렇게 짠 코드가 가독성과, 확장성이 좋다고 생각이 들지는 않을 것 같습니다.

 

본인이 서버 개발을 한다면 혹은 어떤 개발을 하든지 잘 짠 코드 라고 했을 때 어떤 코드를 생각 하실지는 모르겠지만,

글쓴이는 잘짠 코드란 가독성과, 확장성이 좋으며, 적재적소에 존재하는 코드들을 작성하였을 때 잘 작성한 코드라고 생각합니다.

 

5주 차를 진행하면서 가장 좋았던 점은 테스트 코드라고는 알지 못하던 제가 테스트 코드를 짜게 되었고,

테스트 코드를 짜면서 실패 케이스들이란 어떤 것들이 있을지 고민하는 점을 보아 이렇게 서버 분석 및 설계를 좀 더 세세하게 살펴볼 수 있게끔 성장을 하였다는 점이 가장 마음에 드는 것 같습니다.

 

또한 개인적으로 제 강점은 관심사 분리를 잘한다는 점이라 생각하는데요.

이번 주차와 저번주차를 개발하면서 관심사 분리를 통한 코드 간결화등을 진행하며 테스트 코드 작성에 좋은 영향을 끼치는 것을 볼 수 있었습니다.

 

또한 관심사가 분리되다 보니 책임지는 로직, 테스트의 범위가 분리되어있어 보다 꼼꼼하게 테스트를 할 수 있었고, 어떤 점이 부족한지를 지속적인 리펙토링을 진행할 때에도 혼동이 없이 본인이 책임진 범위만을 수정하면 되니 굉장히 유지보수하기 편했던 점을 경험하였습니다.

 

 

728x90

+ Recent posts