Activity Based Programming

회사동료인 ica씨와 이야기하다 3년 전에 만들어둔 개념이 문득문득 불끈불끈 솟아올라서 정리해보기.

Entity
Flow를 타고 흐르는 시작에서 끝까지의 Instance를 의미.
단위 트랜잭션으로 볼 수도 있고, 단위 컨텍스트로 볼 수도 있다. 기본적으로는 인풋이 발생할때마다 하나씩 생성된다.
공장으로 치면 컨베이어 벨트위에 있는 가공중인 제품이다.

Activity
Entity를 받아서 가공하고 넘겨주는 최소로직의 단위.
공장으로 치면 각각의 작업자.

Resource
Activity에서 사용하는 시스템 자원들.
역시나 공장으로 치면 작업자들이 쓰는 공구.

Flow
Entity가 어떤 Activity를 거쳐서 지나가는지에 관한 정의.
공장으로 치면 컨베이어 벨트다.

사실 이런 개념을 만드는데 영향을 준 Business Process나 Manufacturing Process에서는 모든걸 Resource로 보는 경향이 있긴 하지만, 이건 생각하기 나름인거 같다.

이런 방식은 보통 프로그래밍을 할때 생각하는 방식을 좀 벗어난 것으로, 실제로 적용된다면 프로그램의 수정/유지보수가 상당히
간단해질 듯 하다. 사실 OOP라는게 너무 광범위 하고 사람별로 멋대로 짤 수 있는 상황인 반면에 OOP를 이용해 ABP를
적용하면 틀(?)이 좀 더 쉽게 잡히지 않나 싶다.

내가 생각해낸게 그렇지만, 누군가 미리 해놓은걸꺼다. 🙁
오랜만에 Research나 해볼까? ㅋㅋ

최근 즐겨쓰기 시작한 C++ Template등을 이용해 만들면 이쁘지 않을까.. 라는 생각이 들어버렸다.

글쓴이: crowmania

Chief Developer in Somansa Guitar/Vocal in Tonics Member of Justice Party

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다