> For the complete documentation index, see [llms.txt](https://real-dev.gitbook.io/real-library/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://real-dev.gitbook.io/real-library/java_oop_for_spring_framework/undefined/1-..md).

# 1장. 개요

* 어셈블리 언어는 각 실행 환경별로 다른 소스 코드를 작성해야 했지만, C로 작성한 소스는 동일한 소스 하나로 실행 환경에 적합한 컴파일러를 통해 실행 환경별 파일을 작성할 수 있었다.\`\`
* 단, 현실적으로는 운영 체제에 따른 소스코드 수정이 필요했다. int나 short이 정확히 몇 바이트인지 정해지지도 않았다. 과도기적 성격이었다.
* C++는 C에 객체 지향성이 포함되면서 큰 변화를 이끌었다.객체지향은 개발자에게 통곡의 벽이 아니라, 인간을 사랑하여 나온 결과물이다. (라고 저자는 말한다. 교수님요...)
* C++은 객체가 없어도 실행이 가능하지만, 자바는 그렇지 않다.C는 기종마다 다른 실행 파일이 필요했지만, 자바는 그렇지 않다. JRE에서 동작하니 그냥 실행환경에 맞는 JRE만 있으면 된다.
* 스프링의 핵심 개념들은 모두 객체지향을 기반으로 한다. 따라서 객체 지향을 제대로 이해하지 못한 상태에선 스프링을 제대로 이해하기 어렵다. 그게 이 책의 이름이 \*\*`스프링 입문을 위한 자바 객체지향의 원리와 이해`\*\*인 이유인듯하다.
* 스프링은 방대한 규모에 불구하고 자기 철학을 기반으로 일관성있게 방대해진 케이스라는 점이다. 이들이 바로 `IoC/DI, AOP, PSA` 다.
* 스프링 이전에 다양한 기술들이 각자의 표준을 가지고 나오던 것이, 스프링을 거치면서 표준화된 방식으로 사용할 수 있게 지원하기 시작했다.

  ~~이 아저씨는 뭔가 무협소설처럼 말한다.~~
