1차 프로젝트 회고록

mmmhmm·2024년 2월 27일
0

빝캠

목록 보기
2/3
post-thumbnail

길었던 한 주였다.


자바를 잘 모르고 뭘 만들어야 하는지 막막했다.

그래도 뭐라도 해야 했다.

회고록을 시작하겠다.

프로젝트 선정

한 달 만에 한 권의 책을 빠르게 끝내 프로젝트를 시작했다.
팀이 결정되고 팀원들과 얘기를 나누었다.

'6명이지만 2명씩 나누자 그러면 공부 & 실력이 늘지 않을까?

라는 생각으로 6명이 그렇게 2명으로 찢어져 프로젝트를 시작했다.

모두 게임이라는 큰 틀에서 무언가를 고민을 한다.

그렇게 나와 팀원 둘이서 마피아게임이면 해볼 만하지 않을까? 하는 생각으로 시작했다.

첫 번째 위기

게임은 어찌어찌 정해졌다. 그런데 어떻게 시작해야 하나? 뭐부터 시작해야 하지?

라는 생각으로 일단은 게임 규칙을 정했다.

이건 넣고 저건 빼고 인원은 정해놓고 시작하고.. 게임 규칙을 정하는 것도 어려웠다.

막상 기능을 넣을 생각을 하니 뭘 해야 할지 감이 잡히진 않지만 하면 되겠지 라는 게 내 생각이었다.

두 번째 위기

이제 파일을 만들어야 하는데 어떻게 하지? 하다가

일단 공부했을 때 사용한 Socket통신을 하는 멀티스레드 방식 예제를 쓰자라고 해서 그렇게 무지막지한 코드덩어리들을 만들기 시작했다.

기존에 예제로 사용하던 코드들을 게임 규칙에 맞춰서 기능을 넣고 변수를 만들고 하다 보니

server파일이 200줄 채도 안되었던 게 500줄가량이 늘었다. 이게 이틀이 지난 시점이다.

팀원에게 코드를 보여주니 코드가 뭔지는 잘 모르겠지만 너무 많아서 이해하기가 너무 어렵다고 했다.

다시 구조를 만들어야 했다..

세 번째 위기

이미 시간이 이틀이나 지났다.

남은 시간은 3일 그런데 처음부터 다시 해야 했다. 그래서 얘기를 나누어봤다.

어떻게 나누어야 할지 어떻게 하면 이해할 수 있을지를.. 그래서 결론이 난 게 서버와 클라이언트 파일을 나누고 거기에 기능과 변수들이 따로 빠져있는 파일을 하나 만들어서 거기에 다 때려 넣자!라는 게 결론이다. 그렇게 바보 같지만 실행에 옮겼다.

서버에서 클라이언트가 접속을 받게 무한반복을 하게 하는 코드에 모든 것을 넣은 코드를 분리시키는 작업을 시작했다.

이때 새로 짜는 것보다 분리시키는 게 더 힘들었다.

네 번째 위기

솔직히 매일매일이 위기다.

분리하면 오류가 나서 고치면 기능적으로 문제가 생겨 그거 찾고 하다 보니 방금 학원에 왔는데 집에 가야 할 시간이라고 한다.

남은 날짜는 하루였다. 그런데 아직 데이터베이스는커녕 낮의 투표에서 멈춰있다. 너무 한심했다.

프로젝트한다고 매일 새벽까지 하고 다시 학원 가고 잠도 2~3시간만 자면서 했는데 성과가 없었다. 그나마 팀원들에게 물어물어 가며 게임을 만들고 있었다.

다섯 번째 위기

발표 당일.

아직 데이터베이스 연결은 안 되었고 게임 기능에 몇 개들이 말썽이다.

지금 와서는 알게 되었지만 그때 당시에는 왜 소켓을 꺼버렸는데 다른 클라이언트가 에러를 뱉어내며 같이 꺼져버리는 건지 도무지 이해가 안 되어 정상적으로 게임을 끝낼 수 있는 시나리오를 짜고 있었다. 하지만 위기가 많았던 만큼 나에게 기회가 생겼다.

첫 번째 희망

다른 팀들도 아직 해결하지 못한 게 많다는 의견이 있어 팀장들과 강사님의 회의를 통해 3일의 시간이 더 주어졌다.

나는 잠시 월드피스를 느꼈다.

세상이 느려졌고 코드를 짜던 내 손도 느려졌다.

그때부터 생각을 하고 코드를 작성하고 있었다.



두 번째 희망

오히려 시간에 쫓기지 않으니 코드 작성이 더 빨라졌다.

손이 빠른 게 아니라 원인을 찾고 무언가가 잘못되었는지를 이때 알았다.

첫 번째는 구조적으로 문제가 있었다. 나는 단순히 서버에 있던 코드를 다른 곳에 빼 두어 메서드화 시킨 것뿐이었다.

다른 팀원들의 코드도 눈에 들어와 보니 계층구조로 나누어 상속을 받고 사용하는 걸 보고 아 저렇게 해야 하는데라고 생각했다. 하지만 늦었다.

처음부터 하기에는 이미 저지른 게 많았다. 나에겐 최선은 약속시간 내에 게임이 돌아가게 하는 것이 목표였다.

희망뒤 절망

발표하기 전날 게임이 무사히 종료되는 게임이 완성되었다. 물론 정말 빈약한 콘솔로만 동작하는 게임이다. 하지만 나에겐 대작게임만큼이나 애정이 간다.

이게 내 게임이다. 세상아 덤벼라

너무 뿌듯했다. 그런데 그 시간은 결코 오래가지 않았다.

이미 시간은 오후 10시. 다음 날 오전에 발표 연습하기로 했었다. 하지만 나? ppt를 써야 할 에너지와 체력관리를 못했다.

대략 10일 정도의 시간 동안 평범하게 6시간을 수면했다면 60시간이 되어야 하는데 나는 그 절반이하였다.

다크서클은 턱 밑까지 내려와 있었고 나는 ppt를 잘할 자신도 어떻게 해야 할지 감도 오지 않았다. 그래도 어떻게 해야 하나 해야지 하면서 준비하는데 잠깐 팀당 20분의 시간 동안 3게임을 어떻게 설명해야 하지? 6명이면 개인당 2~3분 사이인데 이 시간 안에 시연도 하고 구조 설명을 어떻게 하지? 생각하다 나는 결단을 내렸다.

그래, 시연으로 몰빵이다. 어차피 구조는 예제에 있던 거야

다음 날 난 다른 팀원들을 ppt를 보고 다신 그러지 말아야지 다짐을 했다.

발표 날

나는 진짜 ppt에 글자만 넣었다..

순서는 4번째라 다른 팀들의 발표를 먼저 보는데 와.. 왜 2명씩 해보자고 했을까 생각하면서 보게 되었다.

이 프로젝트의 핵심은 잘 만드는 게 아니라 협업하고 같이 문제를 해결하는 게 이번 프로젝트의 목표이자 핵심적인 내용이었던걸 이제야 알았다. 하지만 어쩌겠는가 나는 결과물을 먼저 생각했던걸 후회해봐야 늦는다.

추후에 내 프로젝트는 더 다듬기로 생각하고 발표를 하러 나간다...

안녕하십니까 발표를 하겠습니다...시연을 위주로 하겠습니다.

발표가 끝났다.

강사님의 표정은 썩 좋지 않았던건지 내 자신이 안좋다고 생각해서 그렇게 느낀건진 모르겠지만 다음에 저 얼굴에 꽃이 피게 하리라 다짐했다.

저분을 눈물흘리게 하며 기립 박수를 치게 만들것이다.

profile
어라? 금지

0개의 댓글

관련 채용 정보