들어가기 전 먼저 이 글을 쓰게 된 계기를 말하자면 스프링과 자바를 이용해서 개발하는 중에 이런 생각이 들었다. '그래서 쓰는 법은 알겠는데 controller - service - repository 구조에서 각각의 클래스들을 활용한게 어떤 의미에서 객체지향 프로그래밍이라는거지?' (이걸 생각하기까지 1년 반이 걸린 나에게 충격이였다.) 답을 찾기 위해 객체지향프로그래밍 즉 OOP가 정확히 어떤것인가를 공부하다가 도저히 이해가 안가서 OOP를 공부하기 이전에 OOP의 본질 객체지향이라는 것이 무엇인가를 찾아보았고 와중에 조영호님의 '객체지향의 사실과 오해'를 읽고 내가 이해한 바를 정리하기 위해 쓰게 되었다. 1. 객체지향이란? 우선 객체지향 패러다임이 왜 등장했는지는 다른 분들이 많이 이야기한다. 나..