[미니프로젝트] java - TypingStory

Hyeonu_J·2022년 12월 16일
0
post-thumbnail
post-custom-banner

전체적인 프로젝트 플레이 영상 - https://youtu.be/yx6gDpmJjQo
학교 자바 과제를 성공적으로 마쳤다! 야호 종강이다아ㅏ

Java의 JFrame 모듈을 이용해 미니프로젝트를 만들었다. 산성비 같은 타이핑 게임에 rpg게임 요소(스킬,레벨,exp,상점,강화 등등..)를 추가해서 만들었다.

교수님 A주세요 젭알
셤망쳐서 어림도없지 B맞아버리기


의견 / 느낀점

종합 후기

미니프로젝트를 수행하면서 자바 언어에 대한 문법 및 구조 이해와 자바 프로그래밍 능력을 기르고, GUI를 구현하기 위해 자바 스윙 라이브러리를 학습했으며, 이를 통해 그래픽, 이벤트 처리, 스레드 및 멀티태스킹에 대해서도 학습했다.

무엇을 배웠나?

또한 자바 스윙 라이브러리를 이용해 텍스트 타이핑 게임을 만드는 프로젝트를 성공적으로 수행해 자바 언어에 대해 능숙하게 다룰 수 있게 되었다. 여러 작업을 동시에 수행하는 비동기 처리를 위해 스레드를 두 개 이상 만들어 실행하는 멀티태스킹 방법인 멀티스레드에 대해 학습했다.

아쉬운점

성공적으로 프로젝트를 마무리 한 것 같아서 기쁘지만, 다만 아쉬운 것도 있다. 몬스터를 생성할 때, 유니티 같은 게임엔진에선 게임 오브젝트를 필요할 때 활성화 시 켰다가 불필요하면 비활성화시키는 방식으로 메모리를 효율적으로 사용하는 ‘오브젝트 풀링’이라는 기법을 사용하지만, 지금 자바 프로젝트의 경우, 몬스터나 패널을 새로 만들고 붙이는 방식이라서(단순히 오브젝트를 계속 생산해 내는 방식이라서) 메모리를 효율적으로 사용하지 못한 게 매우 아쉽다. 또한 싱글톤 설계 기법도 조금 아쉽게 사용했다.
플레이어 데이터를 계속해서 불러오기 위해 새로 플레이어를 만들지 않고 플레이어 인스턴스를 리턴하는 방식으로 싱글톤을 사용했지만, 싱글톤을 전혀 생각하지 않고 새로 플레이어를 만드는 방식으로 진행했어서 조금 아쉽게 약간 설계가 잘못되었다. 마지막으로 각 몬스터마다 중복되는 코드가 여럿 있는데, 이를 상위 클래스를 만들어서 중복되는 코드를 상위 클래스에서 처리하는 식으로 진행했으면 더 유지보수가 쉽고 직관적인 코드가 작성되었을 것이다. 객체지향언어의 장점인 재사용성/쉬운 유지보수 라는 장점을 살리지 못했다는 점도 매우 아쉽다. 유지보수를 한다면 앞에서 말한 세 부분을 고치고 싶다.

profile
흔한 컴공러 / 3학년
post-custom-banner

0개의 댓글