OOP 2

객체지향적 Refactoring 과정의 기록

현재 진행 중인 프로젝트의 객체지향적 리팩터링 과정을 기록해보고자 한다.구체적인 리팩터링 과정에 앞서 리팩터링이란 무엇인지 짧게 설명하자면 Refactoring이란 외부 동작을 바꾸지 않으면서 내부 구조를 개선하는 방법이다. 즉, 결과는 바뀌지 않지만 내부적으로 코드의 구조 혹은 코드의 디자인을 개선시켜서 코드의 가독성과 유연성, 유지보수성등을 향상하는데 목적이 있다. 지금 쓰는 글이 단순히 리팩터링에 대한 글이라고 생각하지는 않았으면 한다.내가 한 리팩터링은 사실 리팩터링보다는 구조 개선에 가까운 코드 수정이며, 진행하면서 많은 것들이 바뀐다.다만 객체지향설계와 객체지향프로그래밍을 공부하면서 최대한 프로젝트를 객체지향적으로 고치고자 하기에, 코드를 고쳐가며, 어떤 문제점들이 있었는지 자세한 코드와 함께..

백엔드 멘토링 2024.07.11

객체지향의 사실과 오해 후기

이번에 객체지향의 사실과 오해라는 책에 대해서 읽게 되었다. 이는 객체지향적 설계를 잘하는 법에 관련하여 서술하고 있었고, 이로 인해 나도 많은 도움을 얻었다. 이 책에서 말하는 객체지향의 오해란 많은 사람들이 객체지향은 현실세계의 모방이라고 생각한다는 것이다. 하지만 책의 작가는 우리가 현실세계에는 없는 객체마저 객체지향의 세계에서는 생성이 가능하기에 객체지향은 현실세계의 모방이 아닌 은유라고 하였다. 예를 들자면 현실세계에서는 전구 스스로 불을 켰다 껐다 할 수 없지만 객체지향의 세계에서는 이것이 가능하며, 이상한 나라의 앨리스를 객체지향 세계로 만든다 하였을 때는 현실세계에서는 존재할 리 만무한 트럼프 인간등이 등장하게 되는 것이다. 따라서 우리는 현실세계의 객체들에 대해 중요한 포인트만 뽑아 객체..

백엔드 멘토링 2023.08.27