Backend/JAVA

Java Console 미니 프로젝트 - 도서관리 앱 만들기

byzero 2024. 5. 7. 14:44

0. 개발 환경

- eclipse

- java 1.8

 

1. 폴더 구조

 

 

2. MVC 패턴

 

 

* Model

- 도서 데이터를 표현하기 위한 데이터 전송 객체 (DTO)

- 도서 데이터의 저장소와 비즈니스 로직을 담당함.

BookDto  :   개별 도서의 정보를 담고 있음

BookList  :  여러 개의 BookDto를 담는 컨테이너 역할

BookRepository   :   데이터베이스나 파일 시스템과 같은 저장소에서 데이터를 읽고 쓰는 기능을 제공함

BookService  :   도서와 관련된 비즈니스 로직을 처리

 

 

* View

BookView  :  사용자에게 보여지는 부분. 콘솔 출력과 사용자 입력을 처리함.

                     사용자에게 도서 목록을 보여주고, 입력을 받는 등의 역할 담당.

 

 

* Controller

BookController  :  사용자의 입력을 받아서 모델의 상태를 변경하고 뷰를 업데이트 하는 중간 역할.

                             사용자의 요청을 해석하고, 해당 요청에 대한 적절한 모델의 메소드를 호출하고

                             이에 따른 결과를 뷰에 반영

 

 

3. 파일

 

* BookDto.java

 

 

* BookList.java

 

 

* BookService.java

 

 

 

* LibraryApp.java

 

 

 

* BookRepoFile.java

 

 

 

* BookRepository.java

 

 

 

 

* BookView.java

 

 

 

* BookController.java

 

 

 

 

4. 콘솔 

 

메뉴 1: 도서목록 전체 출력

메뉴 2: 도서 등록

도서 들록 후 도서 목록 출력 시 등록된 도서가 아래에 함께 나옴

메뉴 3: 도서 정보 수정

도서 정보 수정 시 전체 도서목록이 출력되고, 그 아래에 수정할 도서 정보를 다시 입력할 수 있다.

도서 정보가 수정되면 y / n으로 저장할 수 있도록 하였다.

수정된 정보로 콘솔에 출력됨

 

메뉴 4: 도서 삭제

도서를 삭제한 후 다시 도서 목록을 출력했을 때 삭제된 도서가 목록에 나오지 않음

 

메뉴 5: 도서 검색

1을 선택 시 검색할 도서명을 입력하고, 2를 선택 시 검색할 저자명을 입력할 수 있음.

(단, 도서명과 저자를 검색할 때 전체 명을 틀리지 않고 입력해야 찾는 결과가 출력됨)

 

메뉴 6: 도서 목록 파일 저장

현재까지 콘솔에 등록하여 저장한 도서 목록을 txt파일로 저장함.

상단에 파일이 처음 저장된 날짜와 시간이 함께 입력됨.

 

 

 

 

 

 

+ 프로젝트에 대한 간단한 후기

자바로 만든 첫 미니 프로젝트로 콘솔을 이용한 도서관리 프로그램을 만들었는데, 기본적인 crud 기능을 구현하고 추가로 검색기능까지 넣었다. 처음 만들다 보니 파일 간 구조와 내용을 이해하는데에 시간이 걸려 기능을 조금 더 구현하고 싶었지만 기본 기능을 조금 더 깔끔하게 정리하고 싶어서 아쉽게 그러지 못했다.

유지보수하기 좋은 코드를 깔끔하게 정리해서 만들 수 있도록 더 많은 공부가 필요하다고 느꼈다.