SpringWebFlow - 왜 쓰나 어떨 때 쓸까

less than 1 minute read

이걸왜쓰나

이 프레임워크의 존재는 오래전부터 알았지만 이걸 쓸 생각은 한번도 안해봤다.

그냥 별로 쓸모가 없어보여서… 이런짓을 왜 해야되나 싶었다.

그냥 controller에서 리다이렉트하고 뭐 하면 되는데

 

그런데 최근.. SSO서비스를 만들면서 플로우가 너무 꼬여서 고생하고 나니 생각이 바뀌었다.

소셜로그인 때문에 OAuth의 redirect까지 끼어들고 나니 코드가 뭐가뭔지 정신이 하나도 없었다.

그래서 사용하기로 결정.

사용법은 매우 쉽다. 웹 플로우의 필요성을 느꼈다면 설명은 필요없어보인다.

 

장단점

아쉬운점은 xml이고 spring boot에서 별로 지원이 없다는 점.

아직 쓸모가 있고 수요도 있는데

업그레이드는 되지 않는 것 같다.

SpringBoot에서 참견을 안하니까 알수없는 오류의 구렁텅이에 빠지는 일도 없고

심플하고 오래된 프레임워크라 버그가 없을 것만같다. (아직 안써봤다)

 

활용 시나리오

ex0) SignupFlow

로그인-> Y -> end.메인화면으로.view

-> N -> 회원가입폼.view -> email? -> EmailFlow

-> social? -> SocialFlow

ex1) EmailFlow

~~~

ex2) SocialFlow

~~~

 

문제점

적용하면서 시간낭비 하다가 다 빼버렸다.

쓴다면 플로우가(Scene이?) 3단계 이상인 경우에만 쓰는게 좋을 것 같다.

 

나갔다가 돌아오는 경우에 사용할 수 없다.

ex)이메일인증, OAuth 등의 경우

RequestParam, Cookie 또는 Session을 선택적으로 쓸 수 있는 환경이 필요해 보인다.

XML설정이 매우 불편하다.

시간날 때 GroovyDSL 형태로 만들어보는게 좋을까

중간진입 불가

flow는 항상 처음부터 시작되는걸로 여러개 만드는 방식도 좋지만

중간진입이 필요한 경우도 있지 않을까? 이건 좀 애매한 부분.

Form-Post방식의 화면전환

_elementId_{name} 형태로 써서 보내야 되는데

오지게 불편하다.