3da8d924b79c28a8699fe8b115ef046960006425

다음 DataBase 코드는 저항 스탯을 저장함.


이 코드에서 값 검증을 위해서 Enum 값 검증 하고, 중복시 초기화하고 삭제함. 후입선출로 이전 값으로 유지하되 다음 값은 삭제함


하지만 이 코드는 List<ResisatanceDefiniition>에 대해서만 되는 상황에서 이 코드들을


Enum 타입을 기반으로 데이터 정합성을 검증해서 무결성을 체크하게 바꿈


즉 데이터 검증 체크를 하나의 네임스페이스 분리 한 후, 이 툴을 분리하고 이걸 범용적으로 바꾸어보면


3da8d924abc236a14e81d2b628f1776eecf7b4

이런식이 되지만 특정 타입에 대해서 범용적으로 쓰게되지만 로직의 목적성이 떨어짐


따라서 이것은 코드의 추상화 정도가 올랐다고 할 수 있음.


3da8d924b69c28a8699fe8b115ef046f650a050f


그럼 1번 코드에서 기본적으로 추상도가 높아짐에따라서,

기존의 List<ResistanceDefintion>을 바로 알기 어렵고, 범용 메서드 사용을 추가함으로써 더 알아먹기 힘들어지는거


다만 다음에 똑같이 Enum 기반으로 데이터 정합성 검증을 할 수 있지만, 타입 직관성이 떨어지는거


따라서 추상도가 높아진다는건


특화 검증 로직에서 범용 타입에 대한 타입 검증이 됨에따라서, 직관성이 줄어들어서 가독성이 줄어들게 되는거임.


물론 가독성이 개개인의 차이가 있지만 범용 매서드일수록 가독성이 떨어진다는 건 일반적인 세간의 인식이 그러함