Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 오버라이딩
- 다형성
- 주식
- 백준
- 금리인상
- object
- 현금흐름표
- javascript
- 자바
- 객체지향
- 인플레이션
- Java
- 잉여현금흐름
- S&P500
- 주린이
- 제태크
- 프로그래머스
- 그리디 알고리즘
- 기업분석
- StringBuffer
- XLF
- 무디스
- 알고리즘
- 미국주식
- FCF
- 금리인하
- 배당성장
- etf
- mco
- 접근제어자
Archives
- Today
- Total
오늘의하루
AOP를 통한 유지 보수성 향상 - 프로젝트의 매개변수 관리 혁신 본문
1) 문제발견
프로젝트에서 각 화면 별 Controller가 JSP를 호출할 때, Model에 로직 수행 후 결과를 담으며 다른 Controller에서는 매개변수가 있을때 그 매개변수에 세팅을 해줘야 하는 구조로 설계되었습니다. 총 100개 이상의 화면이 존재하는 상황에서 프로젝트 완료 시점에 Controller의 매개변수가 수정되는 문제가 발생했습니다. 이로 인해 각 Controller에서 매개변수를 개별적으로 수정해야 하는 비효율이 생겼고 이는 코드의 일관성과 유지 보수에 큰 부담이 되었습니다.
2) 해결
이 문제를 해결하기 위해 AOP(Aspect-Oriented Programming)를 도입했습니다.
AOP를 통해 매개변수 관리 로직을 중앙 집중화하여 코드의 가독성과 유지 보수성을 극대화했습니다.
구체적인 구현은 다음과 같습니다.
- Aspect 정의:
- AOP를 활용하여 매개변수 전처리 및 후처리 로직을 담당하는 Aspect를 정의했습니다.
- @Around 어노테이션을 사용하여 매개변수를 조작하거나 Model 객체에 담을 로직을 중앙에서 관리할 수 있게 되었습니다.
- @JSPView 어노테이션:
- JSP와의 연계를 위해 @JSPView라는 사용자 정의 어노테이션을 만들었습니다.
- 어노테이션을 메서드에 적용하여 해당 메서드가 반환하는 Model 객체를 중앙에서 관리할 수 있습니다.
- 어노테이션을 포인트컷으로 사용하여 JSP 뷰로 전달될 데이터를 동적으로 설정하고 필요한 로직을 한 곳에서 변경할 수 있도록 함으로 이는 데이터 전달 방식의 일관성을 유지하는 데 큰 도움이 되었습니다.
- 매개변수 처리:
- Controller 중 @JSPView가 적용되지 않은 Controller의 매개변수가 있으며 해당 매개변수가 프로젝트에서 정의한 특정 객체를 상속받고 있다면 해당 객체에 공통 설정을 적용하여 실제 로직이 실행되도록 하였습니다.
- 이를 통해 코드 중복을 줄이고 객체의 공통 설정을 통해 유지 보수성을 더욱 강화할 수 있었습니다.
- 유지 보수성 및 확장성 향상:
- AOP의 적용으로 매개변수 수정 시 발생할 수 있는 유지 보수 비용을 최소화했습니다.
- 기존에는 모든 Controller에서 매개변수를 수정해야 했지만 이제는 AOP를 통해 중앙에서 수정함으로써 코드 변경의 복잡성을 줄였습니다.
- 새로운 기능 추가 시에도 기존 로직을 수정하지 않고 새로운 Aspect를 추가하는 방식으로 확장할 수 있어 프로젝트의 유연성을 높였습니다.
'코딩공부' 카테고리의 다른 글
각 화면의 기능을 공통 인터페이스로 분리 (0) | 2024.09.21 |
---|---|
[AUIGrid] XSS 취약점 발견 및 해결 과정 (0) | 2024.09.21 |
[Oracle] SQL Function 복습 (0) | 2023.02.26 |
[Javascript] Scope Chain 알아보기 (0) | 2022.05.16 |
[Javascript] Array.reduce 문법 (0) | 2022.05.13 |
Comments