JAVA를 이용하여 약 5일간의 프로젝트를 만들어보았다.
자세한 과정과 내용은 아래 노션에다가 기록해놓았다. ↓ ↓ ↓ ↓ ↓
https://www.notion.so/TeamProject-e27a469100534f86843b034b4dca48ad
TeamProject | Notion
멤버 구성
ivory-turkey-66a.notion.site
두번째 (소규모) 프로젝트 - 포켓몬 게임
국비 수업을 들으면서 두번째 프로젝트로 포켓몬게임을 간단히 만드는 것을 하게 되었다.아래는 요구사항이다.더보기※ 요구사항 [포켓몬스터 게임 프로그램을 작성해주세요.] class 포켓몬
yn98.tistory.com
위 글로부터 이어서 써 내려가는 후기이다.
아래는 포켓몬 게임을 만들기 전에 작성된 샘플 요구사항이다.
※ 요구사항
[포켓몬스터 게임 프로그램을 작성해주세요.]
class 포켓몬
String 타입 // 모든 포켓몬은 타입이 반드시 존재한다. ex) 전기, 물, ...
String 이름 // 모든 포켓몬은 이름이 반드시 존재한다. ex) 피카츄, 꼬부기, ...
int 레벨 // 새로 잡은 포켓몬의 레벨은 1~5 랜덤한 값을 가진다.
int 경험치 // 새로 잡은 포켓몬의 경험치는 0이다.
void attack() // 50%의 확률로 성공 -> 성공시 50~500 사이의 경험치 획득
void hello() // 피카츄는 삐까삐까, 꼬부기는 꼬북꼬북 등의 울음소리를 출력한다.
void levelUp() // 경험치가 100을 채울때마다 레벨은 +1
class 피카츄
attack() // 전기타입 -> 전기충격
hello() // 삐까삐까
class 꼬부기
attack() // 물타입 -> 물대포
hello() // 꼬북꼬북
syso(포켓몬객체); 수행시 [피카츄 전기타입 Lv5 exp10]으로 출력
1. 게임하기 2. 전체상태출력 3. 울음소리듣기 4. 포켓몬잡기 0. 게임종료
# 피카츄,꼬부기 대신 다른 포켓몬들로 구현할 것!
# 요구사항을 벗어나지않는 조건에서 기능 및 설정 추가 가능!
첫 회의록(7.5)에는 사용하게 될 함수와 변수들을 팀원들과 설계하였다. 그리고 각자 파트를 분배하였다.
두번째 회의록(7.6 ~ 7.7)에는 각자 분배된 파트를 notion에다가 작성하였다.
세번째 회의(7.9)에는 온라인으로 각자 짠 코드를 합치는 작업을 하였다.
네번째 회(7.10 ~7.11) 에는 빠트린 부분을 보충하였다.
설계 내역 페이지를 따로 notion에다가 저장해서 요구사항에 따른 우리 팀원들끼리 만들어낸 설계를 저장해두었다.
코드흐름도 간단히 이해하기 쉽도록 설계내역_코드흐름설계 페이지를 notion에다가 저장해놓았다.
리뷰 & 셀프리뷰 & 느낀점
코드를 짜내면서 아쉬웠던 부분이 많았다. 설계가 완벽하지 않았어서 함수를 중간중간에 추가했고, 서툴렀다. 함수 이름 설정도 아쉬웠다. 유효성 검사 부분에서 isFull() 보다는 isEmpty()로 하는 것이 더 정답에 가까웠다. 또한 selectOne()함수도 함수 이름 설정이 잘못됐다는 피드백을 받았다. 이는 설계 부실함과 CRUD 정의에 대한 이해도가 부족했기 때문에 일어난 일이라고 생각한다.
그리고 최종 검토가 많이 부족했다. 사소한 오탈자가 몇군데 보였다.
피드백을 받은 부분으로는 selectOne()함수에 재귀함수(return 본인(함수)을 부름)를 사용한 점이 있다. while 반복문을 사용해도 된다고는 생각했는데, 머리로는 알지만 코드를 막 짜내다보니 좋지 않은 코드로 구현했다고 생각한다.
전체적으로는 설계가 부실했기 때문에 코드가 깔끔하지 않았다고 피드백을 받았고, 나도 그 피드백에 동의하는 바이다.
그래도 잘 한 점은 적어도 내가 맡은 부분은 주석을 꼼꼼하게 적어서 가독성이 좋았다고 내 스스로 생각했는데, 그에 대해 칭찬도 받았다. 내가 맡은 부분이 길지는 않지만 꽤나 복잡한 편이어서 다른 팀원분들이 보고 이해하기 쉽지 않을 것 같아서 최대한 자세히 주석을 달았었는데, 그 부분은 잘 했다고 생각한다.
이 외로도 더 많은 +-요소가 있었는데.. 다음에는 고쳐야할 부분은 고치고, 잘 한 부분은 그대로 녹여서 잘 해내야겠다는 생각이 든다. 그리고 앞으로도 지금같은 팀원들과 같이 하면 잘 할 수 있을 것이라고 생각한다.
처음 업다운 게임 프로젝트 이후로 두번째 프로젝트였는데, 그 사이에 내 코딩 실력이 많이 올랐다는걸 느꼈다. 진작에 이랬어야 했는데.. 이전엔 함수를 작성하는 것도 버벅거렸는데, 이제는 전보다는 훨씬 잘 활용하고, 객체지향의 존재 이유인 함수 재사용을 최대한 활용하면서, 개발자 입장이 아닌 모두가 읽기 수월하도록 주석을 최대한 활용하려고 하는 습관이 생겼다.
이번 프로젝트에는 팀장을 맡았었다. 이번에는 바지팀장으로 활동하면서 느낀 점은, 결국 팀원이 중요하다. 모든 팀원분들이 적극적으로 각자 맡은 파트와 전체적인 틀을 정확히 이해해주고, 잘 따라와주셔서 고마웠다. 어떤 시간에 연락을 하던 늘 칼답으로 누군가는 내 말을 경청해주고, 바로 진행시켰다. 개인적으로는 정말 팀원분들 덕분에 이번 프로젝트를 진행하면서 나름 여유로웠던 것 같다.
'프로젝트' 카테고리의 다른 글
COMA 클라이밍 크루 최종 프로젝트 자료 (0) | 2024.11.14 |
---|---|
[팀 프로젝트] COMA 클라이밍 크루 커뮤니티 중간 프로젝트 후기 및 느낀점 (1) | 2024.10.01 |
[JAVA] 쇼핑몰 프로그램 MVC 패턴으로 구현하기 프로젝트 (0) | 2024.07.24 |
[JAVA] 포켓몬 게임 프로젝트 - 2 (1) | 2024.07.12 |
UP - DOWN 게임 만들기 (첫 번째 팀 프로젝트, 셀프 리뷰 ) (0) | 2024.07.01 |