개요안녕하세요, 이번에 Filmeet 프로젝트에서 구현한 컬렉션 기능에 대해 이야기하는 글을 작성하려고 합니다.프로젝트를 진행하며 해당 기능을 설계하고 구현하는 과정에서 느낀 점과 경험을 공유하고자 합니다.컬렉션 기능 소개컬렉션 기능은 사용자가 자신이 좋아하는 영화를 담는 기능입니다.컬렉션에는 영화를 추가할 수 있을 뿐만 아니라, 작성자가 직접 제목과 내용을 작성할 수도 있습니다.또한, 컬렉션에는 댓글을 남기거나 좋아요를 누르는 기능도 제공됩니다.이번 글에서는 컬렉션에 영화를 담는 과정에 대해 소개하려고 합니다.컬렉션 기능 요구 사항 분석컬렉션 기능을 구현하기에 앞서, 요구 사항 분석을 진행했습니다.요구 사항사용자는 컬렉션(제목, 내용)을 작성, 수정, 삭제할 수 있다.사용자는 여러 개의 영화를 컬렉션에..
💡 김영한님의 스프링 핵심 원리 고급편 강의를 듣고 정리한 내용입니다.포인트컷 지시자애스펙트J는 포인트컷을 편리하게 표현하기 위한 특별한 표현식을 제공한다.예) @Pointcut("execution(* hello.aop.order..*(..))")포인트컷 표현식은 AspectJ pointcut expression 즉 애스펙트J가 제공하는 포인트컷 표현식을 줄여서 말하는 것이다.포인트컷 지시자포인트컷 표현식은 execution 같은 포인트컷 지시자(Pointcut Designator)로 시작한다. 줄여서 PCD라 한다.포인트컷 지시자의 종류 execution: 메소드 실행 조인 포인트를 매칭한다. 스프링 AOP에서 가장 많이 사용하고, 기능도 복잡하다.within: 특정 타입 내의 조인 포인트를 매칭한다..
💡 김영한님의 스프링 핵심 원리 고급편 강의를 듣고 정리한 내용입니다.@Aspect 사용하여 AOP 구현@Slf4j@Servicepublic class OrderService { private final OrderRepository orderRepository; public OrderService(OrderRepository orderRepository) { this.orderRepository = orderRepository; } public void orderItem(String itemId) { log.info("[orderService] 실행"); orderRepository.save(itemId); }}@Slf4j@Reposito..
💡 김영한님의 스프링 핵심 원리 고급편 강의를 듣고 정리한 내용입니다.AOP 핵심 기능과 부가 기능핵심 기능과 부가 기능 애플리케이션 로직은 크게 핵심 기능과 부가 기능으로 나눌 수 있다.핵심 기능은 해당 객체가 제공하는 고유의 기능이다. 예를 들어서 OrderService의 핵심 기능은 주문 로직이다.부가 기능은 핵심 기능을 보조하기 위해 제공되는 기능이다. 예를 들어서 로그 추적 로직, 트랜잭션 기능이 있다. 이러한 부가 기능은 단독으로 사용되지 않고, 핵심 기능과 함께 사용된다. 예를 들어서 로그 추적 기능은 어떤 핵심 기능이 호출되었는지 로그를 남기기 위해 사용한다. 그러니까 부가 기능은 이름 그대로 핵심 기능을 보조하기 위해 존재한다.여러 곳에서 공통으로 사용하는 부가 기능 보통 부가 기능은 ..