IoC? DI? Spring 프레임워크를 직접적으로 사용하지 않더라도, 개발을 하다보면 IoC(Inversion of Control), 혹은 DI(Dependency Injection)라는 용어에 대해서 듣게 되는 경우가 많습니다. Spring에서만 사용하는 개념들이 아니기 때문인데요. 그때마다 IoC나 DI가 궁금해서 용어에 대한 정의를 보며 공부를 해도 이 개념들이 정확하게 무엇인지, 왜 필요한지에 대해 처음에는 크게 와닿지 않는 것이 사실입니다. 이번 포스팅에서는 간단한 자바 예제를 통해 Spring의 IoC와 DI에 대해서 이해해보는 시간을 가져보도록 하겠습니다. 커피 한 잔 카페에서 손님이 커피를 커피를 전문적으로 취급하는 어떤 카페가 있습니다. 이 곳 카페의 바리스타는 본인이 만드는 커피에 높..
오브젝트 스프링의 핵심 철학은 다음과 같다. J2EE 시절의 혼란 속에서 잃어버린 객체지향 기술의 진정한 가치를 회복시키고, 그로부터 OOP가 제공하는 폭넓은 혜택을 누릴 수 있도록 기본으로 돌아가자는 것이다. 따라서 스프링이 가장 관심을 많이 두는 대상은 오브젝트이다. 오브젝트에 대한 관심은 오브젝트의 기술적인 특징과 사용 방법을 넘어서 오브젝트의 설계로 발전하게 된다. 관심사의 분리 자바빈(JavaBean) 자바빈은 다음 두 가지 관례를 따라 만들어진 오브젝트를 가리킨다. 디폴트 생성자 자바빈은 파라미터가 없는 기본 생성자를 갖고 있어야 한다. 프레임워크 등에서 Reflection을 이용해 오브젝트를 생성하기 때문에 필요하다. 프로퍼티 자바빈이 노출하는 이름을 가진 속성을 프로퍼티라고 한다. 프로퍼티..