🔹 1. ~ Handler (핸들러)
- 특정 이벤트나 요청을 처리하는 역할.
- 주로 이벤트 기반 시스템이나 메시지 큐, HTTP 요청 등의 처리기에 사용됨.
✅ 예시
- RequestHandler → HTTP 요청을 받아서 적절한 서비스로 넘김.
- EventHandler → 특정 이벤트 발생 시 실행되는 로직을 담당.
- ErrorHandler → 예외 처리 담당.
🔹 2. ~ Service (서비스)
- 비즈니스 로직을 담당하는 계층
- 데이터베이스 접근 없이, 순수한 애플리케이션 로직을 수행.
- 보통 여러 개의 Repository 또는 DAO를 조합해서 비즈니스 기능을 구현함.
- 비즈니스 로직이란?
- 사용자의 요구사항을 처리하는 코드
- 이 프로그램이 실제로 해야하는 핵심 기능을 담당
ex)
비즈니스 로직 O : 게임에서 플레이어가 경험치를 얻으면 레벨이 올라가야함, pvp에서 이기면 랭킹이 변해야함
비즈니스 로직 X : 데이터를 DB에 저장하기, 로그를 남기기
✅ 예시
- UserService → 사용자 정보 생성, 수정, 삭제 등의 로직을 처리.
- PaymentService → 결제 관련 로직을 수행.
- NotificationService → 알림을 보내는 기능을 담당.
🔹 3. ~ Helper (헬퍼)
- 독립적인 기능을 수행하는 유틸리티 클래스.
- 보통 static 메서드를 가지고 있으며, 특정 작업을 도와줌.
- 상태를 가지지 않으며, 가벼운 도우미 역할.
✅ 예시
- DateHelper → 날짜 관련 유틸리티 함수 제공 (FormatDate, GetTimeAgo).
- FileHelper → 파일 입출력 관련 기능 (ReadFile, WriteFile).
- EncryptionHelper → 암호화 및 해시 관련 유틸리티.
🔹 4. ~ Manager (매니저)
- 여러 개의 리소스를 관리하는 역할.
- Service보다 더 낮은 레벨에서 여러 개의 Helper, Handler 등을 조합해서 기능을 제공할 때 사용됨.
- 주로 상태를 유지하면서 관리하는 기능을 수행.
✅ 예시
- ConnectionManager → DB 또는 네트워크 연결을 관리.
- CacheManager → 캐시를 저장, 갱신, 삭제하는 역할.
- TaskManager → 백그라운드 작업을 관리.
🔹 5. ~ Processor (프로세서)
- 특정 입력 데이터를 받아 가공 및 변환하는 역할.
- 보통 연산을 수행하거나 데이터를 조작하는 기능을 담당.
- 상태를 가지지 않으며, 입력을 받아서 결과를 반환하는 구조.
✅ 예시
- ImageProcessor → 이미지를 리사이징, 필터 적용 등의 가공 처리.
- DataProcessor → 데이터 정리 및 변환 작업 수행.
- PaymentProcessor → 결제 요청을 처리하고 API 연동.
🔹 6. ~ Provider (프로바이더)
- 특정 데이터를 DB, 캐시, 외부 API등에서 가져와 제공하는 역할
- 데이터를 직접 가공(변환)하기보다는 제공하는데 초점
- 상태를 가질 수도 있고, 안 가질 수도 있음 (DB 커넥션, 캐시 연결등 필요에 따라 다름)
- 비즈니스로직을 수행하지 않고, 단순히 데이터를 가져오는 역할
예시
- UserDataProvider: 사용자 정보를 DB나 캐시에서 가져와 제공
- ConfigurationProvider: 설정 값을 파일이나 환경 변수에서 로드하여 제공
📌 네이밍 패턴별 역할 정리
Handler 특정 요청(이벤트, HTTP 요청, 메시지 등)을 처리 LoginHandler, EventHandler Service 비즈니스 로직을 수행하며, 여러 기능을 조합해서 처리 OrderService, PaymentService Helper 주로 정적인(Static) 유틸리티 기능 제공 (ex. 문자열 변환, 날짜 계산 등) StringHelper Manager 여러 개의 리소스를 관리하는 역할 (ex. 연결 관리, 풀링, 설정 관리 등) ConnectionManager, PoolManager Processor 데이터를 가공 및 변환 (ex. JSON 변환, 이미지 처리, 스트림 처리 등) ImageProcessor, DataProcessor Provider DB, Redis, 인메모리 캐시 등에서 데이터를 제공하는 역할 UserDataProvider
반응형
'프로그래밍 > C#' 카테고리의 다른 글
가중치에 따른 랜덤 값 뽑기 (2) | 2024.11.15 |
---|---|
Incremental Source Generator (0) | 2024.08.07 |
MemoryPack 라이브러리 (0) | 2024.08.07 |
[C#] Global Using (0) | 2024.08.05 |
오버헤드 (0) | 2024.07.31 |
댓글