💰컴투스 플랫폼 블록체인 특강

  1. DevOps

    1. Docker/ Kubernates 학습 필수!
      1. 네트워크/클라우드에 대한 이해 필요…!
    2. 게임 개발이라고 해서 무조건 실시간 통신은 아니다.
    3. 언어를 선택할 때는 본인이 제일 편한 언어로 시작하는 것이 좋다
      1. 언어 ⇒ 프레임워크 ⇒ 서버 순으로 공부해 놓는 것이 좋다.
  2. 개발 언어 선택 기준

    1. 신뢰성: 타입검사, 예외 처리
    2. 확장성: 요구 사항에 맞추어 원하는 기능을 추가하고 확장하기 용이해야 함
    3. 유연성: 표현하고 싶은 내용과 기술을 자유롭게 수용하고 기능추가가 용이해야 함
    4. 유지 보수성: 버그수정, 시스템 운영 유지, 장애 대응, 신규 기능 추가 등 지속적인 배용이 발생하므로 관리가 용이 해야 함.
    5. 프레임워크 사용 전 Document를 사용하는 것이 중요함.
  3. 성장을 위한 준비 과정

    1. 코드 따라가기
      1. 알고리즘을 사용만 할 수 있지만 작동 원리를 알아야한다.
      2. 알고리즘 문제들을 풀면서 인덱스별로 어떻게 값이 변화되고 출력되는지 수기로 작성하며 이해하는 연습을 해보자.
      3. 코드에 대한 이해가 높아져야 타인이 작성한 코드를 이해하는 것이 용이해진다. ⇒ 대부분은 누군가가 작성한 코드 위에서 일을 하게 된다. 코드 리뷰 능력은 필수라고 생각됨.
    2. 마인드 맵
      1. 개발도 마인드 맵이 필요하다 ⇒ DB 이해할 때 큰 역할을 함.
      2. 백엔드 개발을 할 때 ⇒ 분산처리에 대한 이해가 중요함. (DB ~ EC2 간의 부하 분산)
      3. DB ERD가 매우 중요하다. ⇒ 마인드 맵을 작성하여 논리적인 관계 정리가 선수되어 개바를 해 볼 필요가 있다.
    3. 시퀀스 다이어그램
      1. 플로우차트를 만들 때에는 너무 형식에 치우치지 말자. 중요한 것은 생각을 하는 것.
      2. 툴에 의존적이게 되면 안된다…!
    4. 시뮬레이션 (머리로 디버깅하는 경지…! ⇒ 언젠가는 도달해야하는 수준 / 10년 정도 걸립니다…!)
      1. 고객의 요구 사항에 대하여 그 자리에서 더 심화된 얘기를 할 수 있다.
      2. 소통을 잘하기 위해서는 소프트 스킬도 중요하지만 위 과정을 수 차례 시뮬레이션을 통해서 개발 능력을 키우는 것도 좋다.
      3. 회사 업무 ≠ 개인 성장 이라는 생각을 하지 말자.
  4. Q&A

    1. 컴투스 내부에서도 코드 리뷰 하나요? ⇒ 서브 프로젝트를 통하여 코드 리뷰를 진행 (안바쁠때는 코드 리뷰 진행…!)
    2. 코드 리뷰 ⇒ 꼭 2이어야 할 수 있는 것인가? 자신의 코드를 리팩토링하고 타인들의 코드를 들여다보고 리뷰해보는 습관을 가져보자.
    3. 돈 받고 하는 일들은 대부분 재미가 없다 ⇒ 하지만 재미 없다고 손 놓고 있으면 그걸로 발전은 멈춘다. 스스로 재미와 의미를 부여하면서 해야한다.
    4. 최근에 관심을 가지는 기술 ⇒ VR/AI
    5. 컴투스 웹 서비스는 대부분 MSA를 이용하고 있나요?⇒ 유지 보수가 어렵거나 노후된 서버는 굳이 MSA로 전환하지 않는다. 블록체인 서비스 구축(Docker → 쿠버네티스)하면서 MSA로 전환할 예정!
      1. MSA로 전환하는 것도 다 비용이라서 손익을 잘 구분해야한다.
    6. 클린 아키텍트 책 추천!! ⇒ https://www.yes24.com/Product/Goods/77283734
    7. 일단 만들고 강의나 책을 보는 것이 이해가 더 깊어진다.

    💻 컴투스 플랫폼 DB 특강

    1. DBMS의 변화
      1. NewSQL은 관계형 데이터베이스의 ACID 보장 + NoSQL의 분산 스케일링 기능
      2. 변화의 이유: 생산성에 중점을 두게 되면서 변화하게 됨.
      3. RDBMS가 현재까지 사용되는 이유: 비용/안정성/유저친화적인 특징
    2. DB 병목의 여러 요소들과 그에 대한 해결 방안
      1. 설계 / 샤딩
      2. 인덱스 / 인덱스 튜닝
      3. 느린 쿼리 / 쿼리 튜닝
      4. 데드락
      5. 서버 리소스 / 모니터링
    3. 서버 개발자 업무 중 DB 업무가 절반 정도 된다. 하지만 DB 학습에는 소홀한 모습을 보인다.
    4. 게임서버 개발 시 고려애햐 할 것들 ⇒ 장애 발생 원인의 대부부분은 DB에서 발생한다.
      1. 최대 동시 접속자 수
      2. 부하 테스트
      3. 확장 가능한 아키텍처
      4. 게임서버 방식을 고려한 아키텍처 설계
    5. 게임 4대 명검 meme
    6. 개발 및 운영에 필요한 DB 작업
      1. 데이터 모델링 (기획서에 대한 적확한 이해가 중요하다.)
        1. 개념 ⇒ 논리 ⇒ 물리 과정으로 모델링을 하는 것이 좋다.
        2. 오히려 DB 모델링을 정확하게 할 수록 시간이 절약된다.
      2. 테이블/인덱스 스키마 작성
        1. 인덱스/ 아키텍처에 대한 깊은 이해가 필요하다.
        2. 서버 개발자 ⇒ DBA로 전향하는 케이스가 심심치 않게 있다. (대부분 에이스들이 간다.)
      3. 쿼리 작성
      4. DB 패치
      5. 서버 모니터링
      6. 쿼리 최적화
      7. 운영에 필요한 CS 등등…
    7. 게임 개발 내에서 Redis의 활용 ⇒ 캐시 데이터 & 리더보드
    8. 인덱스의 분포도 (Cardinality): https://itholic.github.io/database-cardinality/
      1. 인덱스 조회 ⇒ 주고를 가지고 DB 페이지에서 조회가 되기 때문에 분포도가 높을 수록 index설정은 효율적이지 않다.
      2. Cardinality에 대한 개념 이해
      3. index 전략에 대한 이해
      4. index 작동 과정에 대한 이해
      5. dB 성능 비교에 대한 이해
    9. 게임 단위의 팀 내에서 DBA가 없을 확률이 높기 때문에 게임 서버 개발자가 담당해야 할수도 있다.
    10. 모니터링 (Grafana)
      1. 컴투스에서 사용하는 시각화 툴
      2. 수시로 모니터링하는 습관을 가지자…!
    11. 데이터 모델링 (A-query)
      1. 높은 가성비
      2. 표준 용어 사전에 등록된 용어를 속성명으로 사용
      3. 논리 속성명이 결정되면 물리 컬럼명과 데이터타입은 자동 연결
      4. 표준화 작업이 선행되어야 함. ⇒ 향후 유지보수에 주요한 역할을 함.(데이터의 형변부해환)
    12. 컴투스의 게임서버 개발 언어 (많이 쓰는 순으로)
    13. 컴투스의 게임서버에 사용하는 DB
    14. 클라우드를 사용하지 않는 이유?
    15. GCP
    16. 일 잘하는 서버 개발자가 되려면

💻 컴투스 플랫폼 블록체인 특강

  1. 서버에 중요한 요소 3가지: 신뢰성, 보안, 성능
  2. DB의 중요성
  3. 책 추천(24시간 365일 서버/인프라를 지탱하는 기술**)**: https://www.yes24.com/Product/Goods/3377489

🌱 오픈월드 취뽀 성공기

  1. 진로 이야기
  2. 새싹 이야기
  3. 직장 이야기

📚 게임 서버 개발에 사용되는 기술 소개와 학습 방법

  1. 게임 서보 소개
  2. 게임서버 개발 기술
  3. 게임 서버 학습