1. AOP 기능을 적극 활용할것

2. 모나드 체인을 적극 활용할것

3. 대수적 타입으로 모든 타입을 명확히 제시할것. (객체지향의 제네릭 배제)



대충 이 결과물로


AOP는 그대로 활용하면서

AOP의 구현을 상속 방식으로 한 댓가, 그거를 상쇄시킴으로서


null safety를 얻고

형변환 불완전성을 해소하고

커리잉과 모나드 연산을 통한 논리적인 간결성

그리고 부작용에대한 완전한 명시



이정도를 얻을 수 있음.



그래... 그냥 스프링 쓰는게 낫긴 함