나의 위키

내가 OOP를 좋아하는 이유

내가 OOP를 좋아하는 이유는

  1. 가독성
  2. 테스트 용이성
  3. 재사용성

을 높이기 때문이다.

뇌를 적게 사용하게 하고, 불안을 줄인다. 그래서 프로그래밍이 즐거워진다.

이전이 프로그래밍

만들고자 하는 기능을 조건문/반복문/할당문/메소드를 이용해서 순서대로 작성했다.
구조적(Structured Programming ↗)이면서, 절차적(Procedural Programming ↗) 이였던것 같다.
메소드의 크기는 컸고 변수는 전역적이거나 넓은 범위에서 사용되었다.

메소드의 크기가 커질수록

  1. 어떤 변수가 발생할지 예측하기 어려웠다.
  2. 디버깅하기가 어려웠다.
  3. 코드를 수정하기가 어려웠다.

일정에 쫒기는 일이 많았기 때문에, 무엇보다 동작하게 하는 것이 중요했다. 일정을 맞추고 나면, live중인 코드를 수정하는 것은 폭탄을 취급하는 것과 같았다. live중인 코드를 수정해야될때는, 최대한 수비적으로, 코드중복도 감수하며, 코드가 더 더러워지는 것을 묵인해야 했다. 그렇게 시간이 지나면, 의존성이 곳곳에 퍼져, 고치고 싶어도 고치기 힘든 코드가 된다.

OOP

나는 Alan Kay의 OOP를 좋아한다. 큰 메소드에서 할 일을 작은 여러개의 객체가 수행하도록 코딩한다. 객체는 의도된 공개 행동(메소드)를 가지고, 나머지 행동과 상태를 최대한 감춘다. 전역변수, 범위가 큰 변수는 없어지고, 코드 흐름을 따라다니지 않아도 된다. 공개 메소드와 생성자로 전달되는 파라미터로만 객체는 실행된다. 테스트하기가 매우 쉬워진다. 테스트 코드로 테스트 자동화를 시킬 수 있다. 전달하는 파라미터가 개수가 작고 명확할수록 재사용이 쉬워진다.