Service가 Interface를 꼭 구현하여야 하나요? (호환성 인증 관련 질문)
- 작성자 :
- 몽*이
- 작성일 :
- 2020-03-18 16:19:45
- 조회수 :
- 2,237
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
열심히 작성해서 등록했는데 등록이 안되었네요(분명 등록되었습니다 라고 메시지가 떴는데 목록에 없습니다??)
다시 작성합니다 ㅠ
현재 전자정부 프레임워크 호환 프레임워크를 자체적으로 개발하고 있습니다.
관련하여 표준을 잡는 과정에서 궁금한점 문의 드립니다.
전자정부 표준프레임워크 호환성 가이드 (https://www.egovframe.go.kr/EgovCompatibility.jsp?menu=6&submenu=1)를 보면, Service 클래스들은 특정 인터페이스를 구현하여야 한다고 되어있습니다. 이에 대해 "클래스간 결합도를 낮추기 위하여" 라고 되어있습니다.
하지만, 이 부분의 제약이 다음의 이유로 과한것 같아 문의드립니다.
1. AOP 처리는 인터페이스 없이도 됩니다. cglib 를 사용하고 aop 설정에 proxy-target-class 옵션을 주면, 인터페이스가 없어도 AOP 처리에 문제 없습니다.
2. 대부분의 Business Logic 구현시 "클래스간 결합도를 낮춰야 할" 상황은 실질적으로 많지가 않습니다.
물론, 특정한 경우 인터페이스가 필요한 경우는 분명히 있습니다만, 이 경우에 해당할 때만 본래의 목적에 맞게 인터페이스를 사용하면 되는 것이지, "무조건 모든 경우에 대해" 인터페이스를 두라는 것은 유연성이 떨어지는 제약이라 생각합니다.
이로 인해 정말 아무런 의미도 없는 인터페이스:구현체를 1:1로 수도 없이 만드는 경우를 많이 봤고, 제가 본 모 청의 특정 시스템은 클래스 수만 무려 4만7천여개가 넘는 경우도 봤습니다 (전 이게 정상적인 아키텍쳐라 생각하지 않습니다)
제가 이전에 개발했던 다른 여러 Spring 기반 프로젝트에서 인터페이스 없이 업무로직을 구현하고도 아무런 문제 없이 시스템 구축하였었고 추후 유지보수에서도 이와 관련해서는 전혀 문제가 없었습니다.(솔직히 대부분의 업무 시스템이 구현 후 클래스간 결합 구조를 바꿀 일이 거의 없습니다)
과연 이 제약이 필요한 것인지, 호환성 인증을 받기 위해 반드시 따라야 하는 제약인지 의문이 듭니다.
다시 작성합니다 ㅠ
현재 전자정부 프레임워크 호환 프레임워크를 자체적으로 개발하고 있습니다.
관련하여 표준을 잡는 과정에서 궁금한점 문의 드립니다.
전자정부 표준프레임워크 호환성 가이드 (https://www.egovframe.go.kr/EgovCompatibility.jsp?menu=6&submenu=1)를 보면, Service 클래스들은 특정 인터페이스를 구현하여야 한다고 되어있습니다. 이에 대해 "클래스간 결합도를 낮추기 위하여" 라고 되어있습니다.
하지만, 이 부분의 제약이 다음의 이유로 과한것 같아 문의드립니다.
1. AOP 처리는 인터페이스 없이도 됩니다. cglib 를 사용하고 aop 설정에 proxy-target-class 옵션을 주면, 인터페이스가 없어도 AOP 처리에 문제 없습니다.
2. 대부분의 Business Logic 구현시 "클래스간 결합도를 낮춰야 할" 상황은 실질적으로 많지가 않습니다.
물론, 특정한 경우 인터페이스가 필요한 경우는 분명히 있습니다만, 이 경우에 해당할 때만 본래의 목적에 맞게 인터페이스를 사용하면 되는 것이지, "무조건 모든 경우에 대해" 인터페이스를 두라는 것은 유연성이 떨어지는 제약이라 생각합니다.
이로 인해 정말 아무런 의미도 없는 인터페이스:구현체를 1:1로 수도 없이 만드는 경우를 많이 봤고, 제가 본 모 청의 특정 시스템은 클래스 수만 무려 4만7천여개가 넘는 경우도 봤습니다 (전 이게 정상적인 아키텍쳐라 생각하지 않습니다)
제가 이전에 개발했던 다른 여러 Spring 기반 프로젝트에서 인터페이스 없이 업무로직을 구현하고도 아무런 문제 없이 시스템 구축하였었고 추후 유지보수에서도 이와 관련해서는 전혀 문제가 없었습니다.(솔직히 대부분의 업무 시스템이 구현 후 클래스간 결합 구조를 바꿀 일이 거의 없습니다)
과연 이 제약이 필요한 것인지, 호환성 인증을 받기 위해 반드시 따라야 하는 제약인지 의문이 듭니다.
A
안녕하세요.
표준프레임워크센터 입니다.
표준프레임워크 관련하여 지원하는 서비스는
적용점검과 호환성 확인 서비스가 있습니다.
적용점검의 경우 다음 페이지에서 안내가 되고 있습니다.
https://www.egovframe.go.kr/EgovTechSupport.jsp?menu=5
적용점검시 서비스에서 인터페이스를 만드는것에 대해 안내하고 있으나
이는 필수 또는 강제사항은 아닙니다.
따라서 실제 적용점검 확인시에
이로인한 제약사항을 두고 있지 않습니다.
호환성확인 서비스도 적용점검을 기반을 하고 있고
이 부분의 구현이 호환성 서비스를 받는데 문제가 되지 않을듯 합니다.
현재 호환성 서비스는 오픈커뮤니티로 이관되어 처리되고 있으니
참고 바랍니다.
https://open.egovframe.org/
감사합니다.
표준프레임워크센터 입니다.
표준프레임워크 관련하여 지원하는 서비스는
적용점검과 호환성 확인 서비스가 있습니다.
적용점검의 경우 다음 페이지에서 안내가 되고 있습니다.
https://www.egovframe.go.kr/EgovTechSupport.jsp?menu=5
적용점검시 서비스에서 인터페이스를 만드는것에 대해 안내하고 있으나
이는 필수 또는 강제사항은 아닙니다.
따라서 실제 적용점검 확인시에
이로인한 제약사항을 두고 있지 않습니다.
호환성확인 서비스도 적용점검을 기반을 하고 있고
이 부분의 구현이 호환성 서비스를 받는데 문제가 되지 않을듯 합니다.
현재 호환성 서비스는 오픈커뮤니티로 이관되어 처리되고 있으니
참고 바랍니다.
https://open.egovframe.org/
감사합니다.