Skip to content
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

[1주차] 기본/심화과제 #8

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

[1주차] 기본/심화과제 #8

wants to merge 1 commit into from

Conversation

Jin409
Copy link
Member

@Jin409 Jin409 commented Apr 14, 2023

📝 관련 이슈

closed #4
closed #5

👩🏻‍💻 내용

  • 은행 관련 기능을 구현했습니다.
  1. 사용자 가입
  2. 계좌 개설 (랜덤으로 계좌번호가 생성되도록)
  3. 입출금 (저축/입출금 통장 종류에 따라서 다른 로직 적용)

😸 중점을 둔 부분

  • 최대한 하나의 클래스가 하나의 역할만 할 수 있도록 했습니다.
    • 이에 따라 클래스 분리를 많이 해봤습니당..
  • 최대한 반복적으로 사용되는 변수들을 static final 상수로 하고자 했습니다.

😹 해결하지 못한 부분

  • AcountController에서 계좌의 타입에 따라서 다른 서비스의 메서드를 호출해야 하는데, 지금 방식이 너무 이상한 것 같아서 고민입니당..

    • 이상하다고 생각하는 이유 : 구현체를 AcountController 에서 주입받고 있음
      • 구현체를 주입받으면 인터페이스의 존재가치가 사라지는 것이 아닌가..?
      • 구현체를 주입받으면 의존관계가 너무 강해지지않는가..
  • 하위디렉토리라서 그런지 .gitginore 가 적용이 안돼서 전부 다 올라간 것 같은데 이런 문제는 어떻게 해결해야 하나요..? ㅠ-ㅠ

해결하지 못한 부분 중심으로 코멘트 주시면 감사하겠습니당


public class ChequingAccountService implements AccountService {

private final AccountRepository accountRepository = new AccountRepository();

Choose a reason for hiding this comment

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

이 부분은 저번 스프링 스터디에서 들었던 강의대로 AppConfig라는 설정 파일을 만들고 생성자 주입으로 외부에서 AccountRepository 구현체를 넘겨주는 방식으로 구현해도 괜찮을 것 같습니다

물론 해당 과제를 받았던 1차 세미나 당시에는 아직 안배웠던 내용이긴 합니다!

Copy link
Member Author

Choose a reason for hiding this comment

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

넵! 수정해서 다시 리뷰 요청 할게요!

view.printCommandMessage(MEMBER_REGISTER_SIGN);

UserRegisterDto userRegisterDto = view.getUserRegisterInfo();
userController.register(userRegisterDto);

Choose a reason for hiding this comment

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

AutoController가 userController나 accountController를 호출하도록 구현한 이유가 따로 있으신가요?? 저라면 AutoController가 다른 conntroller를 의존하지 않고 userService.register()나 ChequingAccountService.deposit() 메소드를 AutoController에서 바로 호출하도록 구현했을 것 같긴 합니다

Copy link
Member Author

Choose a reason for hiding this comment

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

뭔가 단순히... 서비스 레이어마다 컨트롤러가 있어야 하지 않을까.. 하는 생각이었던 것 같아요! 그리고 지금 클라이언트의 입력을 처리해서 적절한 핸들러로 매핑해주는..? 서블릿이 없으니까 중간에 컨트롤러가 더 있으면 어떨까.. 했던 것 같긴 한뎅.. 크게 깊게 고민해본 부분은 아니었던 것 같네요!! 만약 제 생각에 조금이라도 어색한 부분이 있으면 알려주세요!

@euije
Copy link

euije commented Apr 20, 2023

멋진 은행 프로그램 잘봤습니다! 고생하셨습니다!

@onpyeong
Copy link

enum을 사용해서 전체적으로 코드 가독성이 너무 좋아요! 저도 다음부터는 따라 해보겠습니다~! 고생하셨습니다

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

Successfully merging this pull request may close these issues.

[1주차] 심화 과제 [1주차] 기본 과제
4 participants