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

[seminar1] 서술과제 #4

Open
gahyuun opened this issue Oct 11, 2024 · 0 comments
Open

[seminar1] 서술과제 #4

gahyuun opened this issue Oct 11, 2024 · 0 comments
Assignees

Comments

@gahyuun
Copy link
Member

gahyuun commented Oct 11, 2024

가이드 코드 클래스간 역할에 대해 설명하고, 이렇게 역할을 분리해서 얻은 장점과 분리하는 이유에 대해 고민해보고 서술해주세요. (필수)

  • Main
    • 사용자에게 시각적인 UI를 보여주고 입출력을 담당한다.
  • DiaryController
    • 사용자의 요청을 받아 Service에 처리를 위임한다.
    • 사용자의 입력 값에 대해 유효성을 검증한다.
  • DiaryService
    • 비즈니스 로직을 정의한다.
    • 도메인 객체와 협력하여 사용자의 요청을 수행한다.
  • DiaryRepository
    • 저장소 역할을 한다.
    • 비즈니스 로직을 수행할 때 필요한 데이터를 생성, 수정, 조회 등을 처리한다.
  • Diary
    • 일기라는 도메인 객체이다.
    • 이때 도메인은 핵심 비즈니스 요구사항을 의미하는 단어이기 때문에 일기가 도메인 객체이다.
    • Diary는 일기에 대한 데이터를 가지고 있고 다른 클래스에서 사용이 된다.

역할을 분리했을 때 장점

  • 유지보수성을 높인다.
    • 각각의 역할이 분리되어있으니, 수정을 할때 필요한 곳만 확인하면 되므로 유지보수에 유리하다.
    • 예를 들어서 요구사항 변경으로 인해 입력 값 유효성 검증 로직이 수정이 필요하면, Controller 클래스만 확인하고 해당 부분만 작업하면 된다. 만약 역할 분리가 안되어있다면 흐름을 따라 유효성 로직이 존재하는 클래스를 모두 찾아야 한다.
    • 즉 관련된 요소만 업데이트하고 전체 어플리케이션 구조를 변경할 필요가 없기 때문에 지속적인 소프트웨어를 구현하기 적합하다.
@gahyuun gahyuun self-assigned this Oct 11, 2024
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

No branches or pull requests

1 participant