From 84c8eea111b7b0ffb026fb0d55daf71d66686da9 Mon Sep 17 00:00:00 2001 From: choihooo Date: Thu, 7 Aug 2025 20:23:22 +0900 Subject: [PATCH] =?UTF-8?q?14=EC=9E=A5=20=EC=B5=9C=ED=98=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "14\354\236\245/\354\265\234\355\230\270.md" | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 "14\354\236\245/\354\265\234\355\230\270.md" diff --git "a/14\354\236\245/\354\265\234\355\230\270.md" "b/14\354\236\245/\354\265\234\355\230\270.md" new file mode 100644 index 0000000..291364f --- /dev/null +++ "b/14\354\236\245/\354\265\234\355\230\270.md" @@ -0,0 +1,25 @@ +# Part 14: 점진적인 개선 + + +## 내용 + +14-8 코드를 보면 코드가 엉망이라고 한다. +- 인스턴스 변수의 개수 +- TILT와 같은 이상한 문자열 +- HashSets, TreeSets, try-catch-catch 블록 등 + +Boolean 인수만 지원하던 초기버전은 괜찮았는데 +여러 타입의 인수들을 추가로 받으면서 코드가 복잡하고 지저분해졌다. 하나의 인수를 추가할 때마다 여러 곳의 코드를 수정해야 하는 등 확장성이 모자랐다. + +TDD는 언제 어느 때라도 시스템이 돌아가야 한다는 원칙을 따른다. + +새로운 인수 유형을 추가할 때 코드가 중복되는 문제점을 해결하기 위해 ArgumentMarshaler라는 새로운 개념을 도입했다. + +에러 메시지 생성 책임을 ArgsException 클래스로 이전한다. + +코드가 더 나빠지기 전에 기능을 추가하는 것을 멈추고 리팩터링을 한다. + +## 느낀 점 +- 사실 지금 프로젝트 리팩토링들을 멈추고 있는건 테스트 코드가 없어서 문제가 많이 일어나서가 아닐까..? +- 테스트 코드를 공부해봐야겠다. +- 여러 백엔드 중 nest를 공부하는 이유도 jest로 테스트를 하기 때문에 좀 더 도움이 되지 않을까라는 생각도 있다. \ No newline at end of file