프로젝트 소개
Java Swing을 활용한 개복치 게임 프로잭트입니다.
- 프로젝트 기간 : 5일
- 프로젝트 인원 : 총 6
- 사용한 기술 스택 : JAVA Swing
- 맡은 역할 : HomeScreen FrontEnd & BackEnd
옆으로 넘겨 사진을 더 확인해보세요!
아래 github 클릭하시면 코드를 확인해보실 수 있습니다!
구현한 상세 기능 ( branch : home/ys )
- 각 먹이 객체를 client 단에서 생성
- 먹이를 클릭할 시 개복치 체중 증가
- 상한 먹이를 먹었을 때 사망 페이지 띄우기
- 각 먹이는 다른 속도, 방향으로 제각기 움직이고 화면 모서리에 닿을 경우 반대방향으로 전환
- 상한 먹이 제외하고 다른 먹이가 모두 클릭된 경우 다시 먹이 초기화(전체 화면에 띄우기)
🥰 좋았던 점
- 2년 전, 학부 과정에서 배운 JAVA Swing에 대한 기억을 되살려 프로젝트에서 활용할 수 있어 유의미한 기회였다고 생각합니다.
- HomeScreen의 기능을 모두 구현했을 때 초반 코드는 300줄이 넘었습니다. 컴포넌트화를 하지 않아 코드의 중복성과 의존성이 높았으나 코드 리뷰를 통한 개선을 실현하여 더 간결하면서도 가독성있는 코드로 만들어 유지보수성에 대해 고려해볼 수 있었습니다.
- 미흡하지만 MVC 설계를 시도하면서 Controller의 역할에 대해 고민할 수 있었습니다.
- 먹이는 모두 바다생물이므로 우선적으로 바다생물(SeaCreature) Class를 생성하고 실제 새우, 조개 .. 와 같은 객체가 SeaCreature class를 상속받아 다형성을 부여하였습니다.
- 게임 프로젝트가 처음이었는데, 디자인적 요소와 컨셉을 게임에 맞게 선정하는 과정이 매우 흥미로워 더욱 발전해보고 싶다는 결심까지 하게 되었습니다.
- 애자일 방식을 택하여 스프린트 주기로 개발하고 피드백 적용 및 점검하는 단계를 거쳐 역할 분배가 원할하게 이루어졌고 이는 원활한 협업과 동시에 성공적인 프로젝트 결과물을 도출할 수 었습니다.
🧐 아쉬운 점
- 클래스 내에서 FrontController를 직접 생성하게 되어 의존성을 주입하게 되었는데 이를 분리하지 못한 점이 아쉽습니다.
- 실제 먹이 객체 역시 Server단에서 생성한 후 Front에서는 이를 띄우는 형태로 작성했어야 했는데, 기능 구현에만 집중한 것 같아 코드를 개선해야 할 필요성을 느꼈습니다.
- 먹이가 이동하는 모습이 뚝뚝 끊기는 것으로 보이는데 자연스럽게 만들기 위해 이동하는 메소드에서 더 짧은 시간 내에 좌표를 움직이도록 코드를 구현하지 않은 것이 아쉬웠습니다.
- Thread를 사용하여 병렬 처리를 하지 않았으나 다음 프로젝트에서는 꼭 사용하여 자원을 공유하고 성능 향상에 많은 노력을 기울일 것입니다.
다른 조는❓
텃밭 가꾸기, 비행기에서 총 쏘는 게임, 포스, 키오스크 와 같은 주제로 프로젝트를 진행한 것을 확인할 수 있었습니다.
객체 지향 특징을 살려 코드를 작성한 팀을 보며 구조를 이해했고, Thread를 사용하여 게임을 제작한 팀으로부터 배울 점을 얻었습니다. (주말에) 다른 팀 깃허브를 보며 코드를 개선하려고 계획 중에 있습니다.!
☁️ 앞으로
SpringBoot 프레임워크의 필요성을 제대로 배웠기 때문에 더 잘 배울 수 있는 준비를 갖춘 것 같습니다!!!
SpringBoot 마스터 해야지!!!
'BackEnd' 카테고리의 다른 글
클라우드 기반 백엔드 기초 : 페어프로그래밍(2) (0) | 2024.04.29 |
---|---|
클라우드 기반 백엔드 기초 : 웹 개요 및 MVC (0) | 2024.04.26 |
클라우드 기반 백엔드 기초: 애자일과 설계 (0) | 2024.04.15 |
클라우드 기반 백엔드 기초 : 내가 생각하는 객체 지향이란? (2) | 2024.04.11 |
클라우드 기반 백엔드 기초 : 클린코드와 리팩토링 (0) | 2024.04.11 |