Spring Boot REST API 업데이트 구현: Spring Boot에서 REST API의 전체 업데이트 엔드포인트를 구현하는 방법을 다루며, 특히 이벤트 목록 조회 기능에 중점을 둡니다. 🚀
무료 학습 자료 제공: Spring Boot 백엔드 및 React 프론트엔드 소스 코드를 포함한 모든 참조 자료를 DevTo Discord 서버에서 무료로 다운로드할 수 있습니다. 🎁
모듈별 개발 접근 방식: 이벤트 목록 기능을 서비스 계층 구현, DTO 및 매퍼 생성, 컨트롤러 엔드포인트 구축, 사용자 인터페이스를 통한 테스트 순서로 체계적으로 진행합니다. 🏗️
서비스 계층의 페이지네이션 활용: EventService에 listEventsForOrganizer 메서드를 추가하여 Page<Event>를 반환함으로써, 데이터베이스의 모든 이벤트를 한 번에 불러오는 대신 페이지네이션을 통해 효율적인 리소스 관리를 가능하게 합니다. 📄
Spring Data JPA의 쿼리 자동 생성: EventRepository에 findByOrganizerId 메서드를 추가하면, Spring Data JPA가 특정 명명 규칙(organizer.id)을 기반으로 자동으로 쿼리를 생성하여 개발 편의성을 높입니다. 💡
DTO 설계 원칙: ListEventResponseDTO 및 ListEventTicketTypeResponseDTO를 생성할 때, 사용자 인터페이스에 필요한 최소한의 정보만 포함하고 민감하거나 불필요한 정보는 제외하여 효율성과 보안을 강화합니다. 🛡️
매퍼를 통한 엔티티-DTO 변환: EventMapper를 업데이트하여 엔티티 객체를 ListEventResponseDTO 및 ListEventTicketTypeResponseDTO로 변환하는 메서드를 제공함으로써, 계층 간 데이터 전송을 용이하게 합니다. 🔄
컨트롤러의 인증 및 페이지네이션 처리: EventsController에 @GetMapping 엔드포인트를 추가하여 JWT에서 organizerId를 추출하고 Pageable 객체를 활용하여 인증된 사용자의 이벤트 목록을 페이지네이션과 함께 반환합니다. 🔑
인증과 권한 부여의 구분: 현재는 JWT를 통한 사용자 인증만 구현되어 있으며, 사용자가 특정 작업을 수행할 권한이 있는지 확인하는 권한 부여(Authorization)는 향후 구현 과제로 남겨둡니다. 🚦
재사용 가능한 유틸리티 메서드: JWT에서 사용자 ID를 파싱하는 parseUserId와 같은 private 헬퍼 메서드를 사용하여 코드의 재사용성을 높이고 향후 개선 시 유지보수를 용이하게 합니다. 🛠️