본문 바로가기

개발 이야기67

[파이썬 async] 비동기 프로그래밍 요약 노트 비동기 프로그래밍 요약 노트1. 비동기 프로그래밍의 목적성능 향상 및 자원 활용 최적화.I/O 바운드 작업(네트워크 요청, 파일 입출력 등)에서 대기 시간 동안 다른 작업을 수행.사용자 경험 개선과 서비스의 확장성 증대.2. 주요 구성 요소Event Loop: 비동기 작업을 관리하고 실행 순서를 제어하는 핵심 메커니즘.Coroutine: async def로 정의된 비동기 함수. await을 사용하여 비동기 실행을 기다림.Task: 코루틴을 래핑하고, 실행을 관리하는 객체. 여러 비동기 작업을 동시에 실행할 수 있게 함.Future: 미래에 완료될 비동기 작업의 결과를 나타내는 객체. 작업의 완료를 기다리고 결과를 검색.3. 비동기 작업 실행Async/Await: 비동기 함수 .. 2024. 4. 24.
[파이썬] 제너레이터를 활용한 효율적인 텍스트 처리 방법 안녕하세요! 오늘은 파이썬에서 제너레이터를 사용하여 텍스트를 효율적으로 처리하는 방법에 대해 알아보겠습니다. 제너레이터는 큰 텍스트 데이터를 다룰 때 메모리 사용량을 줄이고 성능을 향상시킬 수 있는 유용한 도구랍니다. 제너레이터란? 제너레이터는 파이썬에서 반복 가능한 객체를 생성하는 함수입니다. 일반적인 함수는 값을 반환하고 종료되지만, 제너레이터 함수는 yield 키워드로 값을 반환하고 함수의 상태를 유지합니다. 이를 통해 필요한 값만 그때그때 생성하므로 메모리 효율성이 높아집니다. 제너레이터 활용 예제 def sample(): yield "서울은" yield "대한민국의" yield "수도" yield "입니다." # (a) 간단한 join 연산자 사용 text = ''.join(sample()) p.. 2024. 4. 15.
[Python] 우선순위 큐(Priority Queue) 활용법 - heapq 모듈과 예제 코드 살펴보기 우선순위 큐(Priority Queue)는 일반적인 큐(Queue)와 달리, 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나오는 자료구조입니다. 우선순위 큐는 작업 스케줄링, 네트워크 트래픽 제어, 이벤트 처리와 같이 작업을 우선순위에 따라 처리해야 할 때 유용합니다. 특히, 실시간 시스템이나 대기열 관리 시스템에서 많이 사용됩니다.그래프 알고리즘 등 다양한 분야에서 활용됩니다. 파이썬에서는 heapq 모듈을 사용하여 우선순위 큐를 간단하게 구현할 수 있답니다. 우선순위 큐 구현의 장점 파이썬의 heapq 모듈을 사용한 우선순위 큐 구현의 장점은 다음과 같습니다: 간단한 구현: heapq 모듈을 사용하여 몇 줄의 코드로 우선순위 큐를 구현할 수 있습니다. 효율적인 연산: 삽입과 삭제 연산이 O(.. 2024. 4. 15.
괜찮은 CSS 기반 채팅 인터페이스 디자인 (HTML & SCSS) See the Pen Daily UI #013 | Direct Messaging by Mubanga (@mubangadv) on CodePen. 괜찮은 채팅 인터페이스를 찾아 헤매다가 마음에 드는 채팅 인터페이스 디자인을 발견해 짧게 소개드립니다. 이 디자인은 마블 시네마틱 유니버스의 인기 있는 캐릭터들과의 가상 대화를 상상하며, 사용자 경험을 높이는 데 중점을 둔 CSS 기반 UI입니다. 구조적 및 기술적 설명 이 인터페이스는 HTML과 CSS로 구성되어 있으며, SCSS를 사용하여 가독성과 유지보수를 용이하게 합니다. 각 채팅 연락처와 메시지는 .contact 및 .message 클래스를 사용하여 스타일링됩니다. 연락처 사진은 .pic 클래스와 각 인물의 고유한 클래스 (예: .stark)로 정의된 .. 2024. 1. 2.
git push 했을 때 발생하는 오류 해결_fail to push some refs to... git push -u origin main error: failed to push some refs to ' {github repository URL} hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forward.. 2023. 12. 29.
새로운 프로젝트를 Git과 함께 시작하는 방법! 아주 간단! 새로운 프로젝트를 위해 Git을 초기화하고, 로컬 저장소에서 원격 repository에 프로젝트를 올리는 과정을 정리해봤습니다. Git을 시작하는 분이라면 꼭 참고해보세요!! 프로젝트 시작: Git 초기화 및 원격 Repository 연결 1. 프로젝트 디렉토리 생성 및 이동: 프로젝트 폴더를 만들고 만든 폴더로 이동합니다. .gitignore 파일을 생성하여 git 에 올리지 않을 파일, 폴더를 추가합니다. 주로 가상환경 파일, 환경, 보안 파일은 올리지 않습니다. 2. Git 초기화: 새로운 Git 저장소를 현재 디렉토리에서 초기화합니다. git init 3. 파일 추가 및 커밋: 프로젝트 파일을 작성 또는 추가합니다. 모든 파일을 스테이징 영역에 추가합니다. git add . 첫 커밋을 만듭니다. .. 2023. 12. 29.
간결한 Git 일상 작업 흐름 가이드 회사 PC와 집에 있는 MAC을 오가며 작업을 하고있습니다. 두 개의 디바이스에서 혼자 Git으로 버전컨트롤을 하는 워크플로우를 간략하게 정리해봤습니다. Git 초보라면 읽어보시면 분명 도움이 되실 거라 생각해요! 새 디바이스에서 작업 시작 (원격 최신 상태 동기화) 원격 저장소의 최신 상태를 로컬로 가져오기 git pull origin main (혹은 대상 브랜치명) 작업 시작 후에 로컬에서 변경한 내용을 원격 저장소에 반영하는 과정은 다음과 같습니다: 작업 시작 후 (로컬 변경 사항을 원격에 반영) 작업 파일 확인 git status (변경된 파일 확인) 변경 사항 추가 git add . (모든 변경사항 추가) 또는 git add [파일명] (특정 파일만 추가) 커밋 만들기 git commit -m .. 2023. 12. 29.
[Python] No module named 'pip' 고치기 새 pip version이 나왔다니 문제 예방 차원에서 upgrade를 해야지하고 pip install --upgrade pip 명령어로 업그레이드 후 다시 업그레이드를 요청하니 No module named 'pip' 에러가 발생했을 때 고치는 방법. 문제 발생 pip 업그레이드 pip install ~로 모듈을 설치하고 나니 아래와 같은 알림 메시지를 보았다. WARNING: You are using pip version 22.0.4; however, version 22.1 is available. You should consider upgrading via the '~\venv\Scripts\python.exe -m pip install --upgrade pip' command. 새 pip versi.. 2023. 12. 29.
원격 개발 환경에서 Streamlit 앱 접근하기 Streamlit은 빠르게 웹 애플리케이션을 개발하고 배포할 수 있는 유용한 도구입니다. 이 글에서는 VS Code로 Remote SSH를 사용하여 워크스테이션에 접속해서 개발을 하고 있는 제 환경을 예로 들어 해결 방법을 알려드립니다. Streamlit은 워크스테이션 로컬 네트워크 기준으로 작동 되니, VS Code에서 접속한 Remote 환경에서는 당연히 접속이 안될 것입니다. 이 문제를 해결하기 위해, 포트포워딩과 방화벽 설정을 변경하여 외부에서도 애플리케이션에 접근할 수 있도록 설정해보겠습니다. 1. 포트포워딩 설정하기 포트포워딩은 라우터가 외부 요청을 내부 네트워크의 특정 IP와 포트로 전달하는 기능입니다. 대부분의 라우터는 관리자 페이지에서 이 설정을 제공합니다. 예를 들어, IPTime 라우.. 2023. 7. 28.
[Streamlit] OSError: [Errno 24] inotify instance limit reached 오류 해결 방법_걱정 노노 개발환경 : Ubuntu 20.4 / Python3.10 / streamlit 1.25.0 Streamlit을 처음 설치하고 나서 명령창에 $ streamlit hello 를 치면 뭔가 나와야 되는데 아래와 같은 오류가 발생했다. streamlit run first_app.py Collecting usage statistics. To deactivate, set browser.gatherUsageStats to False. Traceback (most recent call last): File "/home/deepwork/anaconda3/envs/datascnt/bin/streamlit", line 8, in sys.exit(main()) File "/home/deepwork/anaconda3/envs.. 2023. 7. 28.
맥북에서 Ubuntu로 외부에서 원격접속해서 VS CODE로 코딩하는 방법. 제곧내이다. 방금 성공하고 기록을 남기는 것이니 잘 될 것이라고 생각된다. 여러 뻘짓으로 시간을 날렸기 때문에 다음번엔 시간을 좀 덜날렸으면 바라고, 이 글을 보시는 여러분도 가볍게 성공하시길 바란다. 1. 우분투 네트워크 세팅하기 일단 현재 내 네트워크에 접속된 상태에서 iptime 설정가서 port forward로 외부로 통하는 Port 하나를 열어줌. 열어준 포트가 이제 내가 맥북에서 연결할 포트임 2. 접속 정보 수집하기 우분투 IP 제대로 알기 : ifconfig 같은 명령으로 보는 IP는 내부 IP임. 즉, 같은 망에서 접속한다면 그 IP를 쓰면 되지만, 외부에서 접속하기 위해선 외부망 IP를 알아야함. what is my ip 사이트에 들어가면 바로 알 수 있음. 우분투의 사용자 알기 : 우.. 2023. 7. 23.
[파이썬] 리스트 컴프리헨션 마무리하기: 주의사항과 성능 최적화 (3/3) 마무리편 이번 포스트에서는 리스트 컴프리헨션의 주의사항과 성능 최적화 방법을 다룹니다. 또한, 마무리로 리스트 컴프리헨션의 장점을 정리하고 파이썬 스타일 가이드에 대해 간략하게 소개합니다. 앞에서 우리는 리스트컴프리헨션의 기본과 응용에 대해 알아봤습니다. [파이썬] 리스트컴프리헨션?? 이거 모르면 파이썬 초보. (1/3) 기초편 [파이썬] 리스트컴프리헨션 응용하기: 실용적인 예제들로 더 깊게 이해하기 (2/3) 응용편 이번에는 리스트컴프리헨션 마지막 시리즈인 리스트 컴프리헨션 사용 주의사항과 성능 최적화에 대한 내용입니다. 리스트 컴프리헨션의 주의사항 가독성 유지를 위한 코드 작성 리스트 컴프리헨션은 코드를 간결하게 작성할 수 있지만, 복잡한 로직을 사용하게 되면 가독성이 떨어질 수 있습니다. 따라서, 가능한 한.. 2023. 4. 8.
반응형