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
Jang99u opened this issue Oct 11, 2024 · 0 comments
Open

[Seminar1] 클래스간 역할의 분리 #4

Jang99u opened this issue Oct 11, 2024 · 0 comments

Comments

@Jang99u
Copy link
Collaborator

Jang99u commented Oct 11, 2024

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

각 클래스의 역할

  • Controller

    • 사용자 요청을 받아 적절한 서비스 호출.
    • 클라이언트와의 통신을 담당.
    • HTTP 요청을 받고, 응답을 반환하는 역할.
  • Service

    • 비즈니스 로직을 수행.
    • 여러 리포지토리 간의 데이터 연결과 데이터 가공 작업.
    • 데이터의 흐름이 관리되는 클래스.
  • Repository

    • 영속성 계층으로, 데이터베이스와 상호작용.
    • DB로부터 데이터를 저장, 조회, 수정, 삭제할 수 있는 클래스.

역할 분리의 장점

  • 단일 책임 원칙(SRP) 준수
    • 각 클래스는 하나의 책임만을 가져야 합니다. 즉, 클래스는 하나의 기능만을 수행하고, 다른 책임이 필요할 때는 그에 맞는 다른 클래스를 사용해야 합니다.
    • 유지보수성 증가 : 각 클래스가 명확한 역할을 가지므로, 특정 기능이 변경되었을 때 그 기능만을 수정하면 됩니다.
    • 재사용성 향상 : 같은 로직이 여러 경우에 필요한 경우, 이를 한 번만 구현하면 여러 곳에서 사용이 가능합니다.
    • 유연성 증가 : 각 클래스의 역할이 분리되어 있으므로, 특정 요구사항이 변경되더라도 다른 계층에 미치는 영향을 최소화할 수 있습니다.
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