wisePocket

[Portfolio] 프로젝트 Resident management system CLI 서비스 복기 본문

(old)Java Backend study/Java Projects

[Portfolio] 프로젝트 Resident management system CLI 서비스 복기

ohnyong 2023. 7. 1. 20:55

CLI로 간단한 프로그램을 만들어봤었다.

 

PT양식은 [웹/앱 설계의 기본] 화면설계서 기획 양식의 구성을 최대한 맞추려고 노력했고 처음 하는 것이라 배운 내용들을 최대한 활용하면서도 내가 가장 생각하기 쉬운 객체인 건축물과 관련 된 것으로 생각해보았다. CLI로 프로그램을 만들어보니 리모컨이나 각종 장비에 들어가는것들도 프로그래밍 된 것들이 보이기 시작한다. 그리고 어떤 로직을 가지고 있는지 관심있게 보기 시작했다. 

 

오히려 발표자료를 만드는데 시간이 오래걸렸다. 아직 이런 양식들을 사용하는지 모르겠는데 일단 우선 친숙한 앱기획 양식을 사용했다. CLI라 화면 설계서를 별도로 구성 하기 어려웠지만 메뉴가 변경 되는 것을 화면이 전환된다고 생각하고 메뉴에 대한 실행 과정들(비지니스 로직)을 마치 설명서처럼 작성했다.

 

진도가 내가 이해하는 속도보다 좀 빠른느낌이있다. 아직 시작 단계인데 걱정이다. 벌써 어디서 코딩을 배워온분들도 있고 뒤처지는 편은 아닌것 같은데 뭔가 내가 이해해야 외우는 스타일이라 그런지 속도가 나지 않는다. Java는 뭔가 나랑 성격이 잘맞는 언어같은 좋은느낌이 든다. 잘하고싶다.

 

프로젝트의 기능과 구조는 간단하지만

아래와 같은 목표로 개발하게 되었다.

  • 자바 프로그래밍 언어의 특징과 라이브러리를 활용하여 기본 응용 소프트웨어를 구현
  • 애플리케이션을 최적화하기 위한 프로그래밍 언어의 특성을 활용

현실성을 더하기 위해 스토리라인과 함께 기획 부분을 설계했다.

 

 

 

아파트 관리사무소에서 입주민을 관리 및 세금 정리 프로그램의 제작을 의뢰해 왔다. 다음 요구 사항에 따라 프로그램을 제작하시오

의뢰측 요구 사항
 - 입주민 기본 정보들을 입력하고 관리 할 수 있게 해주세요. (이름, 동, 호, 연락처, 차량 번호 등록 등)
 - 검침원이 각 세대의 전기, 가스 사용량을 조사합니다. 조사된 값을 입력하고 세대별 고지서를 출력 할 수 있게 해주세요. 각 세금의 계산식은 다음을 참고합니다.
 - 세금 고지서는 세대별로 별도 작성되어야 하고 세부 산출 근거, 합계 금액이 안내해야 합니다.
 - 경비인력이 순찰 후 조사해온 차량 번호를 조회하여 긴급 연락을 조치하거나 일부 미등록된 외부 차량을 확인하여 관리 할 수 있도록 해주세요.




세금 관련 정보 정리
input
검침원이 수기로 조사한 전기, 가스의 사용량 = 직접 입력

  calculate
  전기, 가스의 기본가 범위, 변수 확인 = 지침에 따라 추후 변경
  전기, 가스의 단가 범위, 변수 확인 = 지침에 따라 추후 변경
  사용량, 단가 등 적용 각 세금 연산

  output
  해당 세대의 조사값, 적용단가 등 포함 계산식 출력
  연산 후 총 지불해야 할 금액 출력

각 메뉴의 기능은 다음과 같다.

1. 입주민 정보 등록 : 기본 정보 (세대주 이름, 동수, 호수, 연락처, 차량 번호) 입력 -> 배열 저장 

2. 입주민 정보 수정 ; 세대주 이름으로 검색 후 해당 입주 세대의 기본 정보만 재입력, 수정 -> 배열에 덮어 쓰기

3. 등록된 입주민 목록 보기 : 등록 된 모든 입주민의 기본 정보 리스트 화면 출력

4. 차량 번호로 입주민 확인 : 차량 번호를 검색하여
등록된 차량인 경우, 해당 입주민의 기본 정보 확인(긴급 연락처 확인용)
등록된 차량이 아닌 경우, 프로그램 이용자가 해당 차량이 입주민 등록 차량이 아님을 알림

5. 입주민 자원 사용량 입력 : 검침원의 조사 내용 (동, 호수, 전기사용량, 가스사용량)을 입력

6. 세금 고지서 출력 : 자원 사용량이 입력된 세대의 경우 세대의 세금 고지서 출력, 

7. 종료 : 프로그램을 종료한다.

 



AppVariables Class에서 각종 input, output 될 변수들(이름, 호수, 세금 관련 등등)을 모아 관리.



<조건>
0. 시작화면으로 메인 메뉴를 보여준다.
 
1. 입주민 등록 기능을 구현한다. AppVariables 객체를 포함시켜 처리한다.

2. 입주민 각 데이터는 자바빈(AppVariables) 객체로 처리한다.

3. 수정 기능은 기본 정보만 수정 가능하게 처리한다.(추후 변경 가능)

4. 저장되어 있는 입주민 중 검색이 필요로 하면 특정 내용 출력 처리한다.

5. 프로그램은 종료 입력하기 전까지 종료되면 안 된다.

6. 화면 메뉴는 아래와 같은 구조로, MainClass의 main 메소드에서 동작하게 만든다.

1. 등록

2. 출력

3. 수정

4. 검색

5. 종료

* 별첨

- 클래스 별로 소스를 추가한다.

<<소스코드>>

public interface AppFeatures { //주요 기능 메소드 리스트 역할

//입력

public void saveWorker(); //직원 한명의 값 전달 메소드

 

//연산

public void modify(); //특정 직원의 직급,기본급,수당 수정 메소드

public void search(); //이름 값 으로 해당 값을 가진 직원 찾기 & 해당 값 출력 메소드

//출력

public void outputTitle(); //출력되는 정보들의 타이틀 출력 메소드

public void output(); //모든 직원의 정보 출력 메소드

}

 

 

 

https://github.com/yzpocket/JavaProject

 

GitHub - yzpocket/JavaProject

Contribute to yzpocket/JavaProject development by creating an account on GitHub.

github.com