개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴 1장

Chapter 01 들어가기

2 수정하기 좋은 구조를 가진 코드

Application 클래스에 모든 코드를 작성하는 방식

  • 개발 시간을 불필요하게 증가시키는 문제를 야기시킨다.
    • 소스 코드의 이곳저곳을 더 많이 이동해야 한다.
    • 메뉴가 증가함에 따라 소스 위치를 찾는 시간은 점점 길어진다.
  • 코드 수정이 어려워진다.
    • 각 메뉴 별로 동작을 처리하기 위한 중첩된 if-else 블록이 점점 복잡해진다.
    • 메뉴를 추가할 때, Application 코드 자체에 많은 변경이 필요하다.

ScreenUI 인터페이스를 사용하는 방식

  • 작성하는 클래스 개수가 증가한다.
  • 새로운 메뉴 추가 시, 버튼 처리 코드가 영향을 받지 않는다.
  • 한 메뉴 관련 코드가 한 개의 클래스로 모여서 코드 분석/수정이 용이하다.
    • 메뉴 관련 코드들이 알맞게 분리된다.
    • 불필요한 다른 코드를 의식적으로 피할 필요가 없다.
  • 버튼 클릭을 처리하는 코드가 단순화되었다.
    • 버튼을 추가할 때, 중첩된 if-else 블록을 추가할 필요가 없다.

:bulb: 요구 사항이 변경될 때, 그 변화를 좀 더 수월하게 적용할 수 있다.
즉, 객체 지향 기법을 적용하면 소프트웨어를 더 쉽게 변경할 수 있는 유연함(flexibility)을 얻을 수 있게 되고 이는 곧 요구 사항의 변화를 더 빠르게 수용할 수 있다는 것을 뜻한다.

3 소프트웨어의 가치

  1. 사용자가 요구하는 기능을 올바르게 제공하는 데 있다.
  2. 기능이 추가되거나 변경되는 요구사항에 따라 변화할 수 있어야 한다.
    • 수정에 높은 비용(시간)을 치루는 것 보다는 변화에 잘 대응할 수 있도록 소프트웨어의 구조를 만들고 더 적은 노력을 들여서 수정하는 것이 낫다.