스파르타내일배움캠프TIL
-
[TIL] 타워 디펜스 팀 프로젝트 종료 (D-Day)TIL-sparta 2024. 6. 21. 21:16
학습 키워드: Redis, Node.js. express, socket.io, transaction, concurrency 1. 완료한 과제 진행 사항요약) 버그 수정 작업: - 클라이언트에서 타워 환불/업그레이드 이벤트를 잘 못 송신하는 케이스를 수정 - 서버 내 유저 게임 데이터의 스테이지 정보가 제대로 업데이트 되지 않던 문제를 수정 -> 검증 로직 자체에는 문제가 없었으나 아래에 작성한 redis 동시성 문제로 인한 anomaly 발생 때문에 정보의 불일치가 생겨 검증에 실패하는 경우가 있었음 2. 과제 진행 간 문제점Redis 데이터 수정 시 동시성 문제 발생: 과제 진행 초반에 작성하고 지속적으로 수정하던 redis 데이터 수정용 함수들이 있는데, 제출 전날과 당일에 기능을 테스트하면서 ..
-
강의 과제) 응용 계층, DNS, HTTPTIL-sparta 2024. 6. 20. 10:40
학습 키워드: application layer, DNS, HTTP 1. 응용 계층이란? 응용 계층(application layer, L7)은 OSI 모델의 최상단에 위치한 계층으로, TCP/IP 모델에서는 전송 계층(L4) 상단의 계층을 통틀어 의미하며, 앱 개발자에게 보여지는 부분입니다. 응용 계층은 클라이언트의 요청을 전송 계층으로 전달하는 역할을 하는데, 운영체제의 커널과 앱 사이에서 메세지를 전송해 주는 작업을 socket이 담당합니다. 2. DNS란? DNS는 Domain Name System의 약자로, 숫자로 이루어져 알아보기 힘든 IP 주소를 사용자가 읽기 쉽도록 문자로 된 주소로 변환하는 것을 말합니다. DNS가 관리되는 DNS 서버가 존재하며, 사용자가 브라우저에 DNS 주소를 입력하게..
-
[TIL] 타워 디펜스 팀 프로젝트 진행 (D-2)TIL-sparta 2024. 6. 19. 22:07
학습 키워드: Redis, Node.js, express, socket.io 1. 완료한 과제 진행 사항요약) 보물 고블린 출현 기능 구현 완료:https://github.com/eliotjang/tower-defense-game-project/pull/39 35 update 보물 고블린 몬스터 출연 기능 by donkim1212 · Pull Request #39 · eliotjang/tower-defense-game-project#35 에 명시한 고블린 몬스터 관련 기능 구현github.com 클라이언트에서 타이머를 돌리면서 보물 고블린 소환 이벤트 요청을 서버로 보내고, 서버에서는 요청 시각이 유저의 게임 데이터에 유지되고 있는 이전 고블린 소환의 min interval 보다 빠른지를 확인하는 방식으..
-
[TIL] 타워 디펜스 팀 프로젝트 진행 (D-3)TIL-sparta 2024. 6. 19. 03:13
학습 키워드: Redis, Node.js, express, socket.io 1. 완료한 과제 진행 사항Redis 범용 CRUD 함수 모음 작성: - redisClient method들을 형식에 맞게 호출하는 범용 함수들을 작성해서 팀원들이 import하여 쓸 수 있도록 구성https://github.com/eliotjang/tower-defense-game-project/pull/20 11 update redis 범용 crud 함수 생성 by donkim1212 · Pull Request #20 · eliotjang/tower-defense-game-project#11 에 명시한 유저 데이터와 게임 데이터 redis 함수 작성 완료 각 함수별 기능/인자 설명 JSDoc 추가 highscore 부분은 추..
-
[TIL] 타워 디펜스 팀 프로젝트 발제 (D-4)TIL-sparta 2024. 6. 17. 21:45
> 팀 프로젝트 발제 이후 프로젝트의 소켓 이벤트 패킷 명세 작성, 기능별 작업 구분 및 할당, 데이터 테이블 작성 등의 상세 계획을 수립했다. 학습 키워드: Node.js, express, socket.io 1. 프로젝트 회의 진행요약) 데이터 테이블, 패킷 구조 설계: 프로젝트에서 사용할 여러가지 데이터 테이블 (asset 파일들) 및 redis에 저장될 데이터의 구조를 미리 설계했다. 패킷 구조 설계에도 시간을 많이 썼지만 불확실한 부분들이 조금 있었는데, 검증 로직을 어떻게 짜게 될지 미리 정하기가 어려워서 결과적으로 일부 확실한 항목들만 기입하고 나머지는 기능 구현 시 필요에 따라 채워 넣기로 했다. 2. 한참 전 commit 내용 수정하기요약) 오래 전 커밋의 메세지를 수정할 때 사용:// c..
-
강의 과제) 전송 계층, TCP, UDP, TCP 오류, 흐름 제어, 혼잡 제어TIL-sparta 2024. 6. 16. 23:20
학습 키워드: transport layer, TCP, UDP, TCP errors, flow control, congestion control 1. 전송 계층이란? 전송 계층의 개념과 필요성 전송 계층(L4)은 TCP와 UDP 프로토콜이 속해 있는 계층으로, 데이터를 세그먼트(segment) 단위로 분리하여 송신하고 수신 시 세그먼트를 재조립(reassembly) 합니다. 네트워크 계층(L3)이 IP 주소를 이용해 서로 다른 네트워크의 두 호스트간 패킷 전달을 담당했다면, 전송 계층은 송신측과 수신측의 호스트 내 프로세스 끼리의 end-to-end 통신을 담당합니다. 하드웨어와 프로세스를 이어주는 OS의 커널(kernel)에서 SW적으로 구현되어 있으며, 네트워크의 혼잡 제어를 담당하는 로드 밸런서도 L..