AI 시대에는 프론트엔드 화면을 AI가 어느 정도 만들 수 있다.
예를 들어 AI는 다음 작업을 잘한다.
- 버튼, 폼, 카드 UI 만들기
- CSS / Tailwind 작성
- CRUD 화면 만들기
- 간단한 API 연결
- Next.js 프로젝트 생성
하지만 프론트엔드가 단순히 화면을 만드는 일만은 아니다.
프론트엔드는 크게 두 종류로 나눌 수 있다.
- Thin Client
- Thick Client
Thin Client란?
Thin Client는 클라이언트의 역할이 가벼운 구조다.
대부분의 로직은 서버에 있고, 프론트엔드는 서버에서 받은 결과를 화면에 보여준다.
사용자 입력 → 서버 요청 → 서버 처리 → 응답 표시
서버는 다음 역할을 담당한다.
- 비즈니스 로직
- 유효성 검사
- 인증 / 권한 처리
- 데이터 처리
프론트엔드는 주로 다음 역할을 한다.
- 데이터 요청
- 응답 받기
- UI 렌더링
예시는 다음과 같다.
- 블로그
- 마케팅 페이지
- 단순 관리자 페이지
- CRUD 화면
즉, Thin Client는 서버 상태를 화면에 보여주는 프론트엔드에 가깝다.
Thick Client란?
Thick Client는 클라이언트 안에 복잡한 로직과 상태가 있는 구조다.
단순히 서버 데이터를 보여주는 것이 아니라, 클라이언트가 직접 제품 경험을 관리한다.
Thick Client에는 다음 요소들이 들어갈 수 있다.
- Local State
- Server Cache
- Optimistic Update
- Pending Mutation
- Offline Queue
- Realtime Event
- Undo / Redo
- Command History
예시는 다음과 같다.
- Figma
- Notion
- Canva
- Google Docs
- Spotify
- ChatGPT
이런 서비스는 서버 응답 하나만으로 UI가 결정되지 않는다.
현재 UI는 다음 요소들을 함께 고려해서 결정된다.
- 로컬 편집 상태
- 아직 서버에 저장되지 않은 변경사항
- 서버 캐시
- 실시간 이벤트
- 네트워크 상태
- 사용자의 최종 의도
즉, Thick Client는 클라이언트에서 복잡한 제품 경험을 운영하는 프론트엔드다.
Thin Client와 Thick Client 비교
| 구분 | Thin Client | Thick Client |
|---|---|---|
| 역할 | 서버 데이터를 보여줌 | 클라이언트가 제품 경험을 운영 |
| 주요 상태 | 서버 응답 데이터 | 로컬 상태, 캐시, 실시간 이벤트, 대기 중인 요청 |
| 네트워크 의존도 | 높음 | 낮추도록 설계하는 경우가 많음 |
| 오프라인 지원 | 거의 없음 | 필요할 수 있음 |
| 협업 기능 | 단순함 | 실시간 동시 편집 가능 |
| 난이도 | 비교적 낮음 | 높음 |
| AI 대체 가능성 | 높음 | 낮음 |
AI가 어려워하는 부분
AI는 반복 패턴이 많은 작업을 잘한다.
예를 들어 CRUD, Form, Table, Card, CSS Layout 같은 작업은 AI가 잘 만들 수 있다.
하지만 Thick Client는 어렵다.
이유는 단순 화면 구현이 아니라, 여러 상태와 이벤트가 복잡하게 얽혀 있기 때문이다.
대표적으로 다음 문제가 있다.
- 비동기 요청 순서 문제
- Optimistic Update
- Rollback
- Offline Queue
- 실시간 이벤트 처리
- 충돌 해결
- Undo / Redo
- 성능 최적화
- 실패 복구 로직
예를 들어 사용자가 좋아요를 눌렀다가 바로 취소했는데, 서버 응답이 반대 순서로 도착할 수 있다.
이때 마지막 서버 응답만 믿으면 UI가 잘못될 수 있다.
또 사용자가 오프라인 상태에서 문서를 수정하고, 다른 기기에서도 같은 문서가 수정되었다면, 다시 온라인이 되었을 때 어떤 데이터를 어떻게 합칠지 결정해야 한다.
이런 문제는 단순 구현이 아니라 시스템 설계 문제다.
결론
AI가 쉽게 만드는 프론트엔드는 대부분 Thin Client에 가깝다.
반면 Thick Client는 복잡한 상태 관리, 동기화, 충돌 해결, 실패 복구, 실시간 협업 같은 문제가 있기 때문에 AI가 쉽게 대체하기 어렵다.
따라서 AI 시대에도 프론트엔드 엔지니어의 중요한 가치는 단순 화면 구현이 아니라, 복잡한 클라이언트 경험을 안정적으로 설계하고 운영하는 능력에 있다.
