본문 바로가기
반응형

삽질15

[비동기 삽질] 비동기 처리 첫 삽 뜨기 이론적인 내용 정리는 아래를 참고 2022.06.03 - [Backend MLOps/Fastapi] - [Fastapi] asyncio 제대로 써보기 with pytest - 1 [Fastapi] asyncio 제대로 써보기 with pytest - 1 시작 이번 포스팅은 이론적으로 공부했던 비동기 처리의 요약을 포스팅한다. 다음 포스팅 부터 이 포스팅의 지식에 근거하여 실질적인 성능향상을 끌어내고 얼마나 성능이 향상되는지도 알아 davi06000.tistory.com 거두절미하고 파이썬 비동기처리의 기본은 yield 라고 할 수 있다. 함수에 yield를 사용함으로 제너레이터를 만들 수 있다. yield는 return처럼 어떤 값을 반환하는 타이밍을 지정하는데 __next__ 메소드가 호출되기 전에는 .. 2022. 6. 7.
[ Python 삽질 ] 파이썬 정규표현식 re.sub 을 이용해서 대문자 소문자 바꾸기 // 문제 상황 re 패키지를 쓰면 누구나 쉽게(?) 정규표현식을 이용하여 문자열 다룰 수 있다. 하지만 파이썬에서 re를 잘 쓰다가 보면 이상하게 대소문자를 바꿔주는 메타문자를 사용할 수가 없다. 예컨데 bbc_ads 라는 문자의 _a 를 A로 바꿔야 한다고 할때 골치 아파진다. stackoverflow 에 보면 원래는 일반적인 regex를 사용한다고 할때 import re string = "bbc_ads" new_str = re.sub( "(_)([a-z])", "\u$2", string ) print(new_str) >>> "bbcAds" 이렇게 \u 를 이용하여서 처리할 수 있다고 한다. 하지만 파이썬에서는 \u를 사용하면 유니코드 인코딩을 의미하는 것이기 때문에 ecape되고 만다. 이런 충돌로.. 2021. 8. 3.
[ Python 삽질 ] List의 원소가 한번에 다 바뀔때 deep copy? shallow copy? 사실 이번 글은 정말 부끄러운 내용이다... 초보적인 실수이면서도 정말 잘 고쳐지지 않는 내용이므로 확실하게 짚고 넘어가고자 한다. // 문제 상황 코딩 테스트를 보는데 이미지나 표가 나왔다. 리스트의 리스트를 만들어서 행렬처럼 쓴다고 가정하자. 먼저 zeros를 만들면 이렇게 해서 이렇게 나올 것이고 그다음 이렇게 가운데에 행렬을 복사해 넣어서 zero padding 효과를 주고 싶다고 하면 잘 될까? 결과는 이렇게 나온다. 특히나 numpy의 array를 많이 접해본 경험이 있거나 list 안에 단순한 숫자가 아닌 여러 다른 특성의 객체를 담게 되는 경우 이런 실수는 정말 무의식 중에 비일비재하게 일어난다. // 해결 방안 사실 현장에서는 꼭, 굳이 list of list를 만들어서 사용해야 되는 상.. 2021. 6. 2.
[ Jupyter 삽질 ] Jupyter의 터미널에서 자동완성이 안될때 // 문제상황 ^[[A, ^[[B, ^[[C, ^[[D 이런게 방향키를 누르면 나오고 탭을 하면 큼직한 공백이 생기는 문제가 발생했다. // 해결법 아주 간단하다. bash 라고 치고 앤터를 치면 끝난다. 진짜다. // 원리 우리가 터미널이라고 하는 입력창은 tty의 일종으로 입력이 들어가면 그에대한 출력값을 보여주는 장치다. 그리고 입력과 출력에 대한 프로토콜이라고 해야하나 아무튼 해석을 위한 약속이 정해져 있는데 이 약속을 shell이라고 하고 shell 이 이해할 수 있는 스크립트를 shell script 라고 한다. 그러니까 우리는 shell이 해석할 수 있는 방식의 입력을 전송해야된다. 그런데 이 shell에는 여러가지 버전이 있고 그중에 하나가 바로 bash 이다. 그런데 일부 리눅스 혹은 도.. 2021. 6. 1.
[Jupyter 삽질] 자동완성, 탭tab 키가 안될때 해결방법 // 상황 주피터노트북에서는 탭을 누르면 객체의 하위에 선언된 값이나 메소드를 불러주는 자동완성을 지원한다. 또 아무것도 없는 상태나 문자열을 작정하는 중에 자동완성 기능을 사용하면 하위디랙토리의 내용을 보여주기도 한다. 이미 배포되어있는 도커를 사용하면 이런 기능을 쓸 수 없는 경우가 종종 있는데 혹은 잘 되던 완성기능을 특정 디렉토리에서는 사용할 수 없는 경우가 있는데 이럴때 해결할 수 있는 방법을 알아보자. // 원인 우선 이 현상의 원인으로 지목되는 1순위는 바로 검색 시간이다. 주피터도 인간이 아닌 이상 우리가 탭을 누르면 엄청난 속도로 하위 항목을 검색한 후 해당 문자열로 시작하는 항목을 추려서 보여주는 기능이 탑재된 것이다. 따라서 이 후보를 검색하고 모으는데 시간이 어마무시하게 걸린다면 이.. 2021. 5. 15.
[ Ubuntu 삽질 ] 사용가능한 용량이 실제 용량과 다를때, LVM 확장 // 상황 아주 국한된 상황에서 쓸 수 있는 방법이다. 그리고 자주 발생하기 때문에 알아두면 좋다. 우선 df, du, 모두가 내가 산 저장장치의 용량보다 작은데 lsblk, fdisk -l 과 같은 명령어로 보면 또 내가 산 용량이 보인다. 컴퓨터를 사고 나서 추가 저장장치를 연결한 적이 없으며 그냥 처음에 하나 사서 연결했는데 200GB정도밖에 보이질 않는다. 이럴 경우 해결방법이다. // LVM 우선은 우분투를 설치할때 LVM이라는 녀석을 설정하게 되는데 이걸 잘못 설정하면 200GB 정도밖에 사용을 못하는 상황이 발생한다. 그래서 LVM설정하는 방법을 쭉 찾아보면 너무 자료가 어려워 보인다. 그런데 # 최대 사이즈로 my_LV확장 sudo lvextend -l +100%FREE /dev/my_LV.. 2021. 4. 24.
반응형