프로젝트 시작 방법론: 수많은 프로젝트 경험을 바탕으로 프로젝트 시작 방식은 일관됨을 강조하며, 이 비디오에서 그 과정을 안내합니다. 🚀
애플리케이션 아키텍처 설계: Spring Boot 백엔드, React 프론트엔드, PostgreSQL 데이터베이스, Keycloak 인증 서버로 구성된 아키텍처를 상세히 설명합니다. 🏗️
Spring Boot 프로젝트 생성: Spring Initializer(start.spring.io)를 사용하여 Maven, Java 21, Spring Boot 3.4.4 버전으로 기본 프로젝트를 생성하는 과정을 시연합니다. 🛠️
핵심 의존성 추가: REST API를 위한 Spring Web, 보안을 위한 Spring Security 및 OAuth2 Resource Server, 데이터 저장을 위한 PostgreSQL Driver 및 Spring Data JPA, 개발 편의성을 위한 Lombok, 테스트를 위한 H2 Database를 추가합니다. 🔗
H2 Database 활용: 테스트 환경에서 실제 PostgreSQL 데이터베이스 연결 없이도 스프링 컨텍스트 로딩 테스트가 통과하도록 H2 Database를 test 스코프로 설정하는 중요성을 강조합니다. 🧪
프로젝트 구조 이해: IntelliJ에서 생성된 Spring Boot 프로젝트의 표준 Maven 구조, TicketsApplication 메인 클래스, application.properties 파일, pom.xml의 의존성 및 플러그인 설정을 탐색합니다. 📂
불필요한 파일 제거: 서버 사이드 렌더링을 사용하지 않으므로 static 및 templates 디렉토리를 삭제하여 프로젝트를 간소화합니다. 🗑️
Keycloak의 역할: 사용자 생성, 백엔드 인증 및 권한 부여(주최자, 참석자, 스태프 등 다양한 사용자 유형 관리)를 처리하는 인증 서버로서 Keycloak의 중요성을 설명합니다. 🔑
MapStruct 설정 예정: 객체 매핑을 간소화하고 개발 시간을 절약하기 위해 MapStruct를 설정할 계획임을 언급합니다. 🗺️
PostgreSQL 선택 이유: 관계형 데이터베이스의 단순성과 퍼지 검색 기능 때문에 PostgreSQL을 선택했으며, 초기 인프라 복잡성을 줄이는 데 중점을 둡니다. 🗄️