객체 지향 프로그래밍
개발. 개발새발. 개발개발. 여태까지 많은 경우 나는 기능 위주의 프로그래밍을 많이 했다. Java를 배울 때 반 강제로 분명 객체지향 프로그래밍을 했지만 대부분 까먹어 버렸다. 그리고 스피드가 생명인 한국인에게 Java라는 언어는 사실 좀 불합리하기도 했다. 오늘은 객체지향 방식으로 프로그래밍을 해봤다.
객체지향 프로그래밍을 왜 하는지는 사실 잘 생각해보지 않았다. 분명 수업 중 잠깐 지나갔지만. 그 뭐 Encapsulation이니 polymorphism이니 이런 말들이 나왔던 거 같은 기억이 얼핏 스친다. 자질구레한 이야기를 다 빼놓고 이야기하면 좀 더 직관적이라는 장점이 있을 것이다. 가령 더하기, 빼기, 곱하기, 나누기라고 기능을 나눠 놓는 거보다는 계산기라는 하나의 개념으로 만들면 꽤나 유용할 수 있다. 팀 단위의 개발은 해 본 지 오래라 잘 기억나지 않지만, 개인적인 측면에선 흐트러진 생각들을 한데 묶는 과정 같은 느낌이었다.
하지만 단점이라고 한다면 결국 한 클래스에 어디까지 넣을지를 정하느라 갈팡질팡하게 된다는 단점도 있다. 아마 그런 것 때문에 open source를 통해 의견을 수렴하고, 다른 사람의 첨삭을 받는 게 아닐까 싶다. 오늘 하던 작업도 넣다 보니 너무 방대해지는 느낌이 있어서 어째야 하나 조금은 고심하다가 퇴근했다. 지금 글을 쓰며 다시 생각해 보니 일단 기능을 구현하고 체계화하는 문제는 나중에 생각해야겠다.
그래도 오늘은 뭔가 하루 종일 진득하게 개발을 하고, 코드 정리하고 생각할 시간이 많아 나름 만족스러운 하루였다