최근들어 decorator을 통한 fucntional programming과 OOP를 직접 RAGchain project에서 써보면서 그동안 무수히 많은 반복적인 코드를 작성했던것에서 논리성을 부여하여 더 정돈된 코드를 짤 수 있었다.
하지만 OOP을 과도하게 신봉하면서 과도한 추상화를 쓰면서 굳이 싶은 것들을 추상화시켜 review받을때 참교육을 당했다. 그렇다면 어디까지 추상화라는 개념을 활용할 수 있는것인가? 아래 링크를 참고하면 아아주 잘 설명되어있다.
추후 추상화 시킨 코드에서 예외 case가 추가가 되거나 추가적인 기능을 구현해야하는 상황에서 내가 만든 코드를 다른 사람이 이어서 짠다고 했을때,
원본코드를 최대한 손실이 일어나지 않도록 해야겠다는 압박감이 있을것이다. 이 때문에 잘못된 추상화를 제거하지 못하고 끝내 만족스럽지 못한 코드가 만들어진다.
잘못된 추상화가 있다면 추상화를 제거하고 코드를 원래 자리로 되돌렸을 때 새로운 기능을 추가하는 일이 더 빠르고 쉬워진다.
추상화란: 반복적으로 쓰는 코드들의 중복을 줄이기 위해서 추상적인 개념을 새로 만들어 모듈처럼 반복적인 코드들을 축약시켜 쓰는것이다.