프로그래밍 326

[javascript] 배열을 모두 비우는 방법

개요JavaScript에서 배열을 모두 비우는 여러 가지 방법들을 정리해 둡니다.배열을 모두 비우는 방법JavaScript에서 배열을 모두 비우는 방법은 다음과 같이 여러 가지가 있습니다. 각 방법의 특징과 함께 알아보겠습니다.1. 길이를 0으로 설정let arr = [1, 2, 3, 4, 5];arr.length = 0;이 방법은 가장 효율적이고 빠르며, 원본 배열 참조를 유지합니다.2. 빈 배열 할당let arr = [1, 2, 3, 4, 5];arr = [];새로운 빈 배열을 할당합니다. 원본 배열 참조가 변경됩니다.3. splice() 메소드 사용let arr = [1, 2, 3, 4, 5];let removed = arr.splice(0, arr.length);원본 배열을 수정하며, 제거된 요소..

[js] vite - "Two output files share the same path" 오류 문제

문제점 및 증상VS code 상에서 오류가 있으면 안되는 math.js 파일을 임포트 하는 부분에 오류 표시가 되었습니다. Vite가 실행되어 자동으로 빌드되는 과정중에 다음과 같은 오류가 발생하였습니다.Error: Build failed with 1 error:error: Two output files share the same path but have different contents: node_modules\.vite\deps_temp\ol_math__js.js at failureErrorWithLog (D:\Dev\node\my-demo\node_modules\esbuild\lib\main.js:1575:15) at D:\Dev\node\my-demo\node_modules\e..

[python] LM73 TI 온도센서에서 온도값 읽어오기

개요LM73CIM 칩은 Texas Instruments에서 제조한 디지털 온도 센서입니다. I2C 인터페이스를 사용하여 Raspberry Pi나 다른 마이크로컨트롤러와 통신할 수 있습니다. 본 글에서는 라즈베리 파이에서 I2C로 LM73CIM 칩으로부터 온도값을 읽어오는 방법에 대하여 설명합니다.라즈베리 파이 I2C 활성화하기"raspi-config"를 이용하여 I2C를 활성화하거나, "/boot/firmware/config.txt" 파일에서 다음 설정 부분의 주석을 해제해 주어야 합니다.dtparam=i2c_arm=on"/boot/firmware/config.txt" 파일의 설정을 변경한 후, 라즈베리 파이를 재부팅 합니다.재부팅한 이후에 "/dev" 폴더에 i2c 관련 장치가 표시됩니다.$ ls /d..

[javascript] Intl.DateTimeFormat 클래스 이용 시, 발생한 RangeError

문제점 및 증상현재 시각을 지정한 로케일 및 시간대에 맞게 문자열로 변환하기 위하여 Intl.DateTimeFormat 클래스를 이용하던 중 다음과 같은 오류가 발생하였습니다.$ node demo/locale_datetime_string.js/app/modules/common/Consts.js:503 }).format(date); ^RangeError: Provided date is not in valid range. at DateTimeFormat.__boundformat__ (native) at Object.getCurrentDateTimeString (/home/pi/JDTeckServer/app/modules/common/Con..

[opencv] 종횡비 고정하여 이미지 크기 조정하기

개요이미지의 크기를 조정할 때 일반적으로 cv2.resize() 함수를 이용하게 됩니다.이 때, 이미지의 종횡비를 왜곡하지 않고 테두리를 추가는 방법들을 살펴 보겠습니다.일반적인 이미지 복사무작위 이미지를 HD(1280 X 720)으로 크기를 조정할 때 다음과 같이 종횡비를 고정하여 만들 수 있습니다. target_height, target_width = 720, 1280 img_org = cv2.imdecode(np.fromfile(full_image_filename, dtype=np.uint8), cv2.IMREAD_UNCHANGED) img_height, img_width = img_org.shape[:2] height_scale, width_scale = (img_height..

[Python] numpy 이용 시 발생한 'ImportError: libopenblas.so.0: cannot open shared object file' 오류

문제점 및 증상개발 환경SBC : Beaglebone blackOS : debianPython : 3.9.2"numpy" 패키지가 필수라 설치하고 실행하였더니 다음과 같은 오류가 발생하였습니다.Traceback (most recent call last): File "/home/debian/.local/lib/python3.9/site-packages/numpy/core/__init__.py", line 24, in from . import multiarray File "/home/debian/.local/lib/python3.9/site-packages/numpy/core/multiarray.py", line 10, in from . import overrides File "/home..

[python] 경로 문자열에서 파일명, 확장자 분리하기

개요전체 경로 문자열에서 폴더명, 파일명, 확장자명을 각각 분리하는 방법을 알아 보겠습니다.폴더명다음과 같이 os.path.dirname() 함수를 이용하면 전체 경로 문자열에서 폴더명을 손쉽게 얻을 수 있습니다.from os import pathfile_path = '/path/to/filename.ext'dirname = path.dirname(file_path)print(f'{dirname=}')# dirname='/path/to'파일명 (확장자 포함)다음과 같이 os.path.basename() 함수를 이용하면 전체 경로 문자열에서 확장자가 포함된 파일명을 손쉽게 얻을 수 있습니다.from os import pathfile_path = '/path/to/filename.ext'basename = ..

[python] RGBA 형식의 이미지 찾기

개요인터넷에서 수집한 자료 중에 RGBA 형식의 이미지가 확장자만 "*.jpg"로 저장되어 있는 경우가 종종 있습니다.내부적으로 이미지 처리를 한 후에 cv2.imwrite() 함수를 이용하여 JPG로 저장할 경우 다음과 같이 "RGBA" 형식의 이미지는 JPG로 저장할 수 없다는 오류가 발생합니다.... File "/usr/local/lib/python3.8/dist-packages/PIL/Image.py", line 2240, in save save_handler(self, fp, filename) File "/usr/local/lib/python3.8/dist-packages/PIL/JpegImagePlugin.py", line 631, in _save raise OSError(f"c..

[python] 아스키가 아닌 문자가 포함된 이미지 파일 로딩하기 (imread)

문제점 및 증상다음과 같이 OpenCV를 이용하여 이미지를 로딩하는데 파일 이름이 한글이 포함되어 있을 경우 다음과 같은 WARN이 발생하면서 이미지를 로딩하지 못하였습니다.images_path='D:\\Dev\\Python\\python-test\\cv\\images'image_file='D:\\Dev\\Python\\python-test\\cv\\images\\01비교-1.jpg'[ WARN:0@0.014] global D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp (239) cv::findDecoder imread_('D:\Dev\Python\python-test\cv\images\01?해결 방법다음과 같이 "n..

[python] netmask 문자열로 CIDR 형식의 비트 개수를 반환하는 방법

개요netmask 문자열(예: "255.255.255.0")을 CIDR 형식의 비트 개수(접두사 길이)를 얻는 방법을 정리해 둡니다.CIDR 표기법이란?CIDR(Classless Inter-Domain Routing) 형식은 IP 주소와 네트워크 마스크를 표현하는 간결하고 유연한 방법입니다. CIDR 표기법의 주요 특징은 다음과 같습니다.IP 주소와 접두사 길이로 구성: 예를 들어, 192.168.0.0/24 형태로 표현합니다.접두사 길이: '/' 뒤의 숫자(0-32)로, 네트워크 부분의 비트 수를 나타냅니다.유연한 네트워크 구분: 기존의 클래스 기반 주소 체계와 달리, 네트워크와 호스트 부분을 유연하게 정의할 수 있습니다.효율적인 IP 주소 관리: 네트워크 주소 자원을 절약하고 효율적으로 할당할 수 있..

728x90