사이먼's 코딩노트
[SpringBoot] 음악 커뮤니티 사이트 제작 (1) 본문
[음악 커뮤니티 사이트 제작]
- 음악 커뮤니티 사이트라는 주제 4인 1조의 팀 프로젝트를 진행하였습니다.
- '음악 커뮤니티 사이트 제작' 카테고리에서는 팀 프로젝트를 진행하면서 구현 및 설계된 데이터베이스와 각 화면 페이지에 대한 설명을 작성하고자 합니다.
- 각 페이지의 대한 코드 구현은 따로 포스팅되지 않을 예정이니 코드를 참고하고 싶으시다면 아래 깃허브 리포지터리를 방문해 주시길 바랍니다.
- 깃허브 리포지터리 주소 : https://github.com/psm817/Apollon
[프로젝트 개요]
- 다음은 음악 커뮤니티 사이트(이하 Apollon) 제작에 앞서 프로젝트의 개요에 대해서 설명드립니다.
- 프로젝트 명이 Apollon인 이유는 그리스 로마 신화의 음악의 신인 Apollon의 이름을 가져와 같은 분야의 사이트 중에서 신이 되보자는 의미에서 패기롭게 지어봤습니다.
- 다양한 음악 장르의 창작자들이 손쉽게 자신의 자작곡 또는 일반 대중가요를 업로드하고 공유할 수 있는 웹 사이트를 만드는데에 목적을 두었습니다.
- 또한 다양한 음악을 검색하고 개인 플레이리스트를 통해 스트리밍할 수 있는 기능을 추가하여 청취자들이 원하는 음악을 쉽게 찾고 감상할 수 있도록 지원합니다.
- 개인 스튜디오라는 차별화를 두어 창작자와 청취자 간의 피드백과 소통을 장려하여 활발한 커뮤니티를 형성할 수 있도록 지원합니다.
[개발 기간]
- 이번 팀 프로젝트의 개발 기간은 2024-05-27 ~ 2024-06-27 까지 약 한 달의 기간동안 진행되었습니다.
[개발 환경]
- 운영체제 : Windows 10 / 11
- 통합개발환경(IDE) : Intellij
- 프레임워크 : SpringBoot
- JDK 버전 : JDK 17
- 데이터베이스 : MySQL
- 빌드 툴 : Gradle
- 관리 툴 : GitHub
[역할 분담]
- 이번 팀 프로젝트는 총 4명이 한 조를 이루어 진행했으며, 각자의 역할을 분배하여 페이지 기능을 구현하였고, 그 중에서 제가 개발한 부분을 소개하도록 하겠습니다.
- 저는 Apollon 프로젝트의 팀장을 맡게 되었고, 스튜디오와 마이페이지 기능 구현을 중점으로 개발을 진행하였습니다.
- 추가적으로 플레이리스트에 음악 담아두기와 더불어 음악 재생, 1분 미리듣기를 구현하였습니다.
- 마지막으로 메인페이지에서 모든 종합 정보를 불러오도록 구현하였습니다.
[프로젝트 전체 구조]
- 다음은 프로젝트의 전체 패키징 구조에 대해서 정리를 해보았습니다.
- 패키징 분리를 할 때, 추후 관리가 편하도록 페이지 도메인별로 나눠서 기본 구조 틀을 잡았습니다.
- 각 페이지별 html은 layout.html이라는 공통 템플릿을 기반으로 header.html과 footer.html이 어느 페이지든 포함되도록 구현했습니다.
├── README.md
├── build.gradle
├── .gitignore
├── gradlew.bat
├── gradlew
│
└── src.main
├── java.com.example.Apollon
├── ApollonApplication.java
├── domain
├── comment
├── contorller.CommentController.java
├── entity.Commnet.java
├── form.CommentForm.java
├── repository.CommentRepository.java
├── service.CommentService.java
├── email
├── EmailController.java
├── EmailMessage.java
├── EmailResponseDto.java
├── EmailService.java
├── home
├── contorller.HomeController.java
├── member
├── contorller.MemberController.java
├── contorller.UsernameCheckController.java
├── entity.Member.java
├── repository.MemberRepository.java
├── service.MemberService.java
├── music
├── contorller.MusicController.java
├── entity.Music.java
├── repository.MusicRepository.java
├── service.MusicService.java
├── playlist
├── contorller.PlaylistController.java
├── entity.Playlist.java
├── repository.PlaylistRepository.java
├── service.PlaylistService.java
├── post
├── contorller.PostController.java
├── entity.BoardType.java
├── entity.Post.java
├── entity.PostComment.java
├── entity.PostForm.java
├── repository.PostCommnetRepository.java
├── repository.PostRepository.java
├── service.PostCommentService.java
├── service.PostService.java
├── studio
├── contorller.StudioController.java
├── entity.Studio.java
├── repository.StudioRepository.java
├── service.StudioService.java
├── global
├── config
├── WebMvcConfig.java
├── initData
├── DataFileUtils.java
├── Dev.java
├── TestFileUtils.java
├── TestFileUtilsConfig.java
├── jpa
├── BaseEntity.java
├── security
├── CustomOAuth2UserService.java
├── SecurityConfig.java
├── UserSecurityService.java
├── DataNotFoundException.java
├── resource
├── static
├── chart
├── genreChart.css
├── top100.css
├── comment
├── comment.css
├── comment_detail.css
├── images
├── login
├── slide_img
├── uploads
├── ApollonLogo.png
├── ApollonLogo_dark.png
├── My project.png
├── none.png
├── studio_img.png
├── member
├── login.css
├── myPage.css
├── password.css
├── signup.css
├── signup2.css
├── music
├── musicDetail.css
├── upload_form.css
├── post
├── postDetail.css
├── postLayout.css
├── postList.css
├── postProfile1.css
├── postWrite.css
├── footerStyle.css
├── headerStyle.css
├── mainPage.css
├── studio.css
├── style.css
├── templates
├── chart
├── genreChart.html
├── TOP100.html
├── comment
├── comment_detail.html
├── comment_form.html
├── member
├── login.html
├── myPage.html
├── reset-password.html
├── signup.html
├── signup2.html
├── signup_modify.html
├── signup_modify2.html
├── music
├── modify_form.html
├── musicDetail.html
├── musicDetail_form.html
├── upload_form.html
├── post
├── post_detail.html
├── post_list.html
├── post_modifyForm.html
├── post_profile.html
├── post_write.html
├── sendmail
├── password.html
├── studio
├── studio_detail.html
├── footer.html
├── header.html
├── layout.html
├── mainPage.html
├── application.yml
├── application-dev.yml
├── application-prod.yml
├── application-secret.yml (비공개)
├── application-secret.yml.default
반응형
'프로젝트 > [SpringBoot] 음악 커뮤니티 사이트 제작' 카테고리의 다른 글
[SpringBoot] 음악 커뮤니티 사이트 시연 영상 (2) | 2024.06.26 |
---|---|
[SpringBoot] 음악 커뮤니티 사이트 제작 (5) (0) | 2024.06.26 |
[SpringBoot] 음악 커뮤니티 사이트 제작 (4) (0) | 2024.06.26 |
[SpringBoot] 음악 커뮤니티 사이트 제작 (3) (0) | 2024.06.25 |
[SpringBoot] 음악 커뮤니티 사이트 제작 (2) (0) | 2024.06.24 |