분류 전체보기 1096

[python] dict 객체 복사의 세 가지 방법 : 참조 복사, 얕은 복사, 깊은 복사

개요Python에서 딕셔너리(dict ; dictionary) 객체를 복사할 때 알아야 할 세 가지 복사 방법을 상호 비교 정리해 둡니다.일반 복사 (참조 복사)등호 ('=') 기호를 통하여 딕셔너리 객체의 참조를 다른 변수에 참조만 그대로 복사합니다.따라서 두 객체는 완전히 동일합니다.original_dict = {'a': 1, 'b': [1, 2, 3]}copy_dict = original_dict# 값 변경 시 원본도 함께 변경됨copy_dict['a'] = 10print(original_dict) # {'a': 10, 'b': [1, 2, 3]}print("원본 딕셔너리 ID:", id(original_dict))print("참조 복사 딕셔너리 ID:", id(ref_copy))print("딕셔..

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

[windows] 샤나 인코더로 영상 잘라내기

샤나 인코더를 활용하여 영상에서 필요한 부분만 잘라내는 방법을 알아 보겠습니다.샤나 인코더를 실행하고, 파일 목록에 원하는 영상을 추가합니다."빠른 설정"에서 영상 및 오디오를 다음과 같이 설정합니다.파일을 선택하고, 오른쪽 팝업 메뉴에서 "구간 설정/잘라내기"를 선택합니다.잘라 내려는 구간에 대하여 (1) "시작시간", (2) "종료시간"을 선택합니다.윗 부분에 (3) "재생/정지"를 눌러 영상을 보면서 구간의 시작 부분에서 멈춘 후 (4), "시작시간"의 (5) "시간 설정" 버튼을 선택하여 시작시간을 설정합니다.마찬가지로 구간의 마지막 부분에서 멈춘 후 (6), "종료시간"의 (7) "시간 설정" 버튼을 선택하여 종료시간을 설정합니다.(8) "설정" 버튼을 눌러, 구간 설정을 마무리 합니다.(9) ..

[windows] 샤나 인코더를 이용하여 영상의 음성만 제거하기

UI가 나름 깔끔하게 정리되어 있는 샤나 인코더를 이용하여 영상에서 음성을 제거하는 방법을 알아 보겠습니다.샤나 인코더를 실행한 모습입니다.우선 음성을 제거할려는 파일을 추가합니다.탐색기 등에서 드래그 앤 드롭으로 추가하거나, (1) "파일 추가" 버튼을 통하여 나타나는 파일 선택 대화상자를 통하여 대상 파일들을 한꺼번에 추가 합니다.(2) "빠른 설정" 버튼을 선택하여 설정창을 열고, 다음과 같이 설정합니다.비디오 코덱은 (3) "스트림 복사"를 선택하고, 음성은 제거할 것이기 때문에 오디오 코덱 부분은 (4) "없음(제외)"를 선택하고, (5) "설정 적용" 버튼을 누릅니다.마지막으로 음성이 제거된 영상 파일이 저장될 폴더를 "폴더변경"을 통하여 지정 후, (6) "인코딩 시작" 버튼을 선택합니다.목..

[linux] 연결된 링크의 속도 확인하는 방법

인터넷과 연결된 링크의 속도를 확인하는 방법들을 정리해 둡니다."ip" 명령현장치에 존재하는 모든 링크 및 어댑터 정보를 확인할 수 있습니니다. ("address" 옵션 이용)nvidia@nvidia-Z790-AORUS-ELITE:~$ ip a1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_l..

Linux,Unix,BSD 2024.06.13

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

728x90