320x100
320x100
OOP (Object Oriented Programming)
실제 사물을 프로그래밍으로 옮겨와 모델링 하는 것
OOP의 핵심은 공통된 목적을 띈 데이터와 동작을 묶어 하나의 객체로 정의하는 것
기능을 재사용 할 수 있는 것이 큰 장점
관심사 분리 (Separation of Concers, SoC)의 디자인 원칙을 준수해야함
클래스 라는 핵심 단위를 가짐
- OOP의 문제점
비즈니스 클래스에 횡단 관심사와 핵심 관심사가 공존하게 되는데,
이때 메서드의 복잡도가 증가하여 비즈니스 코드 파악이 어렵게 된다
부가 기능의 불특정 다수 메서드가 반복적으로 구현되어 횡단 관심사의 모듈화가 어렵다
* 핵심 관심사
핵심기능. 객체가 제공하는 고유의 기능
ex) 기능 자체
* 횡단 관심사
핵심 기능을 보조하기 위해 여러 클래스에 걸쳐 공통으로 사용되는 부가 기능
핵심 기능과 함께 사용
ex) 로깅, 보안, 트랜잭션 등
AOP (Aspect Oriented Programming)
핵심 관심사 (기능)에서 횡단 관심사를 분리하여 분리한 부가 기능을 Aspect라는 모듈 형태로 개발하는 방법
이를통해 객체지향의 단점을 보완하면서 객체지향적 가치를 높일 수 있게 함
여러 유형과 객체 간 발생하는 문제의 모듈화를 가능하게 함
Aspect라는 핵심 단위를 가짐
- 구현 방법
공통으로 사용되는 로직을 유틸 등으로 분리하여 클래스에서 호출
Reference
300x250
728x90
'Development > Development' 카테고리의 다른 글
좋은 리팩토링과 나쁜 리팩토링 (4) | 2024.09.28 |
---|---|
The browser (or proxy) sent a request that this server could not understand (0) | 2024.08.20 |
REST API 총 정리 (0) | 2024.08.17 |
헤드리스 데이터 아키텍처 (0) | 2024.08.17 |
프론트엔드 성능 최적화 기법 (0) | 2024.08.17 |