Skip to content

Java ToyProject upload by YongHo Shin (신용호) #27

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 58 commits into from
Closed

Java ToyProject upload by YongHo Shin (신용호) #27

wants to merge 58 commits into from

Conversation

gdtknight
Copy link

@gdtknight gdtknight commented May 10, 2023

토이 프로젝트 제출합니다.

처음 구현 완료 했던 부분이 너무 마음에 들지 않아서 아예 싹 갈아엎고 다시 시작했더니 시간이 부족하네요 ㅠㅠ

@gdtknight gdtknight changed the title Yong ho shin Java Toy Project By YongHo Shin (신용호) May 10, 2023
@gdtknight gdtknight changed the title Java Toy Project By YongHo Shin (신용호) Java ToyProject upload by YongHo Shin (신용호) May 10, 2023
gdtknight added 15 commits May 11, 2023 00:07
…roupManager - 고객 유형별 기준 설정 메뉴 버그 수정

- 파라미터 값이 제대로 설정되지 않던 문제 해결
- 메뉴 선택 및 이후 과정이 요구사항과 일치하지 않던 부분 수정
- Customer, CustomerDTO, CustomerGroup, Parameter 주석 정리
- Parameter : 불필요한 기본 생성자 정리
- 애플리케이션 내 그룹 정보 전달
- 고객 그룹 정보를 저장하는 데이터베이스라는 취지에 맞게 불필요한 비즈니스 로직을 제거하고 저장, 조회 기능 구현에 충실하도록 리팩토링
- 고객 그룹 관리 서비스라는 취지에 맞게 비즈니스 로직을 구현
- 분류 기준이 업데이트 된 경우 고객 정보도 함께 업데이트
- 주석 추가
- save 메서드 수정. 기존에 저장된 고객 정보가 있는 경우 해당 정보를 업데이트 하도록 수정
- 등록된 정보가 없는 경우 예외를 던지도록 수정
- 주석 추가
- 싱글톤 생성 관련 오류 수정
- 출력 형식 수정
- 싱글톤 생성 관련 오류 수정
- 주석 추가
- 싱글톤 생성 관련 오류 수정
- 싱글톤 생성 관련 오류 수정
- 분류 기준 업데이트 후 새로 정렬되지 않던 오류 수정
@gdtknight gdtknight self-assigned this May 10, 2023
gdtknight added 6 commits May 11, 2023 05:23
- 불필요한 static 키워드 모두 제거
- 삭제시 발생하던 배열 인덱스 에러 수정
- 예외 제대로 던지지 않던 부분 수정
- 고객정보 삭제시 불필요한 중복 조회 생략하도록 수정.
@gdtknight gdtknight requested a review from 111coding May 11, 2023 03:56
- 그룹 타이틀 위에 공백 삽입하여 가독성 재고

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SmartStoreMessage도 그렇고, 용호님은 enum을 정말 잘 쓰시는 것 같습니다. 많이 배웁니다🤗

gdtknight added 10 commits May 11, 2023 18:58
- 둘이상의 고객 정보 등록시 발생하던 오류 수정
- 예제 프로그램과 동일한 동작을 위해 예외 처리 부분 수정
- 삭제 이후 불필요하게 남아있는 고객 정보 완벽하게 제거
- 요구사항 준수를 위해 고객 정보 삭제 후 결과 출력하도록 변경
- 엔티티 역할에 충실하도록 toString, groupTitle 등 출력 부분 DTO 로 이동. 이후 메인 비즈니스 로직에서 DTO 활용.
- 비즈니스 로직과 뷰를 분리. 출력은 뷰에서 이루어지도록 변경
- DTO를 이용하여 데이터를 전달하도록 변경
- 테스트 새로 작성하기 위해 기존 테스트 모두 삭제
- Customer : 불필요한 생성자 삭제, 생성자 id 부여 부분 수정.
- CustomerDTO : id에 이름이 입력되던 오류 수정.
- CustomerManager : 삭제시 배열 인덱스 오류 수정. 불필요한 코드 제거.
- CustomerGroupManager 테스트 코드 추가
- 테스트에 따라 CustomerType 보완
- 테스트에 따라 StoreErrorCode 보완
- CustomerType 에서 단축어 사용을 위해 불필요하게 중복 선언되어 있던 부분들을 제거
- CustomerType 에 선언된 값을 통해 CustomerGroupManager 초기화를 하도록 선언하여 새로운 유형 추가에 유연하게 대처가능하도록 변경
- 리팩토링 영향을 반영하여 StoreUtility, CustomerGroupManagerTest 적절하게 변경
- 고객 ID, 그룹 관련 에러코드 수정
@gdtknight
Copy link
Author

테스트코드를 짜려고 살펴보니 두가지 이상의 기능을 하고 있는 메서드들이 너무 많네요

gdtknight added 6 commits May 15, 2023 19:33
- DTO 로부터 Entity 객체 생성하는 메서드 추가
- 구분을 위한 메서드명 변경
- 포맷팅 적용
- 불필요한 예외 던지는 부분 모두 삭제.
- null 반환 시 CustomerGroupService 에서 예외 던지도록 수정.
- DTO 작성 취지에 맞게 DTO 를 통해 그룹 정보를 전달받도록 수정
- 전달받은 Parameter 로 DTO 업데이트
- Application 초기화시 모든 CustomerGroup 은 CustomerType 에 정의되어 있는 모든 고객 유형에 대해서 자동으로 생성
- CustomerMenu 에선 Service class 의 find()를 통해 CustomerGroup 을 DTO 형태로 전달받음
- 해당 DTO 를 통해 파라미터 설정, 업데이트 여부를 판단하고 파라미터를 입력받을지 말지 결정
- 입력받은 파라미터와 해당 DTO 를 다시 Service class 에 전달하여 저장을 요청함
- 이 때 CustomerGroup Entity 객체는 Service class 에서 반드시 생성됨.
- 애초에 Manager 에서 관리 중인 CustomerGroup 을 대상으로 모든 과정이 진행되므로 Null 체크가 불필요함
- 따라서 저장은 항상 정상적으로 이루어지므로 별도 예외 처리가 불필요함
- 테스트 작성
@gdtknight gdtknight closed this by deleting the head repository May 21, 2023
@gdtknight
Copy link
Author

fork 했던 리포를 실수로 삭제해버려서 PR이 자동으로 닫혔습니다
#42 로 다시 PR 생성하였습니다. 커밋 내역은 다 동일합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants