전체 글(100)
-
[MySQL] AUTO_INCREMENT 값 순차적 일관성 검증
개요비즈니스 로직 작성 중 bulk insert 이후 모든 레코드에 대해 update를 수행해야 할 필요가 생겼다.개별 데이터에 대해 단일 쿼리문을 실행하면 로직 작성은 편하겠으나 성능이 떨어질 거 같았다. 따라서 Bulk Insert 이후에 id값을 활용하여 update를 해야하는데 여기서 삽입된 레코드들에 대한 Auto increment의 값이 과연 순차적임을 보장하는지에 대한 궁금증에서 비롯된 실험을 공유하고자 한다. 우선 필자의 MySQL은 별도의 튜닝없이 default setting만 가지며 엔진은 InnoDB 를 사용했음을 고려하고 봐줬으면 한다. MySQL의 Auto increment를 핸들링하는 세가지 방법https://dev.mysql.com/doc/refman/8.4/en/innodb..
2024.12.31 -
[VSCode] Typescript 단일 파일 디버깅 하는 법
개요npm 명령어가 아닌 간단하게 단일 파일에 대해서만 디버깅하고 싶은 상황이 생겨 타입스크립트 단일 파일에 대해 디버깅하는 법을 알아본다. 1. VSCode 파일 생성launch.json 파일을 루트 경로의 .vscode 하위에 생성하고 아래와 같이 추가한다.{ "name": "Launch Some TS File", "type": "node", "request": "launch", "runtimeArgs": [ "-r", "ts-node/register" ], "program": "${your_file_path}" }program에 추가하는 경로는 루트 경로부터 명시한다.ex) src/user/user.service.ts 추가 후 name에 해당하는 디버깅을 실행하면 ..
2024.12.27 -
[MySQL] 대화형 연결과 비대화형 연결(interactive connection, noninteractive connection), Packet out of order 에러 해결
개요 Node환경에서 mysql 라이브러리를 사용하여 트랜잭션을 수행할 때 발생한 에러에 대해 알아보고 해결방법에 대해 알아본다. 문제 상황Mysql 라이브러리를 사용하는데 디버깅을 할때마다 Packet out of order 에러가 발생했다.뿐만 아니라 로직이 조금 오래 걸리는 비즈니스 로직을 작성했는데 디버깅 과정에 있지 않더라도 에러가 발생하였다.라이브러리에서 throw하는 에러의 message 내용은 다음과 같았다.Cannot enqueue Query after fatal error. 사용중인 라이브러리의 커넥션이 실행되는 부분에는 다음과 같이 설정돼있었다.connection.on('connection', function (connection) { connection.query('SET SES..
2024.12.04 -
[Typescript] CryptoJS 사용기
개요API 사용을 위해 요청 헤더 조건으로 crypto js를 통한 암호화가 필요했다.기존의 javascript 코드로 작성된 레퍼런스는 많았으나 '@types/crypto-js'를 사용하게 되면 CommonJS 모듈 방식을 사용하지 않기 때문에 라이브러리 분석을 통해 기존 코드를 타입스크립트에 호환되게끔 치환한다.(GPT를 사용하면 편하게 변환해줄 수 있긴 하겠다만 사용을 지양하는 편이라..크흠) 과정기본적으로 알아야 할 지식은 Crypto JS가 어떤 과정을 통해 암호화 하는가이다.1. SHA256, 512, HMAC 등 여러가지 암호화 알고리즘을 통해 해쉬값을 생성함2. 생성해낸 해쉬값을 32비트의 고정 길이 단어 배열을 생성해낸다.3. 생성된 단어배열을 인코딩(UTF-8, UTF-16, HEX)을..
2024.12.01 -
YOLO 모델 학습률 높이기 프로젝트
개요어떻게 저떻게 정말 얕은 지식으로 AI와 관련된 것을 기반지식도 없이 해나가고 있는 상황에서 결국에 직면하게 될 문제를 맞이하게 되었다.결국 모델의 성능을 높이기 위한 고민은 필수불가결적인데 내가 간과하거나 혹은 미처 알지 못했던 모델의 성능 지표를 분석하고 개선할 수 있는 방법에 대해 정리해보겠다. YOLO 모델 학습 중 맞이한 문제점처음에 아무것도 모를 때는 몇백개의 데이터셋만으로도 모델이 object detection을 수행하는 것을 보고 정말 재밌다 생각했으나 object를 인식하지 못하는 경우도 있으며 같은 영역내 인식한 ROI가 여러개가 생긴다던지 정확도가 떨어진다던지 하는 문제가 발생하였다.그래서 모델 학습 후 생성되는 다양한 학습 지표를 분석하면서 모델 성능 개선법에 대해 찾아보게 ..
2024.12.01 -
[VSCode] Breakpoint binding 안됨 문제 해결
간혹 VS Code에서 개발할 때 break point가 회색으로만 돼있고 빨간색으로 전환되지 않는 경우가 있다.필자의 경우 Typescript 기반의 node 프로젝트에서 해당 이슈를 겪었고 쉽게 해결하였다. typescript 공식 사이트의 tsconfig 관련 문서에서 설명하는 "sourceMap" 옵션에 대한 설명이다.요약하자면 디버깅을 가능케하고 기타 다른 툴들이 typescript 파일을 추적할 때 쓰이는 용도의 파일이라는 것이다. 따라서 tsconfig.json 파일에 다음의 속성을 명시해주어야 한다.# tsconfig.json{ "compilerOptions":{ ... # other settings sourceMap : true }} 출처 : https://www.t..
2024.11.30