📌JAVA SEMI PROJECT
목차
1. 프로젝트 소개
- 주제
- 기획 의도
- 기간
- 개발 환경
- 참여 부분
2. 어려웠던 점 & 해결 방법
3. 느낀점
- 잘한 점
- 힘들었던 점 / 아쉬운 점
- 배운 점
1. 프로젝트 소개
주제
지하철 혼잡도 관리 시스템
기획 의도
- 관리
지하철 혼잡도를 통한 역 혼잡도 관리
- 서비스
지하철 혼잡도 정보 제공으로 이용객 편의 증진
기간
2024-01-29 ~ 2024-02-08
개발 환경
- Windows 11
- Eclipse (2023-12 R)
- Java (JDK 21.0.2)
- GitHub
2. 어려웠던 점 & 해결 방법
1. 협업 툴
팀 프로젝트의 꽃은 사실 코드 구현이 아니라 협업 툴을 사용하는 것이다...
GitHub를 이용하여 매일 공부한 것을 push하고는 있지만
단순히 레파지토리를 생성하고 업로드 하는 일이었지
팀원들과 코드를 공유하고 수정하는 등 자세한 Git 사용법은 알지 못했다.
그래서 공유 레파지토리에 코드를 올릴 때 팀원의 도움을 자주 받았고
답답함과 나 자신에 대한 실망감을 느꼈다.
게다가 내 실수로 팀원들 다 같이 열심히 만들고 수정한 코드가
한순간에 날아갈 수 있다는 생각에 두려웠다.
이번 프로젝트를 진행하며 협업 툴에 대한 공부가 절실함을 느꼈고,
프로젝트가 끝난 지금 Git과 Git 관련 툴에 대해 공부하고 있다.
2. 오류
기능 구현을 하면서 마주했던 오류 중 대표적으로 생각나는 오류를 작성했다.
오류 메시지
> Local variable ticketCode defined in an enclosing scope must be final or effectively final
기존 코드
문자열 변수 ticketCode를 빈 문자열로 먼저 선언한다.
그 이후 사용자에게 입력 받는 값을 변수 ticketCode에 할당한다.
String ticketCode = "";
ticketCode = scan.nextLine();
원인
람다식의 외부 지역변수는 상수여야 한다.
변수 ticketCode를 빈 문자열로 선언했다가 입력 받은 값으로 변경하는 식으로 짰더니 람다식 이후로도 값을 변경할 위험(상수가 아닌 값이 될 위험)이 있다고 생각해서 오류가 발생했다.
해결
문자열 변수 ticketCode를 빈 문자열로 선언하지 않고
입력 받은 값을 바로 변수에 할당하도록 구현하여 해결했다.
String ticketCode = scan.nextLine();
boolean checkTicket = Data.passList.stream().anyMatch(pass -> pass.equals(ticketCode));
3. 느낀점
👏 잘한 점
- 팀 회의에서 의견을 적극적으로 제시한 것
- 소통하고자 노력한 것
- 최선을 다했다는 것
😔 아쉬운 점
- git에 대한 공부가 부족했던 것
- 수업 때 배운 java 문법들을 프로젝트에서 많이 써보지 못한 것
- 머리로만 이해하고 손으로는 치지 못하는 문법이 많았다는 것
❗ 배운 점
- 팀 프로젝트에서 기능 구현을 위한 기술, 협업 툴에 대한 이해보다
더 중요한 것은 '소통'이다.
- 책으로 하는 공부가 아닌 직접 치는 공부가 필요하다!
문법을 머리로만 이해하는게 아니라 해당 문법을 어떤 상황에서 어떤 기능에 사용해야 하는지 생각하는 버릇을 들여야 한다.