All'alba vincerò

At dawn, I will win!

Toy Projects

[Java] SEMI PROJECT

나디아 Nadia 2024. 3. 6. 15:25

 


📌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 문법들을 프로젝트에서 많이 써보지 못한 것
- 머리로만 이해하고 손으로는 치지 못하는 문법이 많았다는 것

 

 

배운 점

- 팀 프로젝트에서 기능 구현을 위한 기술, 협업 툴에 대한 이해보다 
더 중요한 것은 '소통'이다.

- 책으로 하는 공부가 아닌 직접 치는 공부가 필요하다!
문법을 머리로만 이해하는게 아니라 해당 문법을 어떤 상황에서 어떤 기능에 사용해야 하는지 생각하는 버릇을 들여야 한다.