- [ 언어·프레임워크/Node.js ][Node.js][TROUBLESHOOTING] 객체에 엉뚱한 속성이???2024-04-19 11:33:141. 객체에 엉뚱한 속성이???구동 중인 Node.js로 작성한 배치 서버에서 DB에 저장한 값이 간헐적으로 비정상적인 경우가 발견되었다. 콘솔에 에러 로그를 찍어 보았더니 다음과 같았다.YouError: WHERE parameter "apmac_id" has invalid "undefined" value이 문제의 특이한 점은 정상적인 객체가 전달되다가 간헐적으로 이러한 에러가 발생한다는 것이다. 2. const 사용을 잊지 말자!해당 속성이 없다는 에러가 발생하는 경우에 어떤 데이터가 오는지 콘솔에 찍어보았다. 정상적인 경우와 비정상적인 경우의 예는 아래와 같다.{ apmac_id: 1, count: 92 } // 정상{ fromAP_id: 92, toAP_id: 89, count: 6 } // 비정상..
- [ CS/Linux ][Linux] 생활코딩 리눅스 : 파일 찾기(locate, find), 백그라운드 실행(ctrl+z, jobs, fg), 항상 실행(daemon, service), 정기적 실행(cron)2024-04-15 10:41:201. locate✔️ 출처 : https://www.opentutorials.org/course/2598/142121.1. 설치locate 패키지보다 mlocate 패키지가 updatedb 작업이 빠르기 때문에 mlocate를 설치한다.root@(생략):/# sudo apt-get -y install mlocate😉 Mac OS의 경우 설치가 필요 없다. 1.2. updatedblocate 명령어는 실제 파일을 찾는 것이 아니라 파일 목록 데이터베이스(mlocate)에서 찾는다. 따라서 빠른 검색 속도를 제공하지만 최신의 정보가 아닐 수 있다(udatedb 작업은 크론에 등록되어 있어 매일 새벽에 자동으로 실행됨). 아래 명령어를 이용해 mlocate.db에 파일 정보를 저장한다. mlocate의 경우..
- [ 언어·프레임워크/JavaScript ][JavaScript] ESModule 사용시 발생하는 net::err_aborted 404 (not found) 에러2024-04-14 21:33:061. ESModule 사용 후 발생한 net::err_aborted 404 (not found) 에러 타입 스크립트를 사용한 프로젝트에서 ESModule을 사용해 불러오기를 하였는데 [그림 1]과 같은 에러가 발생했다. 2. 모듈의 확장자까지 작성해야 한다! 아래의 코드와 같이 app.ts 파일에 new 키워드로 클래스의 인스턴스를 생성했다. new ProjectInput(); app.ts에는 ProjectInput 클래스가 없으며 components 폴더 내 project-input.ts 파일에 클래스가 존재한다. 따라서 아래와 같이 해당 모듈을 임폴트했다. 이때 직접 작성하지는 않았고 VSCode의 "ctrl + space" 단축키를 이용해 자동 완성하였다. import { ProjectInput }..
- [ 언어·프레임워크/Spring Boot ][Spring Boot] gradle lombok Slf4j로 테스트 코드 로그 찍기2024-04-10 15:52:531. DEBUG CONSOLE에 Slf4j 로그가 찍히지 않는 문제 코딩하는 오후 채널의 "스프링 부트 : 보안"을 실습하던 중에 테스트 코드를 실행했는데 DEBUG CONSOLE에 로그가 찍히지 않는 문제가 있었다. 구글링을 통해 이 문제를 해결했고 해당 영상에 없는 내용이라 이 글을 작성하여 정리하고자 한다. 😉 코딩하는 오후 "스프링 부트 : 보안" 동영상 강의 : https://youtu.be/3CY2pk-Ug10?feature=shared 2. lombok 테스트 코드용 설정 2.1. 의존성 설정 build.gradle 파일의 의존성(dependencies)에 아래 코드를 추가해야 한다. testCompileOnly 'org.projectlombok:lombok' testAnnotationPro..
- [ CS/Linux ][Linux] nohup을 이용한 jar 무중단 배포 및 log 확인 방법2024-04-08 18:15:561. 실행 중인 자바 프로세스 확인root@(생략):/# ps -ef | grep javaroot@(생략):/# kill -9 # 프로세스가 실행중이라면 제거 2. nohup으로 jar 실행(log 생성)root@(생략):/# nohup java -jar 파일명.jar --spring.profiles.active=dev 2>&1 & # "--spring.profiles.active=dev" dev모드로 실하는 옵션, 상황에 따라 생략해도 됨 3. log 실시간 확인root@(생략):/# tail -f nohup.out 4. nohup으로 jar 실행(log 생성하지 않음)root@(생략):/# nohup java -jar 파일명.jar --spring.profiles.active=dev > /dev/n..
- [ etc./... ]티스토리 코드 블록에 yaml 적용 방법2024-04-08 12:59:27티스토리(tistory) 블로그에서도 다양한 코드 블록을 제공하지만 간혹 yaml과 같이 제공되지 않는 형식이 있어 답답하여 검색해 봤고 highlight.js를 알게 되었다. 추가 설치 등과 같은 번거로운 작업이 필요 없고 글 작성할 때 HTML 모드로 변경한 후 pre 태그를 조금 수정하면 된다. 아래 코드는 yaml 형식을 지정한 경우이다. data-ke-language 속성에 highlight.js를 입력하고 class 속성에 yaml을 입력하면 된다. highlight.js를 이용해 티스토리에서 제공하지 않는 다양한 포맷들을 적용할 수 있다. 😉 highlight.js 깃허브 참고 : https://github.com/highlightjs/highlight.js/blob/main/SUPPORTE..
- [ 언어·프레임워크/Spring Boot ][Spring Boot] MySQL 연동 application.yml 설정2024-04-08 12:44:281. MySQL 연동 실패 MySQL 연동 시 application.yml 파일의 database-platform 속성을 MySQLDialect로 작성해야 한다. 이렇게 설정하지 않고 시도했을 때 아래와 같은 에러를 만났었다. org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.dialect.MySQL57Dialect] as strategy [org.hibernate.dialect.Dialect] 2. application.yml 설정 사례 Spring boot에서 MySQL 연동을 위해 application.yml을 다음과 같이 설정해 주었고 연동에 성공했다! # ..
- [ CS/Linux ][Linux] 생활코딩 리눅스 : 다운로드, 파이프, IO Redirection, shell & kernal, shell script2024-04-03 09:10:201. 다운로드✔️ 출처 : https://opentutorials.org/module/1588/125911.1. wgetroot@(생략):/# wget -O image_sample.png https://(이미지 URL)/image_sample.png # image_sample.png라는 파일명으로 현재 경로에 다운로드 1.2. gitroot@(생략):/# git clone https://github.com/facebook/react.git react_src # react_src 폴더에 리액트 소스 코드 클론 2. 파이프✔️ 출처 : https://www.opentutorials.org/course/2598/14190파이프(|)를 이용해 앞선 명령어의 출력을 이용한다.root@(생략..