2.   Dul.Data 프로젝트에 전체 솔루션에서 공통으로 사용할 제네릭 인터페이스인 IBreadShop.cs 파일을 만들고, 다음과 같이 코드를 작성합니다.

    //IBreadShop.cs 
    using System.Collections.Generic; 
    
    namespace Dul.Data 
    { 
        ///<summary> 
        ///제네릭 인터페이스: 공통 CRUD 코드 => BREAD SHOP 패턴 사용 
        ///</summary> 
        ///<typeparam name="T">모델 클래스</typeparam> 
        public interface IBreadShop<T> where T : class 
        { 
            ///<summary> 
            ///상세 
            ///</summary> 
            T Browse(int id); 
    
            ///<summary> 
            ///출력 
            ///</summary> List<T> Read(); 
    
            ///<summary> 
            ///수정 
            ///</summary> 
            bool Edit(T model); 
    
            ///<summary> 
            ///입력 
            ///</summary> 
            T Add(T model); 
    
            ///<summary> 
            ///삭제 
            ///</summary> 
            bool Delete(int id); 
    
            ///<summary> 
            ///검색 
            ///</summary> 
            List<T> Search(string query); 
    
            ///<summary> 
            ///건수 
            ///</summary> 
            int Has(); 
    
            ///<summary> 
            ///정렬 
            ///</summary> 
            IEnumerable<T> Ordering(OrderOption orderOption); 
    
            ///<summary> 
            ///페이징 
            ///</summary> 
            List<T> Paging(int pageNumber, int pageSize); 
        }
    }

    IBreadShop 제네릭 인터페이스는 앞에서 CRUD와 관련한 개체 이름 짓기 패턴 중에서 자주 사용되는 BREAD SHOP 단어를 미리 인터페이스로 정의해 놓은 형태입니다. 구조가 간단한 데이터를 다룰 때는 이 인터페이스를 상속한 후 기본 코드를 구현하고, 그다음 추가적인 로직을 구현해 가는 식으로 사용할 수 있습니다.

    Ordering() 메서드는 학습 목적으로 읽고 쓰기가 가능한 List<T> 대신에 읽기 전용인 IEnumerable<T>를 사용한 것입니다. List<T> 형태를 사용해도 무관합니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.