다른 말로 반응형 프로그래밍 이라고도 한다
따로 정의하는 경우도 있는데 그냥 이벤트 기반 프로그래밍이 반응형 프로그래밍에 속하는 개념임
이걸 라이브러리로 제공해주는 언어도 있고, 그냥 만들어 쓰는 것도 포함해 리액티브 프로그래밍이라고 함
일반적으로는 그냥 객체 지향 설계에서 옵저버 패턴 남발하는 코드라고 알아두면 됨
옵저버 패턴이 뭔지 모르면 공부하셈. 안 그럼 이거 이해 못할 거임
장점
1. 동기 코드의 경우 가독성 좋음. 그냥 함수명이 On + Verb 시그니처면 바로 알아볼 수 있음. (옵저버 패턴만 알면 다 이해함)
2. OOP와 시너지가 좋음
3. 디커플링 가능
4. 유지보수 최상
단점
1. 비동기 방식은 언어에서 지원해주는 경우가 많은데, 되려 가독성이 구릴 수도 있음(가독성이라기보단 플로우가 익숙하지가 않음. 진입 장벽 높아서 팀프로젝트로는 고민해봐야됨)
2. 설계 하는데 오래 걸림. 후딱 기능 만들고 말지, 왜 굳이 이렇게 짜야하나 회의감 들기도 함(왜냐면 설계하는 시점에는 유지보수의 필요성을 못느끼니까)
3. 성능이 구림
큰 소프트웨어일수록 이벤트 기반 프로그래밍에 의존하는 코드가 좋다고 생각함
하지만 적어도 내가 다녔던 실무에서는 짬뽕되어 있음
여러 프로그래밍 패러다임의 장점만 뽑아서 쓰는 경우가 많으니 개념정도는 알아두는 게 좋다
어떤 프로젝트를 보고 이 프로젝트는 이런 패러다임이다, 라고 하나로 특정할 수 없다는 게 결론임
댓글 1