검색
서버와 클라이언트, 어디서 해야할지 헷갈릴 때
어떤 작업을 서버와 클라이언트 중 어디서 해야할지 고민이 된다면 다음을 고려해보자.
일반적인 경우
코드가 다룰 데이터와 가까운 곳에서 한다.
클라이언트 인메모리에만 존재하는 데이터를 굳이 서버에 가져가서 할 필요는 없다(클라이언트에서 연산하기 버겁고, 서버에서는 쉬운 경우는 제외).
서버에서 하는게 적합한 경우
많은 컴퓨팅 파워 등 클라이언트에게 없는 필요한 리소스를 서버가 가지고 있는 경우
보안이 필요한 경우
확장성과 유연성이 필요한 경우
서버에 로직을 구현하고, 서버가 클라이언트에 인터페이스만 제공하게 되면 로직과 인터페이스가 분리되게 된다. 그러면 서버는 클라이언트와 관계 없이 로직을 바꿀 수 있는 능력을 얻게 된다.
클라이언트에서 하는게 적합한 경우
빠른 응답 시간이 필요한 경우
단, 컴퓨팅 파워가 따라줘야한다.
예시
이미지 그룹핑은 서버에서 하는게 좋다.
그룹핑 알고리즘은 기획에 따라 쉽게 바뀔 수 있기 때문이다.
그룹핑 결과가 데이터베이스에 저장되는데, 서버가 데이터베이스에 더 가깝기 때문이다.
그룹핑 연산에 필요한 리소스가 클라이언트에 없을 가능성이 높기 때문이다(예: 높은 연산 능력, SIMD 연산 능력).