분류 전체보기
-
[면접 준비] Node.js: single-threaded, non-blocking, asynchronous 기반 JS 런타임면접 준비 2024. 7. 29. 09:43
학습 키워드: Node.js 2024-07-29 면접 카타 질문Node.js는 single-threaded 기반 JS 런타임입니다. 이에 대해 아는 만큼 설명해주세요: 'Node.js는 single-threaded 기반 JS 런타임이다' 라는 말은 Node.js를 이용하여 작성된 JS 코드는 단일 main thread 위에서 동작한다는 뜻입니다. Thread가 하나이기 때문에 개발 시 동시성 문제에 대해 고민할 필요가 없어 코드 작성이 쉬워지는 장점이 생깁니다. Node.js는 non-blocking, asynchronous 기반 JS 런타임입니다. 이에 대해 아는 만큼 설명해주세요: Node.js는 이벤트 루프라는 것을 통해 I/O 작업을 시스템 커널에 넘겨 async / non-blocking 방식으..
-
[TIL] TypeScript 배우기 (짧) - 1TIL-sparta 2024. 7. 28. 17:58
> TypeScript 1주차 강의를 듣고 핵심 내용을 정리해보았다. 학습 키워드: TypeScript TypeScript1) What is it?: TypeScript는 JavaScript의 여러가지 단점을 보완하기 위해 나타난 정적 타입 언어다. JS의 경우 var, let, const로 변수를 생성하는데, 변수와 상수의 구분만 있고 변수 타입을 컴파일 타임에서 따로 체크해주지 않기 때문에 함수의 인자를 잘 못 넘겨주는 식의 실수를 할 여지가 있고, 코드 작성 상태에 따라 실수했을 때 버그 위치를 찾는 것이 번거로워질 수 있다. 또한, OOP 방식으로 코드를 작성할 때 protected나 private 같은 접근 제어자가 따로 존재하지 않기 때문에 외부로부터 class의 field property를 ..
-
LeetCode) 1211. Queries Quality and Percentage 풀이TIL-sparta 2024. 7. 28. 05:41
학습 키워드: 키워드1, 키워드2, ..., 키워드n 1211. Queries Quality and Percentage1) 문제 설명 요약 (원문은 링크 참고):https://leetcode.com/problems/queries-quality-and-percentage/description/ 요약: 쿼리의 이름과 결과, position 값과 rating 값을 담은 Queries 테이블에서 쿼리의 quality와 poor_query_percentage를 계산하는 문제다. quality는 쿼리의 rating / position 값의 평균이며, poor_query_quality는 rating 값이 3 미만인 쿼리 수의 비율이다. 조건: query_name은 중복이 가능하며, quality와 poor_query..
-
스파르타) The Last Rollback (D-32, Node.js 게임 서버 최종 프로젝트)TIL-sparta 2024. 7. 26. 20:04
> 과제 진행 간 완료한 사항 및 문제점과 해결 과정을 정리해보았다. 학습 키워드: Protobuf, Node.js, C#, Unity, TCP, serialize, deserialize, enum 1. 완료한 과제 진행 사항1) ~기능 구현 완료: 35 update 통지 패킷 구조 추가 by donkim1212 · Pull Request #36 · eliotjang/the-last-rollback-server관련 Issue close #35 작업 내용 #35 에서 명시한 작업 완료 주요 변경 사항 클라이언트의 핸들러가 받는 두 번째 인자를 IMessage 타입으로 원상 복구 변경 전: 변경 후: sendNotification 기능 활성화github.comNotification 패킷 구조 추가 및 패킷 ..
-
[면접 준비] 깊은 복사, 얕은 복사면접 준비 2024. 7. 26. 09:26
학습 키워드: deep copy, shallow copy 2024-07-25 면접 카타 질문깊은 복사와 얕은 복사의 차이는 무엇이고 JS에서 각각을 구현하는 방법은 어떻게 되는지 설명해주세요: 얕은 복사는 각 값의 주소를 복사하는 것을 말하고, 깊은 복사는 복사하는 값을 새로운 메모리에 할당하여 완벽하게 별개의 객체를 만들어내는 것을 말합니다. JS에서는 JSON.stringify()로 원본 객체를 문자열로 치환한 뒤 다시 JSON.parse()를 사용하여 전혀 다른 메모리를 참조하는 깊은 복사가 완료된 객체를 얻을 수 있습니다. 얕은 복사의 경우 단순하게 objA = objB의 구조로 복사하면 되는데, nested object의 경우 spread 문법을 사용하면 객체의 키는 별도로, 키의 값은 얕은 복..
-
스파르타) The Last Rollback (D-33, Node.js 게임 서버 최종 프로젝트)TIL-sparta 2024. 7. 25. 21:49
> 과제 진행 간 완료한 사항 및 문제점과 해결 과정을 정리해보았다.학습 키워드: Protobuf, C# 1. 과제 진행 간 알게된 것1) 프로토콜 버퍼 관련 사항: 바로 어제자 TIL의 2. 문제점 1) 에서 작성한 내용인데, 어제는 원인이 명확하지 않아서 두 번 직렬화 하고 역직렬화 하는 과정에서 문제가 생긴다고 판단했으나, 팀원과 상의해본 결과 역직렬화 로직 자체에서는 태그를 잘 못 인식할 가능성이 없다고 결론이 내려졌다. 이상하다고 생각되어 어제와 동일한 구조를 만든 뒤 테스트 해보니 실제로 다시 역직렬화가 잘 되는 것을 확인했다. 분명 ResponsePacket 구조도 전부 일치했고 서버측 직렬화 및 역직렬화가 정상적으로 동작하는 것을 console로 찍어서 확인 했고, 매핑된 패킷 번호 또한 ..