본문 바로가기
-1을 uint에 넣어서 형변환을 하면 어떻게 될까? 아래와 같은 코드가 있다.  int testA = -1; var testB = (uint)testA; 이때 testB는 뭐가 될까?? uint니까 1이될까??  땡이다. 위의 코드에 로그를 달아 찍어보자.   int testA = -1; var testB = (uint)testA; Console.WriteLine("testA : " + testA); Console.WriteLine("testB : " + testB + ", uint max =" + uint.MaxValue +", if(testB == uint.maxValue)" + (testB == uint.MaxValue)); 흥미롭게도 testB는 예상외의 숫자가 되었다.  4294967295가 의미하는건 뭘까? 바로 uint.maxvalue 값이다.. 2024. 5. 7.
node version 업그레이드 하기! 어느날 aws sdk를 사용하려면 노드 버전 16으로 업그레이드 하라는 메시지를 보았다. 로그 메시지The AWS SDK for JavaScript (v3) versions released without Node.js 14.x support on or after May 1, 2024 may continue to work on Node.js 14.x. This does not imply a continuation of support. You can continue to use older versions of the AWS SDK for JavaScript (v3) released before May 1, 2024 with Node.js 14.x. " 14 버전을 쓸수는 있는데, 업그레이드나 지원은 없을꺼니.. 2024. 5. 7.
자바스크립트 클래스 정의 // 클래스 선언문 class Pserson { }; // 익명 클래스 표현문 const Person = class { }; // 기명 클래스 표현식 const Person = class MyCalss { }; * 클래스는 일급객체로 다음과 같은 특징이 있음. 그럼 일급객체란 무엇일까?? - 무명의 리터럴로 생성 할 수 있다. 즉 런타임에 생성이 가능라다. - 변수나 자료구조(객체, 배열등)에 저장할 수 있다 - 함수의 매개변수에 전달할 수 있다. - 함수의 반환값으로 사용할 수 있다. 2024. 5. 3.
[DB] Transaction Isolation Levels과 확인 하기 Transaction Isolation Levels   Transaction Isolation Levels 란 무엇인가? - 동시에 여러 트랜잭션이 처리될 때 각 트랜잭션이 얼마나 서로 고립되어 있는가를 나타내는 수준이다. - 표의 아래로 내려갈수록 고립 정도가 높아지고, 성능저하가 야기 된다. READ UNCOMMITTED (level 0)READ COMMITTEDREPEATABLE READSERIALIZABLE※ mysql innodb의 기본은  REPEATABLE READ 이다. ( The default isolation level for InnoDB is REPEATABLE READ.)ISOLATION LEVEL 확인  쿼리SELECT @@global.tx_isolation;결과  이제 각 레벨에.. 2024. 5. 2.
[Dead lock]이 발생했다!!!!!! 개발 서버에서 갑자기 deadlock 메시지가 날라와 확인해 보았다. [에러 메시지]Error: ER_LOCK_DEADLOCK: Deadlock found when trying to get lock; try restarting transaction... 에러 내용을 자세히 적을 수는 없지만 데드락이 발생하였고, 무슨 내용인지 자세하게 확인하기 위해 mysql에 아래의 쿼리를 날려 내용을 확인 해봤다. [상태 확인 쿼리]SHOW ENGINE INNODB STATUS;위의 쿼리를 적으면 어디서 데드락이 발생했는지, 어떤 트랜잭션이 문제가 됐는지 설명이 쭈욱 나온다.  *** (1) TRANSACTION:  TRANSACTION 60930153, ACTIVE 0 sec inserting   mysql tabl.. 2024. 5. 2.
winston 로거 만들기 'use strict'const winston = require('winston');/*const winstonDaily = require('winston-daily-rotate-file');*/ // 데일리 로그 사용시const fs = require('fs');const path = require('path');/** * 게임 패킷 로거 * @type {gamePacketLogger} */const gamePacketLogger = class { constructor(_serverName, _seq) { // 로그 남길 서버 이름 this.servername = _serverName; // 경로 설정 this.dir = path.. 2024. 4. 30.