///
Search
📌

면회체계 게시판 통합

태그
Project
면회신청체계개발

ACTION : 문의사항과 공지사항이라도 고쳐보자!

21년 10월 즈음부터 사무실에서 조금 한산해지기 시작하면서, 면회 체계 리팩토링을 시작하고자 하였습니다.
하지만 그 이전에 ‘리팩토링’은 무엇인지, 어떤 것이 좋은 설계인지를 몰랐기에 OOP에 관한 기본서들을 공부한 후 리팩토링을 진행하였습니다.
특히 문의사항과 공지사항의 경우 완전히 동일한 기능임에도 불구하고, 각각 Minwon과 Notice라는 도메인으로 나누어져 있었습니다.
미래에 간부들만 볼 수 있는 게시판이 생기는 등, 여러 게시판이 추가될 가능성이 높다고 생각했기에, 기능을 하나의 인터페이스로 통합하는 것을 목표로 리팩토링을 시작하였습니다.

PROBLEM : 인터페이스는 대체 왜 있을까..?

막상 하나의 인터페이스로 통합하고자 하니, 다음과 같은 궁금증이 들었습니다.
‘ 인터페이스가 있는 이유는 무엇일까? ‘ ‘ 인터페이스로 메소드를 호출하면, 해당 메소드가 어떤 일을 하는지 정확히 알 수가 없는데 왜 사용하는거지? ‘ ‘ 코드를 처음 본 사람 입장에서, 당황스럽지 않을까? ‘
이를 위해 아래와 같은 책을 읽었습니다.
이를 통해 다음과 같은 결론을 내릴 수 있었습니다.

SOLVING : 디자인 패턴을 적용해보자

먼저 저는 기존의 클래스 구현을 살펴보았습니다.

이에 대해 다음과 같은 추상화를 해보았습니다.

Strategy 패턴을 이용해 추상화를 구현해보고자 하였습니다.

다음과 같이 Decorator 패턴을 추가로 사용하였습니다.

실제 구현 코드

FEEDBACK: 첫 리팩토링, 부족한 점이 많다.

이번에 진행한 게시판 리팩토링 결과가 최선이 아니라고 생각합니다.
하지만 SOLID 원칙과 디자인 패턴을 공부한 후, 실제 문제를 처음으로 해결해보는 경험이라는 점에서 의미있게 다가왔을 뿐만 아니라, 클린 코드에 대한 관심을 키우는 계기가 되었습니다.