
게시글 수정


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