'스프링 입문을 위한 자바 객체 지향의 원리와 이해' 책을 읽고 개인적으로 정리한 내용이며, 문제가 있을 시 삭제하도록 하겠습니다.
기계어
: 기계가 이해하는 유일한 언어. 2진 숫자 (0,1)
어셈블리어
: 기계어 명령어와 일상용어를 일대일로 매칭하는 코드표
-> 일상용어로 프로그램을 작성할 수 있다.
C언어
: Onc Source Multi Object Use Anywhere
함수 -> 구조적 프로그래밍
C++
: C에 객체 지향 개념 도입
객체 없는 프로그래밍도 가능 (main() 함수는 클래스와 별개로 존재할 수 있으며, printf() 함수는 클래스나 객체와 관계없이 호출 가능)
자바
: 객체 지향 언어.
포인터에 대한 개념 없이 프로그래밍 가능
객체 지향 언어의 중심에는 클래스(class)가 있다. 객체 object라고 해도 된다.
자바에서 클래스를 떠나 존재할 수 있는 것은 아무것도 없다.
심지어 모든 프로그램의 시작점인 main() 메서드마저도 클래스 외부가 아닌 내부에 존재해야 한다. 그리고 모든 메서드도 클래스.메서드명() 또는 객체.메서드명() 으로 접근해야 한다.
CBD Component Based Development
컴포넌트 기반 개발
애플리케이션을 통째로 개발하지 말고, 애플리케이션을 의미 있는 단위로 구분하고 그 단위를 하나 하나씩 부품으로 개발해 마치 레고 블록을 쌓아 올리듯 부품을 결합해 소프트웨어 제품을 완성하자는 방법론이자 기법.
(제품이 아니다)
SOA Service Oriented Architecture
서비스 중심 구조 또는 서비스 지향 구조
개발자 입장에서의 개발이 아니라 실제 현실의 업무를 기준으로 개발하자는 사상.
(제품이 아니다)
자바나 C#은 제품 이며,
이 제품 속에는 각 제조사가 생각하는 객체 지향 방법론의 사상 및 개념이 숨어들어 있다.
객체 지향은
- 객체 지향 4대 특성, 객체 지향 설계 5원칙, 디자인 패턴 등의 개념이 정립됐다.
쓰는 이유
- 구현하는 데 필요한 거의 모든 서비스 지원
- PSA(일관성 있는 추상화) 기법을 통해 다양한 기술을 표준화된 방식으로 사용할 수 있게 지원
- 스프링을 도입하면 더 쉽고 편하게, 더 안정적으로 개발 가능