개방 폐쇄 원칙 OCP (Open-Closed Principle)
"클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다" 난 위의 OCP 정의를 처음 접했을 때 이해가 되지 않았다.헌데 토비의 스프링3.1 책을 읽게 되면서 그 의미를 이해하게 됐고, 내가 이해한 것을 토대로 예제 코드를 작성해 보고 싶었다. 아래 예제 코드는 실제 OCP 원칙을 지키지 않은 상태에서의 코드를 보여 줄 것이며 이로 인하여 발생되는 문제에 대해서 설명한다.그런 후 OCP 원칙을 잘 지키는 코드를 설계하여 개방 폐쇄 원칙이라는 것이 얼마나 코드를 유연하고, 확장성 있게 만드는지 알아볼 것이다. 예제는 컴퓨터와 키보드 이 두 가지를 이용하여 설명할 것이다.컴퓨터가 부팅을 하면서 키보드를 연결하는 상황이며, 실제 아래와 같이 컴퓨터 소프트웨어를 설계하고 납품을 하게 된다면 어떤..