
Macbook M1에 Visual Studio Code + Jupyter Notebook 개발 환경을 만드는 과정을 다룹니다. 2022. 4. 3 - 최초작성 1. 다음 포스트대로 Macbook M1에 Miniforge를 설치하여 Python 개발환경을 만든 후, Visual Studio Code와 연동하는 작업까지 진행합니다. Miniforge는 Anaconda, Miniconda처럼 Python 가상 환경을 만들어 주는 역할을 하는 것입니다. Macbook M1에 Miniforge 설치하여 Visual Studio Code와 연동하기 https://webnautes.tistory.com/2101 2. 다음 명령으로 현재 Visual Studio Code에서 사용중인 Python 가상환경에 Jupyte..
파이썬의 TCP 소켓을 사용하여 웹캠에서 캡쳐한 이미지를 전송하는 서버와 클라이언트를 간단히 만들었습니다. 웹캠으로부터 이미지 캡쳐는 OpenCV를 사용하였습니다. 서버에는 두 종류의 쓰레드를 생성합니다. 웹캠으로부터 캡처한 이미지를 큐에 삽입하는 쓰레드와 클라이언트가 접속하면 큐에서 이미지를 꺼내어 클라이언트에 전송하는 쓰레드입니다. 서버에서 이미지를 전송하기 전에 넘파이 배열을 압축한 후, 최종적으로 String으로 변환해야 하고 클라이언트에서는 수신된 String 데이터를 넘파이 배열로 변환하여 화면에 보여줍니다. 서버 프로그램을 실행 후, 웹캠 영상이 화면에 보여지면 클라이언트 프로그램을 실행하세요. 여러 개 실행가능한데 몇 개 까지 가능한지 확인 안해봤습니다. 파이썬에서 소켓 사용하는 방법에 대..

파이썬으로 작성한 TCP 서버/클라이언트 소켓 예제코드입니다. 클라이언트가 서버에 접속하여 통신이 시작되는 방식입니다. 1. TCP 소켓 2. 간단한 에코 서버, 클라이언트 예제 3. 쓰레드를 사용한 에코 서버와 클라이언트 예제 최초작성 2019. 9. 27 최종작성 2023. 7. 23 1. TCP 소켓 파이썬에서 TCP(Transmission Control Protocol)를 사용하려면 소켓 타입을 socket.SOCK_STREAM으로 지정하고 socket.socket 함수를 사용하여 소켓 객체를 생성하면 됩니다. TCP의 장점은 다음과 같습니다. 1. 수신자가 전달 받지 못한 패킷을 발신자가 감지하여 재전송하기 때문에 신뢰성이 높습니다. 2. 발신자가 전송한 순서대로 수신자에서 읽게 됩니다. UDP..

Google Cloud Speech-to-Text API 서비스 계정 키를 발급받아서 샘플 코드를 실행하는 방법을 설명합니다. 결제 신용카드를 등록해야 할 수 있습니다. 2018. 9. 21 최초작성 2020. 11. 3 최종작성 1. Cloud Speech API 키 발급 받기 2. Cloud SDK 설치 3. 파이썬 예제 테스트 해보기 4. 참고 1. Cloud Speech API 키 발급 받기 1. 다음 사이트에 접속하여 프로젝트를 생성 후, Cloud Speech API를 위한 API 키를 발급받아야 합니다. https://console.cloud.google.com/apis/dashboard 2. 오른쪽 상단에 보이는 프로젝트 만들기를 선택합니다. 3. 프로젝트 이름을 적어주고 만들기를 선택합니..
Python 패키지를 설치하다가 Protobuf compiler not found 에러가 발생한 경우 해결방법입니다. 2023. 2. 22 최초작성 https://github.com/protocolbuffers/protobuf/releases 에서 이름에 win64.zip가 붙은 파일을 다운받아서 적당한 곳에 압축을 풀어주고 해당 폴더안에 있는 bin 폴더의 경로를 시스템 변수 PATH에 추가해줍니다. 글 작성 시점에서 다운로드 받은 최신 릴리즈 버전은 protoc-22.0-win64.zip 입니다. 주의할점은 명령 프롬프트창을 새로 열어야 추가한 PATH 가 반영됩니다. 참고 https://github.com/nanopb/nanopb/issues/713
Conda 환경에서 pip와 conda를 사용하여 패키지 설치시 어디에 설치되는지 확인해보았습니다. 윈도우 10에 설치된 Miniconda에서 확인한 결과입니다. 2022. 4. 13 Miniconda에 다음 두 개의 가상환경 base와 newenv가 생성되어 있는 상태입니다. 각각 가상환경을 위한 파일들이 있는 위치가 옆에 표시되어 있습니다. (base) C:\Users\webnautes>conda env list # conda environments: # base * C:\Users\webnautes\miniconda3 newenv C:\Users\webnautes\miniconda3\envs\newenv 두 개의 명령 프롬프트에 하나는 base 다른 하나는 newenv로 가상환경을 변경해두고 테스트..
경로를 문자열로 입력했더니 다음부분에서 에러가 났습니다. str객체에는 stem속성이 없다는 에러입니다. exp_name = image_file_path.stem 2023. 2. 25 최초작성 다음처럼 경로에 pathlib를 사용하면 해결됩니다. image_file_path = pathlib.Path(r’C:\Users\webnautes\Desktop\images\test.jpg’)
특정 문자만 사용한 문자열인지 검사하는 파이선 예제 코드입니다. 2023. 1. 31 최초작성 import re str = 'az09_.-:' ret = re.match('[a-zA-Z0-9_.\-:]+', str) # print(ret) # print(ret.group()) if ret != None and str == ret.group(): print('올바르게 사용했습니다.') else: print('정규식에 있는 문자만 사용하세요 : [a-zA-Z0-9_.\-:]+') str = '안녕' ret = re.match('[a-zA-Z0-9_.\-:]+', str) if ret != None and str == ret.group(): print('올바르게 사용했습니다.') else: print('정규식..
파이썬의 딕셔너리를 문자열로 바꾸는 방법을 다루고 있습니다. 2023. 3.12 최초작성 파이썬의 장점은 거의 모든 것을 print로 출력해서 확인해볼 수 있다는 겁니다. 딕셔너리도 자주 출력해보곤 했었는데 이번엔 터미널이 아닌 이미지 위에다가 출력해볼 필요가 생겨서 해보니 안되네요. 출력시 print문을 사용하는게 아니라면 문자열로 바꿔야 되는 구나 싶더라구요. 찾아보니 아래 링크에서 딕셔너리를 문자열로 바꾸는 3가지 방법을 소개합니다. 처음 2가지 방법은 간단한데 세번째 방법은 for문을 사용하여 딕셔너리 아이템을 하나씩 출력하는 방법입니다. 커스텀 스타일로 딕셔너리를 출력해볼게 아니면 처음 2가지 방법으로 충분하네요. https://favtutor.com/blogs/convert-dict-to-st..
파이썬 딕셔너러의 vaule별 개수를 세는 예제 코드입니다. 2023. 1. 28 최초 작성 from collections import Counter # 딕셔너리 생성. 3가지 종류의 값을 가집니다. dict_a = {1:False, 2:True, 3:False, 4:None, 5:True, 6:False} print(Counter(dict_a.values())) # Counter({False: 3, True: 2, None: 1}) print(Counter(dict_a.values())[True]) # 2 print(Counter(dict_a.values())[False]) # 3 print(Counter(dict_a.values())[None]) # 1 참고 https://stackoverflow.c..