교육 매니저인 스펜서가 이벤트로 커피 쿠폰과 같은 기프티콘을 뿌리기도 했는데 이 때 쿠폰을 게더에 숨겨서 보물 찾기 형식으로 가져가는 방식이었습니다.
여기서 아이디어를 얻어서 이벤트를 생성하고 참여코드를 링크 형태로 발급하면 링크를 통해서 들어온 참가자가 선착순 or 랜덤 형식으로 선물을 받아갈 수 있도록 프로젝트를 기획하게 되었습니다.
프로젝트개요(프로젝트구현내용, 컨셉, 훈련내용과의관련성등)
사용자가 주고 싶은 선물을 담아 이벤트를 만들어서 다른사람들에게 선물을 줄 수 있는 서비스
이벤트를 생성하고 싶은 사용자는 이벤트 정보(제목, 참여인원, 이벤트 이미지), 선물 받을 방법(랜덤, 선착순), 이벤트 제목, 최대 참여 인원, 선물 정보(이미지 or 텍스트, 선물 이름)를 작성해서 이벤트를 만들면 이벤트에 대한 참여 코드를 링크 형태로 받아서 이벤트를 참여시키고 싶은 사용자들에게 전달한다.
이벤트 참가자는 받은 링크를 통해서 이벤트를 조회할 수 있다.
이벤트 참여 시 로그인 후 선착순 or 랜덤 방식에 맞춰서 이벤트 참여를 하게 되고 선물을 받을 수 있다.
사용자는 받은 선물을 저장하고 마이페이지에서 관리할 수 있다.
훈련 내용과의 관련성
Java/Spring을 이용하여 백엔드 api 서버를 만들고 클라우드 환경(aws ec2)에 배포하였습니다.
파일 업로드 및 저장을 위해 aws s3를 사용하였습니다.
DB는 테스트 환경에서 h2를 사용하고 배포 환경에서는 MySql을 사용하였습니다.
이슈와 스프린트, 프로젝트 관리를 Jira로 하였고 협업과 버전 관리를 위해 Git&Github을 사용하였고 노션을 통해 문서화 작업을 하였습니다.
CI/CD를 위해 Github Action CI와 Docker를 이용한 CD를 구현하였습니다.
Oauth2를 이용한 카카오 로그인 구현을 하였습니다.
활용장비및재료(개발환경등)
운영체제 : 윈도우 10, linux(aws ec2),
협업 툴 : git&github, jira, notion, slack
IDE : intellij
Programming Language : Java 11
DB :MySQL
Framework : Spring Boot
Spring Data JPA
QueryDSL
AWS EC2, RDS, S3, Docker
Gradle
프로젝트구조
erd
기대효과
팀 프로젝트를 통해 프론트, 백엔드간의 협업을 경험할 수 있다.
기본적인 CRUD 기능을 위한 Rest API를 개발 할 수 있다.
데이터가 어떻게 보관되는지를 이해하고, JPA를 통해 ORM을 사용하거나 직접 SQL을 작성하여 데이터를 조작하는 것을 익힐 수 있다.
Spring의 컨셉과 핵심 모듈들을 다뤄보며, 데이터가 어떻게 정리되고 동작하여 사용자들에게 보이는지 전체 과정을 파악할 수 있고 상황에 맞는 비즈니스 로직 처리 방법을 경험할 수 있다.
클라우드 서비스인 aws를 활용해서 ec2 서버에 프로젝트를 배포하고 데이터 베이스 서비스인 RDS 사용하여 데이터를 관리하며 파일을 관리하기 위한 S3를 사용하며 익힐 수 있다.
CI/CD를 위해 Github Action CI와 Docker를 이용한 CD를 구현할 수 있다.