Home AOP(Aspect Oriented Programming)란?
Post
Cancel

AOP(Aspect Oriented Programming)란?

AOPAspect Oriented Programming(관점 지향 프로그래밍)의 줄임말입니다.

관점지향 프로그래밍의 목표는 응집도 높은 개발입니다.

결국 스프링 프레임워크는 ‘낮은 결합도’와 ‘높은 응집도’가 목표인 것입니다.

관점지향의 반댓말은 무엇일까요?

Aspect Oriented Programming(AOP)Object Oriented Programming(OOP)
관점지향 프로그래밍객체지향 프로그래밍 (ex:Java)

AOP는 관점지향 프로그래밍이니까 쉽게 말해 방법론 중에 하나라고 보시면 됩니다.

핵심로직과 공통로직


프로그램마다 메소드를 사용할 때 그 메소드를 쓰는 이유가 있습니다.

add라고 하면 뭔가 데이터를 넣기 위한 거고, remove를 하면 뭔가 데이터를 삭제하기 위한 거고

이런 것들을 메서드의 핵심로직이라고 이야기합니다.

메서드마다 핵심 로직이 있는데 쓰다보면 각 로직마다 반복등장하는 공통 로직(횡단관심)이 있습니다.


예를 들면,

구매, 댓글쓰기, 글쓰기 등 이런것들을 핵심로직, 핵심관심이라고 이야기합니다.

보안, 로그인(인증), 트랜잭션, 로깅처리 등을 공통로직, 횡단관심이라고 이야기합니다.

이런 공통로직을 핵심로직에서 분리해서 관점지향적으로 코딩을 하겠단 이야기입니다.

공통으로 사용하는 기능(횡단관심)들을 독립된 클래스로 분리하고 이 기능을 사용할 때 프로그램 코드에 직접 작성하지 않고 컨테이너에게 맡기는 것입니다.

이런 것들을 선언적 처리라고 합니다. “이거 할거야”라고 설정파일에 알려주는 것입니다.

코드에 작성하지 않았기 때문에 코드 변경이 없습니다. 이런 걸 높은 응집도라고 합니다.

결론적으로 유지보수성이 좋아집니다.

This post is licensed under CC BY 4.0 by the author.