Java 관통 프로젝트: 영상 관리 프로그램

Github

개발 기간 2023/08/04 (1일)

개발 인원 2명

이영현 이주원

프로젝트 개요

  1. 비디오 및 해당 비디오 리뷰 관리
  2. 회원가입 유저 목록 관리

프로젝트 목표

  1. MVC 패턴 기반 프로그램 구현
  2. 싱글톤 기반 데이터 관리 메서드 구현
  3. json 파일 데이터 자료 구조에 담기 및 관리

사용 기술

  • Java 8

구현 과정

  1. 우리는 Github 저장소를 만들고, 각자 브랜치에 푸시하고, 병합하며 작업을 진행했다. VSCode를 이용할 땐 충돌이 발생할 경우 화면에서 바로 해결할 수 있어서 편리했는데, java는 충돌 해결이 쉽지 않을 것 같아 각자 맡은 파일 외에는 수정하지 않기로 했다.

    속도가 빠른 편이라 각자 브랜치를 만들어 작업하기 잘한 것 같다.

  2. 먼저 주어진 명세를 보고 파일마다 어떤 기능을 요구하는지 파악했다. 가장 먼저 기능을 담당하는 클래스들부터 만들고, 이후 확인하는 방식으로 진행했다.
  3. 심화 기능까지 구현할 것을 고려해 user 관리 폴더와 해당 json 파일도 생성했다.
  4. 기능을 모두 구현한 후 main에서 UI를 구현했다. 웹 페이지가 아니다 보니 유저 입장에서 프로그램의 흐름이 어떻게 흘러가는지 생각하는 것이 어려웠다. 로그인 상태를 파악하고, 로그인되면 본 서비스로 넘어가는 로직으로 만들었다.
  5. 마지막에 확인하면서 보니 리뷰를 저장할 때 문제가 있었다. 리뷰를 동영상 아이디를 key로 하는 Map으로 만들었는데, json 에서 받아올 때는 문제가 없지만 쓸 때 새로운 리뷰를 담은 자료가 중복으로 들어가서 오류가 났다.

    1번 동영상에 1-1 댓글이 있었는데, 1-2 댓글을 추가하면 json에 1+1-1 , 1+1-1, 1-2 가 추가된 식. Review 인스턴스를 활용해서 데이터 관리를 하라는 거였다….

느낀 점

java 프로젝트 구조에 대해 조금 더 알 수 있었고, 개발 방법론에서 MVC의 개념을 알게 되었다! 역시나 콘솔에서 user 사용 흐름에 맞게 ui 로직을 구성하는 것은 어려웠다. 회원가입 -> 로그인 -> 영상 목록 -> 영상 선택…

json 파일을 쓰고 읽어오는 것이 어려웠지만 언젠가 해야 하는 마음의 숙제로 가지고 있었기 때문에 직접 해 볼 수 있는 기회였다.

더 해볼만한 것

영상 detail 화면에서 getUrl 메소드를 활용하여 링크에 해당하는 인터넷 창을 띄워 동영상을 보여주는 기능 추가

프로젝트 구조 및 기능 구현 화면

프로젝트 구조

로그인, 회원가입 기능

심화 - 로그아웃.PNG

심화 - 로그인 기능 구현.PNG

유저 관리

추가 - 회원 등록, 목록, 관리.PNG

영상 목록 조회

기본 - 영상 목록.PNG

리뷰 관리

기본 - 리뷰 관리.PNG