본문 바로가기

전체 글102

241227 TIL - 개인과제01 개인과제) 오늘 만난 문제 01. push가 안 됨 ㅋㅋ문제 발견  문제 발생 문제 발생!!! 이제 몬스터 생성을 하는 로직 같은 경우는, setInterval을 통해 임의로 지정한 시간 마다 spawn 함수를 실행하고, 그 함수에서 event 메세지를 보내 서버에서 검증을 하구, 그리고 유효한 데이터를 클라에 응답!! 클라는 응답받은 데이터를 통해 Monster 인스턴스를 생성하고, 생성된 인스턴스를 monsters 배열에 넣어준다!! 근데 문제는 넣어주는 부분에서 도통 push가 정상 작동을 하지 않는 것이다!! 사진은 monsters 배열을 출력해본 건데, 이상하게도 출력 당시엔 배열에 요소가 들어오지만, 이상하게도 길이가 0으로 찍히는, 즉 요소가 있는디 요소가 없다고 하는 이상한 현상이 발견되고.. 2024. 12. 27.
241226 TIL - 익명 함수 개인과제) 오늘 만난 문제매개변수가 필요한 함수 A를 인자로 받는 함수 B에서 함수 A에 매개변수를 어떻게 넣을 수 있을까?! 이벤트리스너의 콜백 함수로 타워를 설치하는 함수를 넣으려는 와중, 저 함수에 필요한 매개변수를 어떻게 넣어야하는지에 대해 고민이 되기 시작했다!! 만약 아래처럼, buyBlackButton.addEventListener("click", placeNewTower("pawn", "black")); 이렇게 해버린다면, 함수가 아니라 저 함수를 실행한 return 값이 매개변수에 들어가버리기 때문에, 원하는대로 작동하지 않을 것이고, 그렇다고 매개변수를 활용하지 않자니, 저렇게 세 번 재사용이 불가능한 상황이었다!! 해결 방식을 좀 서치해보고 고민해봤더니 익명 함수 또는 화살표 함수로 .. 2024. 12. 26.
241224 TIL - JSON.parse() JSON.parse()JSON.parse("{}"); // {}JSON.parse("true"); // trueJSON.parse('"foo"'); // "foo"JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]JSON.parse("null"); // nullJSON 문자열을 받아서 매치되는 자바스크립트 값으로 변환함!! 선택적으로 콜백함수 reviver를 받아서 반환할 값을 수정할 수 있다!!기본 구조JSON.parse(text[, reviver])text : JSON으로 변환할 문자열, 유효하지 않을 경우 SyntaxErrorreviver : 반환 전에 값을 변환하기 위한 콜백함수Reviver 주의사항콜백함수가 undefined를 반환하거나, 반환 값이 없으면 .. 2024. 12. 24.
IOCP 겉핡기 - Blocking과 Non-blocking I/O, Multiplexing, IOCP 오늘은 코드 상에서 직접 작동하는 과정을 알아보기보단, 좀 친숙하게 접근해보려 한다!! 뭐하는 넘인지 감을 잡기 위한 겉핡기 공부!! 그 주인공은 IOCP다!!  IOCP는 비동기 입출력 처리 기법의 일종으로, 특히 우리는 서버 개발, 그 중에서도 소켓 프로그래밍을 구현하면서 이 기법을 알게 모르게 활용하게 될 것이다!! 하지만 주인공을 만나보기 전에 알아야할 몇몇 개념들이 있으니, 차근차근 알아보도록 하자구!! 먼저 동기 입출력 방식을 살펴보고, 왜 서버 개발엔 썩 적절하지 않은지 고찰해볼 예정이구, 그 대안으로 비동기 입출력 방식을 알아보고, 그래도 남아있는 미흡한 점에 대해 고민해볼 것이다!! 그리고 이를 보완해주는 오늘의 주인공 IOCP를 알아보며 마무리하는 것이다!!Blocking I/O 동기 .. 2024. 12. 23.
전송 계층 - TCP 중심으로 전송 계층 개요네트워크 계층과 응용 계층 사이에 위치해 둘을 보완하거나 지원해주는 계층!IP의 한계 보완신뢰할 수 없는 통신 Unreliable ProtocolIP는 패킷이 수신지까지 제대로 전송됐다는 보장을 하지 않는다!!당연히 재전송도 해주지 않으며, 패킷이 올바른 순서로 도착할 거란 보장 역시 하지 않는다!!최선형 전달 Best Effort Delivery단어의 의미와 달리 "노오력"만 한다는 뜻... 최선을 다 해보겠으나 보장은 못 해요 ^_^비연결형 통신 Connectionless Protocol송수신 호스트 간에 사전 연결 수립 작업이 없다!!그니까 "나 보낼게?", "그려 보내라~" 이런 약속이 전혀 없고, 그저 패킷을 보내기만 할 뿐임이렇게만 보면 IP를 왜 쓰는 겨 싶겠지만, 신뢰성을 보.. 2024. 12. 20.
241219 TIL - 개인과제04 개인과제) 그 동안 한 작업하루 지나서 쓰는 일기라는....[update] 유저정보 연동 구현 소켓 handshake 단계에서 클라의 localStorage에 uuid 존재하는지 확인, 없으면 새로 발급하고 있으면 기존 아이디 쓰도록 함 [fix] Disconnect 및 highScore 디스플레이 오류 해결 "disconnect" 메세지 수령 시 socket 찾지 못하던 오류 해결 클라 단의 highScore가 재접속 시에만 초기화되던 문제 해결 -> gameStart 시점마다 초기화되도록 수정[+] Redis 끄적이기가장 기본이 되는 get과 set 실습리스트 데이터 넣고 조회하기 위한 lpush, rpush, lrange 등 실습개인과제) 그 동안 만난 문제들1. disconnect 메세지를 어디.. 2024. 12. 20.