복사(Copy) & 붙이기(Paste)
: 기본적인 방법,
-> 장점 : 쉽다,
-> 단점 : 변경사항 나오는 경우 복사하기 전거랑 복사 된 거랑 모두 변경해야 한다.
메서드 호출
: method로 정의, 복사 붙이기 단점 개선위해 나옴
-> signature를 변경하면 이 메서드 사용하는 모든 클래스에 영향
-> 결합도 문제 여전
💡 method signature
-> 메서드 명
-> 리턴 타입
-> 아규먼트 개수, 타입
클래스 재사용 (상속)
: 자주 사용되고 유사한 기능을 메서드로 정의하여 재사용 (부모 class에 넣고 상속 받아 쓴다)
-> 부모 클래스의 메서드 변경되면 상속된 메서드가 자동으로 변경된다
-> 변경되더라도 인터페이스 변하지 않으면 영향 x
-> 부모 class의 메서드 변경 -> 여전히 자식 class에 영향
AOP(Aspect Oriented Programming)
: 관심의 분리,
-> 계좌이체, 입출금 등 Biz 로직을 하는 핵심관심모듈과, 보안, 로깅 등 기능적 로직을 하는 횡단관심모듈을 분리한다.
-> AOP가 핵심관심모듈을 직접 건들지 않고 위빙이라는 작업으로 횡단 관심 코드 엮어지게 함
디자인 패턴이란?
-> 이후에 재사용하기 좋은 형태로 특정 규약 묶어서 정리
디자인 패턴 사용 이유
프레임워크
-> 비기능적 요소들(성능, 보안, 로깅, 확장서으 안정성 등)을 미리 만들어 제공
프레임워크 사용 이유