2013년 4월 24일 수요일

NDC 2013 - 서버를 위한 디자인 패턴

서버 기초 설계

입력 -> 실행 -> 로직

서버 모델링을 할 경우, 초기단계에는 심플하게 만드는게 좋으므로

싱글쓰레드 모델링을 하는것을 추천. 구현이 제일 간단하므로...

설계 확장하기

  Interaction

    - 공간 분할이 필수

       - 동적 분할 / 정적 분할 

    - 타일 분할 간단 소개 

       구현이 간단 , 초기 비용이 거의 없다 , 시야 거리를 동적으로 바꾸기 어렵다 , 

       속도 향상은 적다.

    - 서버가 보는 심리스 월드

       - 심리스 월드를 바라보는 관점 

          > 결국 크기를 어떻게 할것인가.. 그게 주 관점 ..


동기화 VS 비동기..엄청 중요하지 암암..

서비스의 속도를 떨어트리는 공회전,,, 언제 일어나지?

1 DB 요청

2. 객체 잠금 Lock

3. 명시적 대기 . sleep() , Event.wait()

해결 방법 !!

비동기처리...ㅠㅠ...그래요....

그래요 ,, 말해주지 에이..

* 동기화 코드 모델 샘플 소개

    비동기로 한번 빠지면,, 돌아오지 못하기때문에..."주사위는 던져졌따.."

   Input Thread 를 기반으로 작업해 본다.

   이렇게 작업 할경우, 한명의 유저 정도가 느리다고 느낄수 있다.

   자 중요한것은 그렇다면 무엇인가, 내성이다.

   내성이란?

    - 서버가 입력속도보다 처리속도가 낮아지는 상황에서 얼마나 빨리 복구되냐의 수치

    - 이게 가장 좋은걸 강연자는  Input Thread로 보고있다.

마치며..

동기화 로직은 코드를 깔끔하게 한다.
비동기 로직은 성능향상을 시킨다.

이 둘 사이에서 균형을 잡아야 한다.

   강연자는 코드 깔끔한 쪽을 선호한다.


-> 데이터 베이스 로직

-> 서버 샤딩과ㅠ관리

-> 로깅

댓글 없음:

댓글 쓰기