프로젝트 시작 배경
이번 학기에 소켓 프로그래밍 과목을 수강했다.
종강이 얼마 남지 않았는데, 종강 이전까지 소켓을 사용한 간단한 프로젝트를 완성해 제출해야 한다.
2주 만에 만들만한 프로젝트 아이디어를 생각하던 중 이름을 보면 알 수 있듯이 웹에서 소켓을 사용해 오목 게임을 할 수 있는 사이트를 만들기로 했다.
사용할만한 소켓 라이브러리는 WebSocket과 Socket.io가 있었는데, WebSocket의 경우 TCP/IP 소켓과 달리 HTTP 프로토콜 내에서 동작하기 때문에 배운 내용과는 거리가 멀다고 생각되어 Socket.io를 선택했다.
Socket.io도 WebSocket을 사용하긴 하지만, 이는 WebSocket을 이용한 통신이 가능한 경우 관련 메타데이터를 추가해줄 뿐이지 WebSocket을 기반으로 만들어졌다는 뜻이 아니다.
오히려 TCP/IP 소켓 연결을 계속 유지하고 있기에 배터리 소모에 주의하라는 문구가 있다.
아래의 링크에서 더 자세한 내용을 확인할 수 있다.
https://socket.io/docs/v4/#what-socketio-is-not
Introduction | Socket.IO
What Socket.IO is
socket.io
서버 프레임워크는 빠른 구현을 위해 NodeJS를 사용할 예정이다.
NodeJS 서버 구축이 간단하기도 하고, 클라이언트 소켓도 자바스크립트로 작성해야 되기 때문에 서버 언어도 자바스크립트로 통일하면 그만큼 개발 기간이 더 단축될 것이기 때문이다.
프로젝트 기능
넣어야 될 기능들은 다음과 같다.
필수 기능
- 방 만들기
- 방 목록 보여주기
- 방 참가하기 (관전하기)
- 오목 두기
- 방 나가기
선택 기능
- 방 내에서 채팅하기
- 각 턴별 시간제한, 총 시간제한 규칙 정하기
- M판 N선승제 규칙 정하기
- 사용자별 경험치, 레벨 저장 (서버 재시작 시 사라짐)
- 무르기
기간이 얼마 없기 때문에 디테일한 부분은 넘기고 필수 기능 구현에만 집중하게 될 것 같다.
다음번엔 개발 환경 구축 관련 글을 작성하도록 하겠다.
'Projects > Socket Omok' 카테고리의 다른 글
[Socket Omok] 6. 착수 위치 미리보기 및 선택하기 (0) | 2022.06.13 |
---|---|
[Socket Omok] 5. 바둑판, 바둑알 표시하기 (0) | 2022.06.06 |
[Socket Omok] 4. 플레이어 참가 기능 개발 (0) | 2022.06.06 |
[Socket Omok] 3. 대기실 기능 개발 (0) | 2022.06.05 |
[Socket Omok] 2. 개발환경 구성하기 (0) | 2022.06.02 |