아주 오랜만에 김영한님 강의를 핵심원리부터 다시 보기 시작했다. 기본적인 내용이지만 다시 들어보니 머릿속이 좀 정리가 되는 기분이다. 그 땐 몰랐는데 다시 보니 팍팍 꽂히는 내용도 수두룩하다. 도대체 처음 듣던 당시엔 뭘 이해했던 건가 싶어 자괴감이 들기도... 그래도 그간 줏어듣고 코드 쫌 깨작거렸다고 이해도가 약간은 올라갔나보다. 또 돌아서면 까먹을 게 뻔하니 조금이라도 기록하고 남겨보자. 내용이 방대해서 부분적으로 발췌하고 요약했다. 1. 제어의 역전(IoC) 스프링은 좋은 객체 지향 설계를 위해 역할과 구현을 분리시킬 수 있는 많은 방법을 제공하는데, 그 중 가장 기본적이고 좋은 도구가 바로 DI 컨테이너이다. 구현 객체는 자신의 로직을 실행하는 역할만 담당하고 프로그램의 제어 흐름은 스프링이 맡..