클래스를 어떻게 분리할 것인가?
일반적으로 객체 지향 프로그래밍 중 클래스에 코드를 구현하다 보면 어? 코드가 너무 많은데? 하는 순간이 찾아옵니다.
보통은 별개의 클래스로 나누어 작업을 진행합니다. 하지만 partial class를 사용하면 하나의 클래스를 여러 파일로 나누어 작업을 진행할 수 있습니다.
작업을 별도의 클래스로 분리하는 경우:
별도의 클래스로 분리하는 경우 단일 책임 원칙 (Single Responsibility Principle)을 지킬 수 있다는 장점이 있습니다.
클래스는 하나의 책임만 가져야 한다는 원칙에 따라, 작업을 별도의 클래스로 분리하면 각 클래스는 더 작은 하나의 책임만 지도록 할 수 있습니다..
또한 모듈화를 통한 재사용성 향상을 기대할 수 있습니다.
작업을 별도의 클래스로 분리하면 해당 작업을 다른 부분에서 재사용하기 용이합니다.
이로 인해 테스트 용이성이 향상됩니다.
분리된 클래스는 독립적으로 테스트하기 쉽기 때문에 단위 테스트가 용이합니다.
하지만 클래스 수 증가로 인한 복잡도 증가가 발생할 수 있습니다.
여러 작업을 별도의 클래스로 나누면 클래스 수가 증가하게 됩니다. 클래스가 많아지면 전체적인 코드의 이해와 유지보수가 어려워질 수 있습니다.
partial 클래스로 나누어 구현하는 경우:
partial 클래스를 사용하면 단일 클래스 내에서 논리적 구분이 가능해집니다.
partial 클래스를 사용하면 논리적으로 관련된 코드를 동일한 클래스 내에서 나누어 구현할 수 있습니다. 이로써 클래스의 응집성(cohesion)을 높일 수 있다는 장점을 갖게 됩니다.
또한 모듈화 시켜 코드를 작성함과 동시에 컴파일 시 통합되기 때문에 코드의 가독성을 높일 수 있습니다.
partial 클래스를 컴파일 시에 하나의 클래스로 통합되기 때문에 코드를 나누어 작성하더라도 최종적으로는 하나의 클래스로 구현됩니다. 따라서 코드의 가독성을 높일 수 있습니다.
결론
만약 프로젝트에 대한 미리 정의된 코딩 가이드가 있다면 그것을 따르는 것이 좋습니다.
일반적으로는 단일 책임 원칙을 준수하고 모듈화와 재사용성을 높일 수 있는 방향으로 작업을 분리하는 것이 좋습니다.
하지만 프로젝트의 구조나 특정한 상황에 따라서는 partial 클래스를 사용하여 클래스의 일부를 나누는 것이 효과적일 수 있습니다.
가장 좋은 방법은 둘 다 사용해 본 뒤 자신의 상황에 적절한 방식을 선택하는 것입니다.
'Programming' 카테고리의 다른 글
Postgresql DB와 함께 Keycloak 사용하기. (0) | 2024.03.28 |
---|---|
[C++, C#] Lib과 DLL: 왜 lib은 C#에서 사용할 수 없을까? (0) | 2024.03.13 |
[Docker] Alpine을 사용하는 이유 (0) | 2023.11.23 |
[RabbitMQ] Docker에 RabbitMQ 실행하기 (0) | 2023.08.29 |
[RabbitMQ] VirtualHost란? (0) | 2023.03.07 |