프론트엔드가 더 복잡해지는 것이 아니라 — 경계가 흐려지고 있다

발행: (2026년 4월 16일 AM 02:00 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

왜 과거 프론트엔드는 복잡하게 느껴졌는가

  • 많은 구분된 파트들
  • 각 레이어마다 명확한 책임이 있었음
  • 경계가 쉽게 식별되었음

현대 프론트엔드에서 바뀐 점

  • 시스템 경계가 더 이상 명확하지 않음.
  • 이전 아키텍처에서는 다음과 같은 구분이 있었음:
    • UI vs. 로직
    • State vs. 렌더링
    • Client vs. Server
    • Component vs. Service

이러한 구분 덕분에 대규모 시스템을 이해하기 쉬웠다. 이제는 그 경계가 점점 흐려지고 있다.

컴포넌트가 이제 여러 책임을 담당

  • 데이터 페칭
  • 캐싱 로직
  • 비즈니스 규칙
  • 사이드 이펙트

UI는 더 이상 단순히 UI가 아니다. 컴포넌트는 이제 프레젠테이션 단위가 아니라 여러 책임을 담은 번들이다.

상태가 이제 많은 영역에 영향을 미침

  • 여러 컴포넌트
  • 외부 시스템
  • 비동기 워크플로우
  • 파생 연산

상태가 예측 가능한 경계 안에만 머물지 않는다; 하나의 변화가 원점보다 훨씬 멀리까지 파급될 수 있다.

분산된 로직

로직이 퍼져 있다:

  • 컴포넌트
  • 훅(Hooks)
  • 유틸리티
  • 프레임워크 추상화

동작을 이해하려면 여러 정신적 레이어를 오가야 한다. 더 많은 로직이 생겨서가 아니라, 어디에 무엇이 속하는지 알기 어려워졌기 때문에 “집”이 사라진 것이다. 이러한 불확실성은 인지 부하를 만든다.

개발자들은 다음과 같은 질문에 더 많은 시간을 쏟는다:

  • 이 로직은 어디에 두어야 할까?
  • 왜 이 동작이 여기서 일어나고 있지?
  • 이 변화에 무엇이 의존하고 있지?

구조적 vs. 구문적 혼란

옛 시스템

  • 컴포넌트가 UI를 담당
  • 서비스가 로직을 담당
  • 상태는 중앙 집중화
  • 책임이 명확히 정의됨

현대 프론트엔드 시스템

  • 책임이 겹침
  • 경계가 유연함
  • 소유권이 공유됨
  • 동작이 분산됨

작은 기능조차도 복잡하게 느껴진다. 복잡해서가 아니라, 그 기능이 제한되지 않았기 때문이다.

흐려진 경계의 결과

  • 디버깅이 어려워짐
  • 리팩토링 위험 증가
  • 온보딩 속도 저하
  • 정신 모델이 불안정해짐

개발자들은 “이 동작은 실제로 어디에 존재하는가?” 라는 질문에 답하기 힘들어한다.

명확성을 되찾기

우수한 엔지니어들은 구조를 재도입함으로써 보완한다:

  • 로직에 대한 명확한 소유권 정의
  • 책임을 의도적으로 격리
  • 레이어 간 의존성 감소
  • 예측 가능한 데이터 흐름 유지
  • 아키텍처 일관성 강제

그들은 경계를 정의하는 데 프레임워크에 의존하지 않는다; 경계를 스스로 만들고 있다.

결론

프론트엔드가 더 어려워지는 이유는 코드가 많아졌기 때문이 아니라, 책임에 대한 명확한 경계를 그리기가 점점 어려워지고 있기 때문이다. 그 경계가 없으면, 심지어 단순한 시스템도 복잡하게 느껴진다.

0 조회
Back to Blog

관련 글

더 보기 »

cubic-bezier로 CSS 전환을 레벨업하기

플랫해 보이는 CSS 전환은 왜 그런가요? 기본 ease 타이밍 함수는 작동하지만 일반적입니다. 실제 움직임은 개성이 있습니다—튕기고, 과도하게 움직이며…