[Java] SEMI PROJECT

Nadia·2024년 2월 5일
0

Toy Projects

목록 보기
2/11
post-thumbnail

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

❗ 배운 점

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

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




참고
https://bcp0109.tistory.com/319

profile
비전공자 개발 일기

0개의 댓글

관련 채용 정보