팀원들과 함께 만든 교통수단 선택기(Team Transportation Selector)
사용자가 목적지, 출발/도착 예정시간, 예산을 입력하면 가장 적합한 교통수단을 추천하는 프로그램입니다. 목적지에 도착하기 위해 가장 효율적인 교통수단을 선택할 수 있도록 도와줍니다. 선택 가능한 교통수단은 '택시', '지하철', '버스'이며, 예산과 시간이 부족할 경우 '지각'으로 처리됩니다.
Java를 기학습한 팀원들의 주도로 주요 기능은 하루만에 개발되었습니다. 이후 수업시간에 배운 개념을 응용해 볼겸 팀원들과 협의 후 Transport Override와 예외처리를 개인적으로 추가하였습니다.
- 개발 환경: Java, eclipse
- 개발 기간: 2024.08.09.(팀), 2024.08.09.-08.14.(개인)
핵심 기능
핵심 기능은 다음과 같습니다.
- 예산 입력: 현재 가지고 있는 돈을 입력합니다.
- 출발/도착 예정 시간 입력: 출발 시간과 도착 예정 시간을 입력합니다.
- 목적지 입력: 목적지를 입력합니다.
- 교통수단 추천: 입력된 예산과 소요 시간을 바탕으로 '택시', '지하철', '버스' 중 가장 적합한 교통수단을 추천합니다.
- 지각 처리: 예산과 시간이 모두 부족한 경우 지각으로 처리됩니다. 지각이 누적되면, 노래를 부르는 벌칙이 주어집니다.
코드 구조
이 프로그램은 여러 개의 클래스(Main, Person, Transport, Station, Taxi, Bus, Subway)로 구성되어 있으며, 주요 클래스는 다음과 같습니다.
- Main 클래스: 사용자로부터 입력을 받아 교통수단을 선택하고 탑승 및 하차 과정을 처리합니다.
- Person 클래스: 사용자의 현재 상태(예산, 시간, 지각 횟수 등)를 관리합니다.
- Transport 클래스: Taxi, Bus, Subway 등의 교통수단을 추상화한 클래스입니다. 이 클래스는 ride, transfer, getOff 등의 메서드를 정의하고 있으며, 실제 교통수단에 대한 선택과 탑승 과정을 구현합니다.
- Station 클래스: 각 교통수단의 출발/도착 지점을 관리합니다.
개발 과정
- 반복을 줄이면서도 효과적인 예외처리를 수행하는 것이 상당히 어려운 작업임을 느꼈습니다.
- 다음주에 할 팀 프로젝트를 시작하기 전에 Java의 일반 예외, 실행 예외 처리 과정과 문법, 예외 전가에 대해서 깊이 있게 공부해야겠다고 다짐하는 계기가 되었습니다.
결과
총평
본 프로젝트는 팀원들이 Java에 대한 기본 지식을 바탕으로 주도적으로 주요 기능을 하루 만에 개발하면서 빠르게 진행될 수 있었습니다. 회의한 결과물을 바탕으로 어떤 클래스를 만들지 결정하고, 실제 구현하는 모습을 보면서 앞으로 더 많이 공부하고, 연습하고, 배워야겠다고 느꼈습니다.
그래서... 조금이라도 도움이 되고 싶어서... 수업시간에 배운 개념을 참고하여 Transport Override와 예외처리를 추가하면서 프로그램을 더욱 견고하게 만들기 위해 노력했습니다. 이 과정에서 예외처리의 중요성과 그 복잡함을 실감하게 되었고, 앞으로 진행하게 될 많은 프로젝트에서 이를 보다 효율적으로 다루기 위해 추가적인 학습이 필요하다는 점을 느꼈습니다.
이번 프로젝트는 Java 개발 환경에 익숙해지고, 팀원들과의 협력을 통해 효율적인 코드 작성 방법을 배울 수 있는 좋은 기회였습니다. 이번 경험을 바탕으로 다음주 프로젝트에서는 꼭 1인분할 수 있도록 도전해 보고자 합니다.
https://github.com/seonmin5/Java_TransportTeamproject
GitHub - seonmin5/Java_TransportTeamproject
Contribute to seonmin5/Java_TransportTeamproject development by creating an account on GitHub.
github.com
'프로젝트 > 개인 개발일지' 카테고리의 다른 글
[FE/Next.js/Storybook] 25.08.04 - 스토리북 적용 및 PostCSS 오류 해결 (2) | 2025.08.04 |
---|---|
[Java/Toy Project] 팀 - 스터디카페 좌석 예약 시스템 (ORM, JPA, JPQL) (8) | 2024.09.01 |
[Java/Toy Project] 하루만에 만든 나만의 교통수단 선택기 (0) | 2024.08.16 |