24.11.11(게시글 수정/답변, AOP)

은구야노올자·2024년 11월 11일

🤯지식주머니🤯

목록 보기
52/98
post-thumbnail

게시글 수정


  • boardModify.aws
    • 특정 게시물(bidx로 식별)을 수정하기 위해 데이터 조회, 조회한 데이터를 Model에 담아 JSP로 전달하는 역할
  • boardModifyAction.aws
    • 게시글 수정 기능 수행
    • 첨부파일 업로드, 사용자 정보 설정, 수정 결과에 따라 다른 페이지로 리다이렉트하는 작업 처리


게시글 답변



  • boardReply.aws
    • 특정 게시물에 대한 답글 화면으로 이동할 때 사용
    • bidx라는 게시물 ID를 받아 해당 게시물 정보를 조회한 뒤 뷰에 전달하여 답글 작성 화면으로 이동
  • boardReplyAction.aws
    • 컨트롤러에서 특정 게시물에 대한 답글을 데이터베이스에 저장
    • 파일 업로드, 게시물 정보 업데이트, IP 주소 및 세션 정보 등을 설정하고 답글 추가


AOP

AOP의 기본 개념

  • 주요 용어
    • Aspect : 공통 기능을 정의한 모듈. 로깅이나 보안 기능을 애스펙트로 정의할 수 있음
    • Advice : 애스펙트가 수행할 실제 작업. 언제 실행될지를 정의하며 before, after, around 등 다양한 타입이 있음
    • Joint Point : 어플리케이션에서 어드바이스가 적용될 수 있는 지점. Spring Aop에서는 메서드 실행 지점이 조인 포인트가 됨
    • Pointcut : 어드바이스가 실행될 실제 조인 포인트를 필터링하는 조건. 포인트컷 표현식을 통해 특정 메서드나 클래스에만 어드바이스가 적용되도록 지정할 수 있음
    • Target : 어드바이스를 받을 실제 객체
    • Proxy : Aop 프레임워크가 애스펙트를 적용하기 위해 생성하는 객체. 타겟 객체의 대리자 역할

Spring AOP의 작동 방식

  • 기본적으로 프록시 패턴 사용
  • 어플리케이션에서 타겟 객체를 프록시 객체로 감싸고 이 프록시 객체가 메서드를 호출할 때 필요한 어드바이스를 적용하는 방식으로 작동
    • JDK 동적 프록시
    • CGLIB(Code Generation Library) 프록시

Spring AOP 어드바이스 유형

  • 메서드 실행 전, 중, 후에 수행할 작업을 정의할 수 있음
    • Before Advice : 타겟 메서드가 실행되기 전 실행
    • After Returning Advice : 타겟 메서드가 정상적으로 종료된 후 실행
    • After Throwing Advice : 타겟 메서드에서 예외가 발생한 후 실행
    • After (Finally) Advice : 타겟 메서드가 종료된 후(성공 또는 예외에 관계없이) 실행
    • Around Advice : 타겟 메서드 호출 전후에 작업 수행. 타겟 메서드 호출을 완전히 제어할 수 있기 때문에 가장 강력한 어드바이스

Spring AOP 설정

  • XML 설정
    • <aop:aspectj-autoproxy>를 사용해 AOP 활성화, <aop:config> 및 <aop:aspect> 태그로 애스펙트와 어드바이스 정의
  • 어노테이션 설정
    • @Aspect 어노테이션 사용하여 애스펙트 정의, @Before, @AfterReturning, @AfterThrowing, @Around 등으로 어드바이스 설정

Spring AOP 장점, 한계

  • 장점
    • 관심사 분리 : 비즈니스 로직과 공통 관심사를 분리하여 코드의 가독성을 높이고 유지보수성 향상
    • 재사용성 : 로깅, 트랜잭션 관리 등을 여러 클래스에 쉽게 재사용할 수 있음
    • 유연성 : 어드바이스 적용 대상을 자유롭게 지정할 수 있어 코드 변경 없이 기능을 추가하거나 제거 가능
  • 단점
    • 메서드 조인 포인트만 지원
    • 런타임 프록시 방식의 성능 오버헤드

0개의 댓글