[스마트인재개발원] 1차 (미니)프로젝트 - Music Quiz♪

 ※22년 4월 19일 ~ 4월 21일 동안 [스마트인재개발원-빅데이터 서비스 개발자 과정]에서 진행된 미니 프로젝트의 후기 및 개인 보고서 입니다.

-프로젝트 주제 선정과 그 이유

팀원들 모두 노래를 좋아하는 편이었고, 약 20시간 정도의 짧은 시간 동안 완성을 목표로 잡았기에 이전의 다른 프로젝트에서 영감을 받아 다양한 유형의 노래를 맞추는 'Music Quiz' 를 제작하게 됨


프로젝트에서 맡은 역할

- 팀장 : 다른 팀원들이 맡은 역할의 보조 및 회의 주도(중간 점검과 문제 출제 유형에 대한 회의 진행)

- 테이블 설계 : 사용자의 정보, 노래에 대한 정보를 저장할 테이블의 기본 설계를 맡음

- DB환경 설정 및 링크 : Java 개발 환경에서 Oracle을 사용할 수 있도록 JDBC를 이용한 DB 연결 및 원하는 동작에 대해 테이블에 접근할 수 있도록 코드를 작성

- 발표자 : 4월 21일 오후 3시부터 진행된 발표에서 발표를 진행함


작성 코드 

[Maro Team] mini project with.github


맡은 부분 중 개인적으로 공들인 부분

- 유저들의 순위 조회
- 노래 정보들 중 무작위로 10곡을 골라 문제를 출제




테이블 설계 부분

- 테이블은 유저 정보를 저장하는 userInfo, 노래 문제를 저장하는 musicInfo 테이블을 설계

- 순위 조회의 경우 점수, 순위, 닉네임에 따라 값이 수시로 수정될 수 있으므로, View를 생성하여 출력함

- 각 테이블의 Index의 경우 Primary key로 기본 생성되는 Index를 사용함




-프로그램의 전체 흐름도


-해당 유스케이스를 기본으로 하여 흐름도 및 코드를 작성함
-총 세 가지 부분으로 나누어 설계함


메인 메뉴 - 로그인, 회원가입, 게임종료


로그인, 회원가입이 실패했을 경우, 다시 메인메뉴로 돌아감



게임 메뉴-게임하기, 규칙확인, 로그아웃, 순위확인


현재 로그인한 유저가 이전 자신의 점수보다 높은 점수를 기록했을 때에만, 점수가 갱신됨


게임 하기


3개의 목숨이 0이 될때 까지 게임을 진행, 현재의 유저가 기록한 점수가 이전의 점수보다 높을 경우에만 갱신 되도록 설계


-후기

이전에도 비슷하게 소규모 프로젝트를 진행한 적이 있었습니다.

그때와 비교하자면 MP3Player 라는 외부 라이브러리, JDBC를 이용하는 현재가 좀 더 난이도도 높았고, 협업의 중요성이 좀 더 크다는 것을 몸소 느낄 수 있었습니다.

혼자서도 이 정도 규모의 프로젝트를 완성해야 한다면, 힘들기는 하지만 가능은 할 것이라고 생각합니다. 하지만 약 20시간이라는 적은 시간 안으로 완성한다는 것은 썩 쉽지 않았을 뿐더러, 저는 UI 설계에 취약한 면이 없지 않게 있었습니다.

그러기에 UI설계나 다른 알고리즘의 설계를 분담하여 협업함으로서 현재의 만족할만한 완성도를 끌어낼 수 있었습니다. 

댓글