Object Oriented Programming의 줄임말로, 객체 지향 프로그래밍이라고 부른다.
OOP는 프로그래밍 언어 패러다임의 하나로, 프로그래밍에서 필요한 데이터를 추상화 시켜서 상태(속성, 애트리뷰트)와 행위(메소드)를 가진 객체로 만들고, 그 객체간의 상호 작용을 통해 로직을 구성하는 방법이다.
장점
- 다른 클래스를 가져와 사용할 수 있고, 상속 받을 수 있어 코드의 재사용성 증가
- 절차지향보다 유지보수가 간단
- 클래스 단위로 모듈화가 가능하며, 대형 프로젝트에 적합
단점
- 처리 속도가 상대적으로 느리다
- 객체가 많으면 용량이 커진다
- 설계시 많은 노력과 시간이 필요하다
- Aspect: 공통기능
- Advice: Aspect의 기능 자체
- Jointpoint: Advice를 적용해야되는 부분(필드, 메소드)
- Pointcut: Jointpoint의 부분으로 실제로 Advice가 적용된 부분
- Weaving: Advice를 핵심기능에 적용하는 행위