2월부터 공부 겸 만들어보고 싶은 서비스가 있어 개발해왔는데, 완성하기 급급해서 진행한 내용을 정리하지 못했습니다.
현재 UI/UX 수정과 배포 정도만 남았지만, 지금이라도 프로젝트를 되돌아보고 있었던 이슈들을 정리해두려고 합니다.
1. 프로젝트 개요
- 프로젝트 명: 글로런
- 개요: 텍스트와 이미지로 된 강의를 수강하거나 등록할 수 있는 웹 플랫폼
- 개발 인원: 개인 프로젝트
- 개발 기간: 23/02 ~ 23/03
- 깃허브: https://github.com/LimYooyeol/glolearn
- 링크: 글로런 (PC 환경에서 정상적으로 이용할 수 있습니다)
2. 개발 환경
- 백엔드
- Java 17, Spring Boot 2.7.8
- JPA
- MySQL
- 프론트엔드
- HTML, CSS, JavaScript
- Thymeleaf
- Bootstrap 4.4.1
- 클라우드
- AWS RDS
- AWS S3
- AWS EC2
3. 주요기능
(1) 회원
- 소셜로그인
(2) 코스 - 일반회원
- 하나의 코스는 여러 개의 강의로 이뤄져있다.
- 출시된 코스는 자유롭게 조회할 수 있다.
- 코스를 결제하고, 코스의 강의를 수강할 수 있다.
(3) 코스 - 강사
- 코스를 출시/수정/삭제할 수 있다.
- 출시된 코스는 삭제할 수 없다.
(4) 강의 - 일반회원
- 코스마다 미리보기가 제공된다.
- 수강한 코스의 강의는 모두 볼 수 있다.
- 이어보기 기능이 제공된다.
(5) 강의 - 강사
- 강의를 등록/삭제/수정/조회할 수 있다.
(6) 질의응답
- 각 강의마다 묻고 답하기가 제공된다.
4. DB 설계
5. 세부기능 및 API
(1) 회원
기능 | URL | METHOD | RETURN |
로그인 페이지 | '/login’ | GET | login.html |
OAuth 가입, 인증 | '/oauth/{provider}/token’ | GET | redirect:/ |
로그아웃 | ‘/oauth/token’ | DELETE | redirect:/ |
마이페이지 | '/mypage’ | GET | member/myPage.html |
닉네임 변경 요청 | ‘/member/me/nickname’ | PUT | String: change status |
회원 탈퇴 요청 | '/member/me’ | DELETE | redirect:/ |
(2) 코스 - 회원
기능 | URL | METHOD | RETURN |
코스 단건 조회 | /course/{courseId} | GET | /course/details.html |
전체 코스 조회 | /courses/{category} | GET | /course/list.html |
수강 코스 목록 조회 | /courses/enroll/{category} | GET | /course/list.html |
이어보기 | /course/{courseId}/lecture/continue | GET | redirect: /lecture/{lectureId} |
(3) 코스 - 강사
기능 | URL | METHOD | RETURN |
코스 단건 조회 (관리) | /course/{courseId}/manage | GET | /course/manage.html |
강의 중인 코스 목록 | /courses/mine/{category} | GET | /course/list.html |
코스 등록 페이지 | /course/register | GET | /course/registerForm.html |
코스 등록 | /course | POST | redirect: /course/{courseId}/manage |
코스 수정 페이지 | /course/{courseId}/modify | GET | /course/modifyForm.html |
코스 수정 (소개 등 정보) | /course/{courseId} | PUT | redirect:/course/{courseId}/manage |
코스 삭제 | /course/{courseId} | DELETE | redirect:/course/mine |
코스 출판 | /course/publish | POST | redirect:/course/{courseId}/manage |
(4) 강의 - 회원
기능 | URL | METHOD | RETURN |
강의 조회 | /lecture/{lectureId} | GET | /lecture/details.html |
(5) 강의 - 강사
기능 | URL | METHOD | RETURN |
강의 조회 (관리) | /lecture/{lectureId}/manage | GET | /lecture/manage.html |
강의 등록 페이지 | /course/{course-id}/lecture/register | GET | /lecutre/registerForm |
강의 등록 | /course/{courseId}/lecture | POST | redirect:/ /lecture/{lectureID}/manage |
강의 수정 페이지 | /lecture/{lectureId}/modify | GET | /lecture/modifyForm |
강의 수정 | /lecture/{lectureId} | PUT | redirect:/ /lecture/{lectureId}/manage |
강의 삭제 | /lecture/{lectureId} | DELETE | redirect:/course/{courseId}/manage |
(6) 수강(결제)
기능 | URL | METHOD | RETURN |
PG 사 결제 성공 시 redirect | /enrollment/{courseId}? amount, orderId, paymentKey |
GET | redirect:/ /course/{courseId} |
PG 사 결제 실패 시 redirect | /enrollment/{courseId}/failure | GET | redirect:/ /error/paymentFailure.html |
무료 결제 | /enrollment/{courseId}/free | POST | redirect:/ /course/{courseId} |
(7) 질의응답
기능 | URL | METHOD | RETURN |
댓글 작성 | '/{lectureId}/comment’ | POST | redirect:/ lecture/{lectureId}/comments |
댓글 수정 | '/comments/{commentId}’ | PUT | redirect:/ lecture/{lectureId}/comments |
댓글 삭제 | '/comments/{commentId}’ | DELETE | redirect:/ lecture/{lectureId}/comments |
댓글 목록 조회 | '/lecture/{lectureId}/comments’ | GET | /comment/list.html |
(8) 기타
기능 | URL | METHOD | RETURN |
메인 페이지 | '/’ | GET | index.html |
이미지 얻기 | '/image/{memberId}/{filename}’ | GET | void |
이미지 추가 | '/image’ | POST | file url |
'프로젝트 > 글로런' 카테고리의 다른 글
[글로런] 지연로딩 이용하기 (0) | 2023.03.29 |
---|---|
[글로런] 배포 (3) - AWS EC2 배포하기 (0) | 2023.03.23 |
[글로런] 배포(2) - 이미지 AWS S3 에 저장하기 (0) | 2023.03.22 |
[글로런] 배포(1) - AWS RDS로 전환하기 (0) | 2023.03.22 |