본문 바로가기
Team Project (국비)/Team Project 메모

최종프로젝트 Controller, View 파트 진행도

by Hwanii_ 2023. 9. 15.
728x90

23.09.12

 

오늘 한일)

 

1)

상품의 재고가 없으면 장바구니 담기가 되지 않도록 유효성을 보완 했다.

 

2)

결제 페이지 에서 사용자가 쿠폰 적용 버튼을 눌러서 쿠폰을 적용 했을 때,

결제 예상 금액이 동적으로 변할 수 있도록 자바스크립트를 사용 해서,

기능을 추가 했다.

다른 쿠폰을 바로 적용 하더라도, 기존에 상품 가격에서 새로운 쿠폰 할인율로 적용이 되며,

쿠폰 적용을 안할 경우, 기존에 할인된 가격으로 보이는 결제 예상 금액이,

원래의 기존 결제 예상 금액으로 보이도록 했다.

 

3)

AOP == 관점 지향 프로그래밍 개념을 활용 해서, 비즈니스 메서드에 해당 하는

관련 로그를 관심 분리 하도록 설계 했다.

즉, 비즈니스 로직과 어드바이스 로직을 분리하여 유지보수에 용이한 코드를 작성할 예정 이다.

 

오늘 이슈)

 

1)

AOP 포인트컷과 로그 설정 어드바이스를 테스트로 어스펙트 해보았다.

이때,

org.springframework.web.context.ContextLoaderListener

클래스의 인스턴스인 리스너에 전송하는 동안 예외 발생 이라는 이슈가 발생 했다.

자세한 내용으로는,

org.springframework.beans.factory.. BeanCreationException 이였다.

즉, 

BCE == 객체화가 이루어지지 못하는 에러 였고,

확인 결과 포인트컷을 작성하면서 오타가 발생 해서 생긴 이슈 였다.

오타를 수정하고, 해당 이슈를 해결 했다.

 

package com.spring.biz.common;

import org.aspectj.lang.annotation.Pointcut;

public class PointcutCommon {	//	PointCut 모듈화 클래스.
	
	@Pointcut("execution(* com.spring.biz..*Impl.*(..))")
	public void aPointcut() {}	//	AfterReturning

 

위의 포인트컷 설정에 아래와 같이 오타가 발생 하여 에러 현상 발생.

 

package com.spring.biz.common;

import org.aspectj.lang.annotation.Pointcut;

public class PointcutCommon {	//	PointCut 모듈화 클래스.
	
	@Pointcut("excution(* com.spring.biz..*Impl.*(..))")
	public void aPointcut() {}	//	AfterReturning
    
    //	execution 인데, 'e' 가 빠진 오타 였다.

 

이번주 할일)

 

1)

AOP 라이브러리 추가 및 루트 컨테이너에 AOP 네임스페이스를 추가하고,

PointCut을 관리하는 클래스를 작성 하고, 모듈화 할 예정 이다.

또한, 어드바이스 로직을 작성할 예정 이다.

 

2)

마이페이지 에서 회원이 가지고 있는 쿠폰의 정보를 보는 페이지에서,

회원이 가진 쿠폰이 일정 개수 이상으로 넘어 가면, 쿠폰이 웹페이지에서 밀리는 현상이 발생 했다.

CSS 를 수정 해서 이슈를 처리할 예정 이다.

 

3)

마이페이지 회원 정보 수정 기능 이용시, 전화번호 변경을 하는 경우,

모델에서는 유니크 키로 설정되어있는 칼럼이지만,

View 에서 변경 하려고 하는 전화 번호가 다른 회원의 전화 번호와 중복 되면,

중복 되는 전화 번호로 변경이 불가능 하다는 안내 추가해서, 사용자 편의성을 보완할 예정 이다.

 

느낀점

 

1)

자바에서 @Aspect 어노테이션을 사용 해서, AOP 관점을 정의 하고,

해당 어드바이스 클래스는 다른 곳에서도 재사용이 가능한 이점을 가질 수 있겠다는

생각이 들었다.

모듈화를 통한 코드 재사용성이 증가하도록 코드를 작성하는게 중요하다고 느꼈다.

반응형