[2학년 2학기 오픈소스 SW개발 수업 프로젝트]웹 오목 대전 서비스

윤태웅·2021년 12월 23일
0

프로젝트

목록 보기
3/12

개요

2학년 2학기 컴퓨터공학과 전공필수 과목인 오픈소스 sw개발 수업에서 진행했던 텀프로젝트.
조건은 NodeJs,수업에서 배우지 않은 기술 한가지 이상 사용, AWS같은 서비스를 이용한 실제 서비스 배포 였다. 이 조건을 만족하는 게임은 뭐가 있을까 고민하다가 웹으로 만나서 오목게임을 하는 사이트를 만들어보자는 생각이 들어서 이 프로젝트를 시작했다.

소개


프로젝트 깃허브 링크
이 링크에 들어가보면 소개가 아주 친절하게 되어있다. 프로젝트 조건중에 readme를 성실하게 작성하는 것도 있었기 때문이다..
게임 사이트 링크
이 링크는 실제로 AWS로 배포중인 사이트 링크이다. 원래 모든 사람들이 구글 로그인 가능하게 서비스를 배포할 생각이었는데.. 구글 api에 https 도메인을 사용하는 규약이 걸려있어서 모든 사람이 로그인 하지는 못한다.

주요기능

구글 로그인

구글 api를 받아와서 구글 로그인을 구현해냈다. 홈페이지를 처음 접속하면 구글 로그인을 요구받으며 로그인정보는 전적확인, 게임중 내 정보 확인 등을 위해 사용된다.

다중 Room기능

socket.io모듈을 이용해서 다중 Room을 구현했다. 선착순으로 방에 입장하면 2명씩 잘라서 방이 배정되고 각각 독립적인 오목 게임이 동시에 구동된다. RoomID를 방마다 정해두고 방의 유저가 서버에 Socket이벤트를 보낼 때 자신의 RoomID를 보내게 하는 방식으로 이 기능을 구현했다.

오목

오목 서비스이니 당연히 오목을 둘 수 있다. 한턴,한턴 돌을 두면서 이어진 5개의 돌을 만들어보자

전적 기록 데이터베이스

sqlite3를 이용해서 전적을 기록하는 기능을 구현했다. 다만, NodeJs에서 sqlite3 DB를 이용하면 동기로 작동해서 그럴 일은 없겠지만 엄청난 유저들이 동시 접속하면 접속렉이 있을것으로 예상된다. 비동기로 데이터베이스를 이용하는 방법을 추후 알아내야 겠다는 생각을 했다.

얻어가는 것들

AWS EC2로 웹사이트 배포하는 법, Git Commit관리하는 법, NodeJs프로그래밍 스타일, Socket.io모듈 사용법, 동기,비동기의 차이

배우고 싶어진 것들

NodeJs기반으로 개발한 Colyseus라는 게임서버 프레임워크

0개의 댓글