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주차 과제] 클래스간 역할 #6

Open
2 tasks done
choyeongju opened this issue Oct 10, 2024 · 0 comments
Open
2 tasks done

[1주차 과제] 클래스간 역할 #6

choyeongju opened this issue Oct 10, 2024 · 0 comments
Assignees

Comments

@choyeongju
Copy link
Member

choyeongju commented Oct 10, 2024

⭐ TODO

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

✅ 클래스 다이어그램

DB
|
Repository
|
Service
|
Controller
|
Main

✅ 가이드 코드 클래스간 역할

DiaryController

  • 클라이언트의 요청을 받아서 서비스 계층에 전달한다.
  • 결과를 응답한다.
  • 클라이언트 ↔ 애플리케이션 인터페이스 역할

DiaryService

  • 비즈니스 로직을 처리한다.
  • 유효성을 검증한다.

DiaryRepository

  • 실제 데이터베이스와 상호작용한다. (서비스 단에서 DB에 직접 접근하는 것을 막는다 → 캡슐화)
  • 데이터 저장, 수정, 삭제, 조회 기능
  • 순수하게 데이터 처리 담당!

✅ 역할을 분리하는 이유?

단일 책임 원칙(SRP)

  • 정의 : 한 클래스는 하나의 책임만 가져야 한다 & 클래스가 변경되는 이유는 단 하나여야 한다.
  • 클래스가 변경되는 이유가 분명하게 한 가지로 제한할 수 있다.
    (변경이 일어났을 때, 파급 효과가 적으면 좋다!)
  • 변경이 필요할 때, 어떤 클래스를 수정해야 하는지 명확하게 알 수 있다.
    (즉, 유지보수가 용이하다.)
  • 재사용 용이
@choyeongju choyeongju self-assigned this Oct 10, 2024
@choyeongju choyeongju changed the title [1주차 과제] 서술 [1주차 과제] 클래스간 역할 Oct 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant