All'alba vincerò

At dawn, I will win!

회고

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

 

 

배운 점

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

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