본문 바로가기
프로그래밍/C#

[C#] Helper, Provider, Service, Manager 네이밍 관련 정리

by 뽀도 2024. 6. 25.

💡 개요 

- 프로그래밍 하다보면 이름 짓는게 여간 어려운게 아님.

- 이름을 잘 지어야 기능별 분리도 잘되고 나중에 유지보수 하기도 쉬움

- 가독성도 높아짐 

 

그래서 정리함

 


1. Helper 

사용 시점 :

  • Utility 기능: 주로 작은 단위의 유틸리티 함수들을 모아놓은 클래스.
  • 독립적 기능: 다른 클래스와 독립적으로 동작하며 특정 기능을 보조.

특징 :

  • Stateless: 상태를 가지지 않으며 메서드가 독립적으로 동작.
  • Static Methods: 보통 정적 메서드로 구성되어 객체 인스턴스 생성 없이 사용 가능.

예제 :

public static class TimeHelper
{
	public static string ToString(DateTime dateTime)
  	{
		return dateTime.ToString("yyyy-MM-dd HH:mm:ss");
  	}
}

 

2. Provider  

사용 시점:

  • 데이터 제공: 데이터를 제공하거나 특정 리소스에 접근할 때 사용.
  • 외부 서비스 연동: 외부 API나 데이터베이스와의 연동을 담당.

특징:

  • 인터페이스 구현: 보통 특정 인터페이스를 구현하여 의존성 주입과 함께 사용.
  • 데이터 접근: 데이터 접근 레이어에서 많이 사용.

예시:

public interface ITokenProvider
{
    string GenerateToken(string userId);
}

public class JwtTokenProvider : ITokenProvider
{
    public string GenerateToken(string userId)
    {
        // JWT 토큰 생성 로직
    }
}

 

3. Service

사용 시점:

  • 비즈니스 로직: 비즈니스 로직을 처리하는 클래스를 만들 때.
  • 트랜잭션 관리: 여러 리포지토리 간의 트랜잭션을 관리할 때.

특징:

  • 상태 관리 가능: 필요에 따라 상태를 가질 수 있음.
  • 비즈니스 규칙: 애플리케이션의 비즈니스 규칙을 구현.

예시:

public class OrderService
{
    private readonly IOrderRepository _orderRepository;

    public OrderService(IOrderRepository orderRepository)
    {
        _orderRepository = orderRepository;
    }

    public void CreateOrder(Order order)
    {
        // 주문 생성 비즈니스 로직
        _orderRepository.Add(order);
    }
}

 

4. Manager

사용 시점:

  • 자원 관리: 특정 자원의 생명주기를 관리할 때.
  • 복잡한 작업 관리: 복잡한 작업이나 여러 단계를 거치는 프로세스를 관리할 때.

특징:

  • 상태 관리: 보통 상태를 가지며 자원의 상태를 관리.
  • 자원 관리: 객체 풀링, 연결 관리 등의 기능을 수행.

예시:

 

public class ConnectionManager
{
    private readonly List<Connection> _connections;

    public ConnectionManager()
    {
        _connections = new List<Connection>();
    }

    public void AddConnection(Connection connection)
    {
        _connections.Add(connection);
    }

    public void RemoveConnection(Connection connection)
    {
        _connections.Remove(connection);
    }
}

 

📖 요약

  • Helper: 독립적인 유틸리티 기능을 제공, 주로 정적 메서드로 구성.
  • Provider: 데이터를 제공하거나 외부 서비스와의 연동을 담당.
  • Service: 비즈니스 로직을 처리, 상태를 가질 수 있음.
  • Manager: 특정 자원의 생명주기를 관리하거나 복잡한 작업을 관리.
반응형

댓글