프로그래밍 319

[javascript] 올바른 IP 주소인지 확인하는 방법

올바른 IP 주소인지 유효성을 검사하는 간단한 javascript 함수를 소개해 드리겠습니다.IPv4 주소 문자열 형식은 0 ~ 255 사이의 숫자 4개가 점으로 구분되어 있어야만 합니다.다음 isValidIP() 함수는 IP 주소 문자열 "nnn.nnn.nnn.nnn"이 올바른 범위 내 주소로 구성되어 있는지 확인합니다.function isValidIP(ipAddress) { // 문자열이 비어있거나 undefined인 경우 if (!ipAddress) { return false; } // 점으로 구분된 부분들로 분리 const parts = ipAddress.split('.'); // IPv4는 반드시 4개의 부분으로 구성되어야 함 if (parts...

[python] struct.error: char format requires a bytes object of length 1

문제점 및 증상struct.pack() 함수를 bytes 데이터 생성 중, "c"로 한 문자를 입력받아 처리하는 과정에서 다음과 같은 오류가 발생하였습니다.pack('>c', 'C')Traceback (most recent call last): File "", line 1, in pack('>c', 'C')struct.error: char format requires a bytes object of length 1문제 분석파이썬 2.x 버전에서는 "pack('>c', 'C')"와 같은 코드가 문제가 없었으나, 3.x 버전으로 올라오면서 동일한 문장에 대하여 "struct.error: char format requires a bytes object of length 1" 오류가 발생합니다.다음과 ..

[python] 명령줄 인자 분석 - argparse.ArgumentParser

파이썬에서 명령줄 파라미터를 처리하는 방법을 알아겠습니다.일반적으로 가장 많이 사용되는 것은 파이썬에 내장된 argparse 모듈입니다. 본 글에서는 argparse 모듈의 ArgumentParser 클래스를 이용하는 방법에 대하여 알아 보도록 하겠습니다.명령줄 인자(Command-Line Arguments)란?프로그램을 실행할 때 프로그램에 전달하는 추가 정보입니다.다음과 같은 형식으로 프로그램 실행 시, 추가적인 정보를 전달합니다.$ my_app hello world 123위에서는 "hello" "world" "123" 등 3개의 정보를 추가로 전달하여 "my_app"을 실행하게 됩니다.파이썬에서는 sys.argv로 위와 같이 전달된 명령줄 인자를 받아서 처리할 수 있습니다.import sysprin..

[python] TypeError: argument 'data': 'memoryview' object cannot be converted to 'PyBytes'

문제점 및 증상다음과 같이 "fastcrc"를 이용한 간단한 CRC 계산 코드를 작성하였습니다.10 바이트를 그냥 던져서 계산하는 것과, 5바이트씩 나누어 계산한 결과가 같은지 확인하는 예시입니다.메모리 뷰를 이용한 것은 대량 메모리에 대한 CRC 계산을 위하여, 전체 메모리를 복사하지 않도록 하기 위해서 였습니다.from fastcrc import crc16data = b'1234567890'crc = crc16.kermit(data)print(f'crc16 (1) = {crc:04X}')mv_data = memoryview(data)temp_crc = 0temp_crc = crc16.kermit(mv_data[0:5]), temp_crc)temp_crc = crc16.kermit(mv_data[5:]..

[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..

728x90