client는 싱글쓰레드 이므로 completeClient 메소드의 syncronized 제거