리덕스 이후의 프론트엔드…이벤트 조율에서 상태 모델링으로

ITWorld Korea | | 🔬 연구
#review #리덕스 #상태 관리 #상태 모델링 #이벤트 기반 #프론트엔드
원문 출처: ITWorld Korea · Genesis Park에서 요약 및 분석

요약

이벤트는 프론트엔드 시스템에 필수적인 입력이다. 그러나 반응을 아키텍처로 오해하면 복잡성에 매몰된다. 초점을 옮겨 상태에 집중해야 한다. 이벤트는 현대 프론트엔드 시스템에 필수적인 입력이다. 그러나 반응을 아키텍처로 오해하면 소리소문 없이 복잡성이 증식한다. 시간이 지나면서 많은 프론트엔드 아키텍처가 구조의 모델보다는 반응의 사슬을 닮아갔고 그 결과 시스템의 표현력은 높아졌지만 시스템을 추론하기는 점점 더 어려워졌다. 다른 아키텍처 관점이 새롭게 부상하는 중이다. 일부에서 반응의 사슬을 중심으로 시스템을 구성하는 대신 애플리케이션 상태를 시스템의 기본 구조로 다루기 시작했다. 이 모델에서도 이벤트는 여전히 발생한다. 다만 더 이상 아키텍처를 정의하지 않고 상태만 수정한다. UI와 파생된 동작은 이런 관계를 따른다. 상태 우선 프론트엔드 아키텍처로의 이 전환은 갈수록 더 복잡해지는 애플리케이션에 대해 추론하기 위한 더 명확한 방법을 제공한다. 반응이 기본값일 때 프론트엔드 엔지니어링은

본문

따라서 이벤트 기반 모델은 미묘한 인지적 부담을 초래한다. 엔지니어는 관계를 직접 조사하는 것이 아니라 시간 경과에 따른 실행을 시뮬레이션해야 한다. 명확하게 해야 하는 질문(예를 들어 이 값에 의존하는 것은 무엇인가? 이것이 변경되면 무엇이 재계산되는가?)을 위해 시스템 전반의 반응 경로를 추적해야 하는 경우가 많다. 조율이 정교해질수록 아키텍처를 전체적으로 이해하는 데 더 많은 노력을 들여야 한다. 상태 우선 사고로의 전환 현대 프론트엔드 개발 전반에서 비교적 조용한 아키텍처 변화가 일어나고 있다. 직전에 무슨 일이 일어났는가를 중심으로 시스템을 구성하는 대신, 현재 무엇이 사실인가를 중심으로 시스템을 구성하는 경우가 증가하는 중이다. 상태 우선 모델에서 변경은 이벤트가 발생해서 전파되는 것이 아니라 관계가 존재하기 때문에 전파된다. 종속성은 명시적으로 선언된다. 파생된 값은 기반 상태의 직접 함수로 표현된다. 어떤 것이 변경되면 시스템은 그에 의존하는 요소를 결정론적 방식으로 재계산한다. 수동으로 흐름을 연출했기 때문이 아니라 관계를 기술했기 때문이다. 이벤트는 여전히 필수적이다. 애플리케이션을 움직이게 하는 것은 여전히 사용자 상호작용과 네트워크 응답이다. 차이점은 이벤트가 아키텍처 추론의 중추 역할이 아니라 상태를 수정하는 입력이라는 본연의 역할로 돌아간다는 것이다. 엔지니어는 타임라인을 재생하는 대신 관계를 조사하고 흐름을 조율하는 대신 구조를 모델링한다. 이 전환은 반응성을 없애는 것이 아니라 다듬는다. 프론트엔드 아키텍처 기술의 재정의 오랜 기간 동안 프론트엔드를 마스터한다는 것은 이벤트를 정밀하게 조율하는 것을 의미했다. 예를 들어 액션을 깔끔하게 디스패치하고, 부수 효과를 철저히 관리하고, 혼돈을 초래하지 않으면서 비동기 경계를 조정하는 것이다. 이런 기술도 여전히 가치가 있다. 그러나 아키텍처의 성숙을 위해서는 그보다 더 깊은 무엇인가가 필요하다. 바로 상태를 명확하게 모델링하고, 종속성을 명시적으로 정의하고, 기록을 재생하는 대신 구조를 조사함으로써 동작을 이해할 수 있는 시스템을 설계하는 역량이다. 리덕스는 큰 진전이었다. 변경에 규칙을 적용했고 이벤트 흐름을 추적할 수 있도록 했다. 그러나 규칙이 있는 디스패치가 아키텍처의 끝이 아니다. 아키텍처는 관계가 핵심 요소가 되고, 상태, 파생, 종속성이 흐름의 결과가 아니라 가시적이고 의도적일 때 시작된다. 이 변화는 여러 현대 프레임워크 전반에서 이미 나타나고 있다. 앵귤러 시그널(Angular Signals), 세밀한 반응형 모델, 상태 기반 UI 아키텍처 등은 모두 동일한 개념, 즉 이벤트 연출이 아니라 상태의 구조가 시스템 동작을 정의해야 한다는 개념으로 수렴한다. 필자는 새롭게 부상하는 이 모델을 “상태 우선 프론트엔드 아키텍처”라고 부른다. 여기서는 애플리케이션 상태가 주된 진실 공급원이 되고, UI는 이벤트 사슬에 의해 움직이는 것이 아니라 상태로부터 파생된다. 현대 프론트엔드 팀이 생각해야 할 질문은 이제 “이 이벤트에 어떻게 반응할 것인가?”가 아니라, “무엇이 사실인지 모델링하기 위한 가장 단순하고 명확한 방법은 무엇인가?”이다. 반응이 아닌 구조로 시작하게 되면 복잡성은 대체로 줄어든다. 시스템을 더 쉽게 설명하고 테스트하고 발전시킬 수 있게 된다. 이벤트는 여전히 시스템에 들어오지만 더 이상 시스템을 정의하지는 않는다. 이 변화는 철학적인 이야기로 들릴 수 있지만 실제 결과를 가져온다. 구성요소를 설계하는 방식을 바꾸고 상태를 구성하는 방식을 바꾸고 규모에 대해 추론하는 방식을 바꾼다. 이벤트는 필수 불가결하다. 애플리케이션을 앞으로 움직이게 하는 입력이다. 그러나 아키텍처의 핵심은 방금 무슨 일이 일어났는지가 아니라 무엇이 사실로 남아 있는지다. 이벤트는 앞으로도 시스템에 들어오겠지만 아키텍처를 정의해서는 안 된다. 차세대 프론트엔드 시스템은 이벤트를 얼마나 매끄럽게 조율하느냐가 아니라, 상태를 얼마나 명확하게 모델링하느냐에 의해 좌우될 것이다. 앵귤러 시그널과 같은 프레임워크는 이 전환이 이미 시작됐음을 보여주며, UI가 이벤트에 대한 반응이 아닌 상태의 투영으로 취급되는 미래를 가리키고 있다. [email protected]

Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.

공유

관련 저널 읽기

전체 보기 →