클라이언트와 서버 경계

서버/클라이언트 신뢰 경계

클라이언트는 사용자의 기기에서 빠른 피드백과 화면 상호작용을 맡고, 서버는 신뢰 가능한 데이터 검증과 권한 판단을 맡습니다. 둘의 차이는 어디에서 실행되는지보다 누가 조작할 수 있는지에서 더 중요합니다.

01

요청과 응답 모델

브라우저는 요청을 만들고 서버는 검증 후 응답합니다. 화면은 이 응답을 기준으로 상태를 갱신합니다.

HTTP
02

신뢰 경계 구분

클라이언트 검증은 사용자 경험용이고, 보안과 데이터 무결성은 서버 검증에서 확정합니다.

trust
03

데이터 소유권 배치

장기 보관 데이터, 결제, 권한, 개인정보는 서버가 소유하고 클라이언트는 필요한 범위만 캐시합니다.

ownership
04

지연과 오류 설계

네트워크는 실패할 수 있으므로 로딩, 재시도, 낙관적 업데이트, 오류 메시지를 API 계약과 함께 둡니다.

latency
서버 판정
클라이언트는 빠른 안내, 서버는 최종 판정 폼에서 빈 값을 막아도 서버는 같은 규칙을 다시 확인해야 합니다.
validation
비밀 값
API key, DB password, signing secret은 서버에만 위치 프론트 번들에 들어간 값은 공개된 것으로 봐야 합니다.
secret
캐시
클라이언트 캐시는 성능 장치일 뿐 원본은 서버 만료, 갱신, 충돌 처리 규칙을 정하지 않으면 오래된 화면이 됩니다.
cache

권한 판단 · 오류 문장 · API 계약 점검

권한 판단 버튼을 숨기는 것과 실제 API 권한 검사는 별개로 둡니다.
오류 문장 서버 오류를 그대로 노출하지 말고 사용자가 다음 행동을 알 수 있게 바꿉니다.
API 계약 요청과 응답 schema가 화면 상태와 어떻게 연결되는지 문서화합니다.

검증 책임 분리

클라이언트: 이메일 형식이 맞는지 즉시 안내
서버: 이메일 소유권, 중복, 권한, 저장 가능 여부를 최종 확인