= 이 포스트는 지속 업데이트 합니다. =

Python 3.5

  • 비동기 프로그래밍 지원 도입: async와 await 키워드가 도입되었습니다. 이 키워드를 사용하여 코루틴을 정의하고, 비동기 작업을 대기할 수 있게 되었습니다.
  • asyncio 라이브러리 강화: 비동기 I/O를 위한 표준 라이브러리인 asyncio가 개선되었고, 비동기 프로그래밍을 위한 기반을 제공했습니다.

Python 3.6

  • 비동기 컴프리헨션 지원: 비동기 리스트 컴프리헨션과 딕셔너리 컴프리헨션을 사용할 수 있게 되었습니다. 이를 통해 비동기 코드를 더 간결하고 읽기 쉽게 작성할 수 있게 되었습니다.
  • asyncio 모듈 개선: asyncio 모듈에 여러 새로운 기능이 추가되고, 사용성이 개선되었습니다.

Python 3.7

  • asyncawait가 완전히 지원되는 키워드가 됨: Python 3.7부터는 async와 await가 예약어가 되어, 비동기 프로그래밍의 핵심 구성 요소로 자리 잡았습니다.
  • asyncio 모듈의 추가 개선: asyncio.run() 함수가 도입되어, 비동기 프로그램의 진입점을 더 쉽게 만들 수 있게 되었습니다. 이 함수를 사용하면 코루틴을 더 쉽게 실행할 수 있습니다.
  • 컨텍스트 변수: contextvars 모듈이 추가되어, 비동기 작업에서 로컬 스토리지를 사용할 수 있게 되었습니다. 이는 비동기 작업에서 글로벌 변수를 안전하게 사용할 수 있게 해줍니다.

Python 3.8

  • asyncio 작업 취소 개선: 태스크 취소 시 발생할 수 있는 예외 처리가 개선되어, 비동기 태스크의 관리가 더욱 용이해졌습니다.
  • asyncio.Taskname 매개변수 추가: 비동기 태스크를 더 쉽게 디버깅할 수 있도록 태스크에 이름을 붙일 수 있게 되었습니다.

Python 3.9

  • asyncio 모듈의 더 많은 개선: asyncio.to_thread() 함수가 도입되어, 비동기 코드 내에서 동기 함수를 새로운 스레드에서 쉽게 실행할 수 있게 되었습니다. 이를 통해 CPU 바운드 작업과 I/O 바운드 작업을 더 효율적으로 혼합할 수 있습니다.

Python 3.10

  • 구조적 패턴 매칭: match 문과 case 문이 도입되었습니다. 이는 비동기 프로그래밍과 직접적인 관련은 없지만, 복잡한 데이터 구조를 처리하는 데 유용하게 사용될 수 있습니다.

 

구글 API 원활히 잘 쓰려면 구글에서는 3.9 말하는데 3.10 으로 3개월 써봤는데 3.10이 딱 맞는 것 같다. 3.9 이상이어야 되는 것들이 참 많은데, 라이브러리 호환성이나 안정성 등을 고려한다면 3.10이 딱이다.(2024년 3월 기준)

fastAPI의 경우 ayncio: await, async 예약어가 된 것이 크다. (3.5 이상 부터 지원은 하는데). 3.8이상이어야 하니 3.9, 3.10이 딱. 이 수준으로 7~8년 본다. 뭐 레거시 시스템 되면 15년 까지 거뜬하다.

 

python3.9.13, 3.10.12 + fastAPI, tensorflow ... 가 좋다.

fastAPI ... python3 -m pip install fastapi uvicorn[standard] Pillow numpy deskew pandas shutil py_compile tkinter tk tcl-tk python3-tk matplotlib celery colorama python-multipart aiofiles websockets wsproto mysql-connector-python twilio pydantic keras motor pyupbit termcolor

 

 

 

python3 -m pip install certifi

 

 

asyncio.to_thread() 함수는 첫 번째 인자로 동기 함수를, 그 뒤에는 해당 함수에 전달할 인자들을 받습니다. 이 함수는 호출된 동기 함수를 실행하는 concurrent.futures.Future 객체를 반환하며, await 키워드를 사용하여 함수의 결과를 기다릴 수 있습니다.

python

 

Copy code

import asyncio async def main(): result = await asyncio.to_thread(sync_function, arg1, arg2) print(result) def sync_function(arg1, arg2): # 시간이 오래 걸리는 동기 작업 return arg1 + arg2 asyncio.run(main())

 

 

삼성 카드갑은 계속 400 언저리고 신한으로 의료비가 나가고 롯데카드로 관리비가 나가며 광주로 대출 원금/이자가 나가는데 모두 합하면 월 700~800 정도의 지출이 된다.

 

이것을 줄이는 것이 목표라서 정리를 하는데 어제는 한숨밖에 안나오더라.

 

포스팅했던 우유 값 때문인데 사실, 그 외에도 사실 뭔가 중복된게 있는데 토스, 우리은행, 광주은행, IBK 등등 이체 되는 곳, 송금하는 곳이 많아서 사실, 제대로 제어가 안된다.

 

그래서 귀찮지만 카카오 뱅크로 모두 일원화 하고 있는 것이다. 어제는 포스팅 했었던 교보생명에 전화를 걸어 일원화 하였다. 사실, 이미 일원화를 했었던 곳인데 그렇게 바꾸고 나서

 

IBK 잔고를 비운 사이에 출금이 안되었고 카카오뱅크는 실시간 자동 출근 계좌 대상이 아니라서 등기가 갔다고 설명을 하는 것이었다. 그리고 새로운 지식을 알게 되었는데.

 

이자 어쩌구하며 물어보니 보험료 연체는 미납의 대상이 아니라고 했다.

 

내가 쓰는 카드중에 국민카드도 있다. 만들라는 사람이 있어 만들게 되었다. 보험료는 은행에서 바로 빠져나가므로 이 부분도 공개가 안되었다. 뭐, 블로그 새로 시작하고 근검절약 카테고리 만든지도 얼마 안 되었기 때문이다. 또 고지서가 오면 그 때 그 때 포스팅을 하는데 바쁘면 또 못하고 그렇다.

 

누가 뭐라하던 스스로 정리하고 생각을 말하고, 즐기려고 만든 블로그이긴 하지만 하나의 목적을 가지고 있고, 그 목적에는 여러 생각이 함께 한다.

 

그리고 그 목적은 단 한번도 공개된 적이 없다.

 

근검절약은 사실 목적을 이루는 수단도 아니다. 목적을 이루기 위해서는 살아남아야 하기 때문이다. 좋은 말로 표현할 수도 있겠으나. 스마일맨으로 불리던 내가 ㅈ같은 스타트업을 거치면서 사람을 보는 안견이 바뀌었고 그 안경으로 세상을 보니 정말 ㅈ 같았다... 라는 것을 말하고 싶다.

 

-

 

설비 기사를 한 적이 있었다. 1년 조금 넘게. TV에서 공개되는 기획된 집 공개 말고 정말 다른 사람들의 집을 볼 수 있는 기회가 많았다. 수리라는 명목하에. 또, 관리소에서 일하기 때문에 관리비에 관한 이야기도 몇 알고 있다. 관리비 2000만원 밀려놓고 끝까지 안 내는 집도 있어서 단수를 시킨 적도 있고. 정말 한달 관리비가 200~400 나오는 집도 있었다. 이 집은 70평대였는데 본래 잘가나는 조폭 두목이 살았고 집을 찜질방으로 꾸며놔서 항상 MAX로 난방을 틀던 집이었다. 그 사람은 그 사람 인생이고. 지금의 내 수준에서는 관리비를 20만원대로 낮추는 작업이 필요하다.

 

이번 고지서를 공개 했으나 전기세와 난방료가 참 많이 나온다. 난방비는 보일러 수리하면서 고쳐졌지만 전기세가 늘었다. 흙침대 때문인 것 같다.

 

그 동안 인지하지 못해서 자주 틀어놨었는데 이제 전기세가 많이 나간다는 사실을 인지 했으니 흙침대도  컨트롤을 잘해볼 생각이다. 

 

그리고 행여나 삼성카드 쓴다고 뭐라고 하는 분 있을지도 모르겠다. 김용철 변호사님을 존경하는데 그 분이 삼성카드 쓰는 것을 지적하셨던 분이다. 그럼에도 쓰는데는 커다란 이유가 있는데 이 카테고리에 공개할 예정이다.

 

별 대단치도 않은 인생이나 그리고 싶은 그림이 워낙 커서 그 이유를 알기에 조금이나마 도움이 되라고 포스팅을 해 두는 것 중에 하나다.

 

정기 배송은 얼마 되지 않지만 물품을 좀 줄여야 겠다.

 

이 포스트는 지속 업데이트 예정이다. 서버 관리는 정말 별도의 인력이 필요하다.

 

 


이번 달 지로를 오늘 받았는데 입금 문자 받고 1월 10일 냈는데 말이다. 안 챙기면 그냥 손해되는 금액이라고 생각한다. 그런데 어쩌다 남양이 우리집에 오게 된거지? 와이프가 알아서 하겠지. 매일 우유 사랑하자~ 가족들아~ ㅠㅠ 내 생각과 완전히 맞게 움직이는 세상이 어딨으리요 ㅠㅠ

 

그리고 불량품 이야기...

봉 길이까지 달라서 원래꺼랑 조합할수도 없는

 
수공 제품인듯... 앞으로 인터넷에서 사는 횟수를
줄이고 다이소 가야겠다

 

 

 

 

                   PassMark PerformanceTest Linux (11.0.1002)


Intel Xeon Gold 6226R CPU @ 2.90GHz (x86_64)
32 cores @ 3900 MHz  |  125.5 GiB RAM
Number of Processes: 64  |  Test Iterations: 1  |  Test Duration: Medium
--------------------------------------------------------------------------------
CPU Mark:                          43907
  Integer Math                     209139 Million Operations/s
  Floating Point Math              113662 Million Operations/s
  Prime Numbers                    173 Million Primes/s
  Sorting                          91409 Thousand Strings/s
  Encryption                       25577 MB/s
  Compression                      867871 KB/s
  CPU Single Threaded              2160 Million Operations/s
  Physics                          1894 Frames/s
  Extended Instructions (SSE)      53225 Million Matrices/s

Memory Mark:                       3008
  Database Operations              20238 Thousand Operations/s
  Memory Read Cached               25732 MB/s
  Memory Read Uncached             13584 MB/s
  Memory Write                     10426 MB/s
  Available RAM                    92695 Megabytes
  Memory Latency                   45 Nanoseconds
  Memory Threaded                  82470 MB/s
--------------------------------------------------------------------------------


                   PassMark PerformanceTest Linux (11.0.1002)


Intel Xeon Platinum 8151 CPU @ 3.40GHz (x86_64)
24 cores @ 0 MHz  |  373.7 GiB RAM
Number of Processes: 48  |  Test Iterations: 1  |  Test Duration: Medium
--------------------------------------------------------------------------------
CPU Mark:                          44923
  Integer Math                     176641 Million Operations/s
  Floating Point Math              94822 Million Operations/s
  Prime Numbers                    218 Million Primes/s
  Sorting                          90658 Thousand Strings/s
  Encryption                       24315 MB/s
  Compression                      776652 KB/s
  CPU Single Threaded              2356 Million Operations/s
  Physics                          4116 Frames/s
  Extended Instructions (SSE)      50140 Million Matrices/s

Memory Mark:                       2909
  Database Operations              18667 Thousand Operations/s
  Memory Read Cached               28317 MB/s
  Memory Read Uncached             11279 MB/s
  Memory Write                     10727 MB/s
  Available RAM                    364491 Megabytes
  Memory Latency                   50 Nanoseconds
  Memory Threaded                  218840 MB/s
--------------------------------------------------------------------------------





 

별 짓을 다 해봤다. 이건 힌트.

docker - proxy

ps  docker  죽여야함.

/srv/proxy

./restart.sh

docker update --restart=no $(docker ps -q)

systemctl start docker.socket

systemctl start docker.service

./restart.sh

 

root@ip-172-31-5-46:/home/ubuntu# cd fastapi_symbolicLink

root@ip-172-31-5-46:/home/ubuntu/fastapi_symbolicLink# pwd -P

eval $(ssh-agent)

./run.sh

 

sudo iptables -L -n

 

docker-compose down  
docker network prune  
sudo service nginx stop  
sudo systemctl stop nginx  
sudo nginx -c /srv/proxy/nginx/nginx.conf  
ps aux | grep nginx  
sudo tail -f /var/log/nginx/error.log  
   
   
   

 

결론은 아파치랑, 기타 등등의 포트 중복이 있는 상태에서 리부팅시에는 실행 순서를 보장하지 않으니 좀 꼬였다고 봐야 하나... 서버를 나누는 것이 현명한 일이다. 난 도커 없이 걍 nginX로 해결했다. 나머지 서비스들은 도커에서 잘 도는데 프록시는 여러 곳에서 복제해서 쓸 것도 아니라 향 후에도 아키텍쳐를 어떻게 가져갈 때 좀 고민을 해봐야 할 것 같다.

 

 

============================= 화사첨족 =======================

 

교보가 좋다고 해서 옮겼는데...

이번에 카카오뱅크로 바꾸면서 못 옮긴 것 중 하나가 보험이었다. 한번 밀렸다고 무슨 내용 증명 하듯이 등기를 보냈는데 해지환급금이 적혀있는게 참 거시기 했다.

내가 8년 넣고 10년 만기인 삼성 보험도(생명인지 화재인지 모르나 나중에 포스팅 하겠음) 500만원 손해 보면서 하는데 무슨 가입할 때는 약관이니 뭐니해서 무지하게 오래갈렸는데 해지하는데 5분도 안 걸려서 역시 기업은 기업이구나 했다. 우리나라 품앗이는 개뿔 했지.

그런데 교보 좋다고 하더만 하는 짓이 삼성 보험보다 더하면 더 했지라는 생각이 든다. 내가 구시대 사람인가... 에혀 믓튼 오늘 거래 계좌 귀찮아도 다 변경해야지. 카카오 뱅크 망하기만 해봐라. 그럼 나 더 귀찮아짐 ㅠ




 

 스퀘어쉐이브에서 질레트로 복귀하였다. 질레트가 짱. 느낌은 적을 수가 없네... 가끔은 그냥 제품으로 승부해야 할 때가 있다고 생각한다.

 

sudo chattr +i /

 

chattr 명령에는 immutable(i) 속성 외에도 다양한 옵션이 있습니다. 주요 옵션은 다음과 같습니다:

a - 파일에 append-only 속성을 설정하여 데이터를 추가할 수만 있습니다.

A - 파일에 대한 atime(access time) 기록을 방지합니다.

D - 파일이 바뀌면 gid가 0(root)으로 지정됩니다.

d - 디렉터리에 dump 유틸리티가 작동하지 않도록 설정합니다.

S - 파일에 대한 삭제 작업이 동기화되어 즉시 물리적으로 삭제됩니다.

s - 파일의 크기를 0으로 만들 수 없게 합니다.

u - 파일에 undeletable 속성을 설정하여 삭제가 불가능해집니다.

그 외에도 j, t, T, c, l, x, X, Z 등의 옵션이 있습니다.

 

 

아이러니 하게도 / 자체의 lsattr 은 방법이 없다. 마운트 된 디스크 자체를 하면 되려나 싶어 다음에 시도는 해 봐야 겠다.

 

========================= 화사 첨족 ===================

 





그리고 8퍼센트와 연결 오류로 여러번 연락하여 찾은 내 돈. 오류가 있을 것 같아서 우선 10만원만 넣어봤었다

왜 3달이나 걸려서 다시 찾았냐면 예치금에서 8%로 투자했는데 8%에도 투자 금액이 없고, 예치금에도 돈이 없어서였다.

고객센터에 제대로 처리해줬는데, 다른 포스팅도 막 따지고 그럴 것 같지만 난 사실 이런거 되게 귀찮아 한다 ㅠㅠ 믓튼, 금융권 같이 폐쇄적인 곳에서 얼마나 좌충우돌하며 서비스를 만들었을까?

 



토스에서 새로운 공인 인증서로 계좌 연결이 안되는 것과 연결 안되는 IBK에서 등록해 둔 지문이 갑자기 인식 안되어 불편을 겼은... 모두 지금 겪고 있는 상황이다.

 

에혀 완벽한 서비스가 어딨으리 30년 된 매실주나 마시자.

 

 
시골엔 참 귀한게 많다. 제대로 된 홍어회를 먹고 싶으면 전라도 가정집을 직접 방문해야 하듯이

=======

사람을 구할 때에도 진짜를 보려면 직접 만나야 한다.

참고로 이런 글을 남겨두는 이유는 후진 양성할 때 너무나도 큰 마천루들만 보고 있으면 자존감이 낮아지니 세상에 완벽한 서비스는 없다(일단은)는 말을 하고 싶어서이다.

https://www.donga.com/news/Culture/article/all/20090606/8741008/1

 

[인문사회]손등 보이는 ‘V사인’ 영국에선 욕

◇ 손짓, 그 상식을 뒤엎는 이야기/이노미 지음/348쪽·1만4000원·바이북스한국어 어학원에 다니는 한 네팔 남

www.donga.com

처럼 내가 쓴 글의 의미가 잘못 전달되는 것은 어쩔 수 없어서 무조건 팩트만 쓰려고 한다.

 

*2024 updated

그나저나 SMS 전송 시스템 트윌로 참 좋다.

requirements.txt

 

Automat

bcrypt==3.2.0

config==0.5.0.post0

configparser==5.0.1

cryptography==3.2.1

Flask

Flask-JWT-Extended==4.3.1

Flask-SQLAlchemy==2.5.1

flask_cors

mccabe==0.6.1

mysql

mysql-connector-python

mysqlclient==2.1.0

pyignite

pyjsparser==2.7.1

PyJWT==2.3.0

PyMySQL==0.10.1

Werkzeug==2.0.2

Requests

Pillow

pytest

firebase-admin

firebase_admin

twilio   <- 얘임.

 

 

가끔 예상치 못한 세금을 낼 때가 있다.​

세금 고지서 받기 전에는 알지 못했던 세금. AWS 에서 우분투 서버를 돌리면서도 그렇다. 잘 되던 모듈이 갑자기 인코딩 문제를 뱉었다.

AI백엔드가 fastAPI 보니 이래저래 해봤는데,Encoding 때문에 파이썬 버전도 여럿 바꾸고, 로케일도 여럿 바꿔보고 관련 패키지들도 재설치 해봤다.

export LANG=ko_KR.UTF-8

sudo locale-gen ko_KR.UTF-8

sudo update-locale LANG=ko_KR.UTF-8

sudo reboot

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1

sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3.9 1

 

sudo update-alternatives --config python

sudo update-alternatives --config pip

 

pip3 list | awk 'NR>2 {print $1}' | while read pkg; do python3.9 -m pip install "$pkg"; done

 

​그런데 결국 해결 못했다. 로컬에서는 또 잘되는데 서버로 deploy 하면 안되는 것이다. 더 재미있는 것 클론 서버에서는 잘된다. 설정도 모두 같다. 갑자기 한글을 이스케이프 문자로 바꾸는 이유는 모르겠지만 이스케이프 문자를 인식해서 다시 한글로 바꿔주는 로직을 넣을 수 밖에 없었다. 서버 이미지가 있지만 원인도 모른체 빽도를 하면 결국 또 나중에 문제가 될 것 같아서이다.

국세랑 카카오랑 연동이 잘되는 걸 보니 이제 카카오 내부는 공기업이다.



QR 코드 찍는다고 앱을 3번이나 껐다 켰다. 고지서 QR 코드 비트가 높아서 인식이 안되나 싶어 고지서 젤 앞 주소 나온거에 대어보니 바로 인식하더라. 세번 껐다켜니까 세번째에는 순식간에 인식하던데 뭔가 오류가 있었던 것 같다.
카카오 뱅크로 조금씩 주거래를 옮기는 중인데... 앞으로 금융은 카뱅만 쓸 것 같다. 토스 쓰다가 푸시 광고가 많아 옮기게 되었는데 10% 아꼈다. 현재 돈 가치를 에프기븐 으로 넘겨 따져보면 아닐수도 있겠지만 ㅋ


 

 

자동차세 낸 김에 밀푀유 나베 냠냠.

 









 
깻잎이 맛의 포인트

 

아나콘다 쓰지 말자.

conda install anaconda-clean
anaconda-clean --yes

rm -rf ~/anaconda3

rm -rf ~/opt/anaconda3

rm /usr/local/bin/python3 삭제전에

which pip                                                   1 ↵ ──(Tue,Mar05)─┘

pip: aliased to /Users/junhoha/.pyenv/versions/3.9.13/bin/pip
(base) ┌─(~)─────────────────────────────────────────────────────────(junhoha@Junhoui-MacBookPro:s005)─┐
└─(17:23:44)──> which pip3                                                        ──(Tue,Mar05)─┘
/usr/bin/pip3

뭐지 저 가상환경은 언제 또 만든거지.

나중에 다 지운다고 생각하고 일단 다 백업하자.

/usr/local/bin/python3.9 -m pip list

하나하나 백업하기 힘드므로

pip list | awk 'NR>2 {print $1}' | tee ~/hjh_pypackage.txt 

위 2줄 빼고 패키지 이름만 일단 저장함.

└─(17:36:55)──> brew list | grep python                                           ──(Tue,Mar05)─┘
python-tk@3.10
python@3.10
(base) ┌─(/usr/local/bin)────────────────────────────────────────────(junhoha@Junhoui-MacBookPro:s005)─┐
└─(17:38:17)──> brew uninstall python-tk@3.10                                     ──(Tue,Mar05)─┘
Uninstalling /opt/homebrew/Cellar/python-tk@3.10/3.10.13... (5 files, 151.0KB)
(base) ┌─(/usr/local/bin)────────────────────────────────────────────(junhoha@Junhoui-MacBookPro:s005)─┐
└─(17:38:51)──> brew uninstall python@3.10                                        ──(Tue,Mar05)─┘
Uninstalling /opt/homebrew/Cellar/python@3.10/3.10.13_2... (3,131 files, 57.3MB)
(base) ┌─(/usr/local/bin)────────────────────────────────────────────(junhoha@Junhoui-MacBookPro:s005)─┐
└─(17:38:59)──> which python3                                                     ──(Tue,Mar05)─┘
/usr/local/bin/python3 

뭐야...

아... 내가 컴파일 해서 썼었구나.... ㅠㅠ 이제 성능이 매우 뛰어나다는 3.11 로 가보자. 공식 사이트에서 3.11.8 받았다.(2월 updated)

GDBM_CFLAGS="-I$(brew --prefix gdbm)/include" \
   GDBM_LIBS="-L$(brew --prefix gdbm)/lib -lgdbm" \
   ./configure --with-pydebug \
               --with-openssl="$(brew --prefix openssl@3.0)"

 

make -s -j2

 

Could not build the ssl module!

Python requires a OpenSSL 1.1.1 or newer

brew update
brew upgrade openssl

export LDFLAGS="-L$(brew --prefix openssl@1.1)/lib"
export CPPFLAGS="-I$(brew --prefix openssl@1.1)/include"

make clean

./configure --enable-optimizations   

안되네.

brew upgrade openssl@1.1

export LDFLAGS="-L$(brew --prefix openssl@1.1)/lib $LDFLAGS"
export CPPFLAGS="-I$(brew --prefix openssl@1.1)/include $CPPFLAGS"
./configure --with-openssl=$(brew --prefix openssl@1.1) --with-openssl-rpath=auto
make

XXXXX

export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib $LDFLAGS"
export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include $CPPFLAGS"
export PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@1.1/lib/pkgconfig"

./configure --with-openssl=/opt/homebrew/opt/openssl@1.1 --with-openssl-rpath=auto

make clean
make

 

우분투에서

cd /usr/src

sudo wget https://www.python.org/ftp/python/3.11.8/Python-3.11.8.tgz

... https://tecadmin.net/how-to-install-python-3-11-on-ubuntu-22-04/ 여기 껄로 참조~

 

How To Install Python 3.11 on Ubuntu 22.04 / 20.04 – TecAdmin

As of today, Python 3.11 is the latest version available for installation. Python developers who want to start creating a new application should use the latest version. This tutorial will help you to install Python 3.11 on Ubuntu systems. In this guide, we

tecadmin.net

 

/usr/src/Python-3.11.8$ ./python 
Python 3.11.8 (main, Mar  5 2024, 18:19:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

 

cat hjh_....txt | while read pkg; do python3.9 -m pip install "$pkg"; done

로 패키지 설치해주면 됨.

 

=============

여기가 비싼 지식

=============

회사에서는 google cloud api 를 다수 이용하고 있다. firebase, ai 등 포함.

https://cloud.google.com/python/docs/setup?hl=ko

 

Python 개발 환경 설정  |  Google Cloud

의견 보내기 Python 개발 환경 설정 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 가이드에서는 Google Cloud에서 실행되는 Python 앱 개발을 포함하여 Python 개

cloud.google.com

document가 워낙 많고 3.7 이상이면 된다고 하지만 3.12 쓰다가 서버 날리고 재설치 했다. 3.11도 안되는 부분이 많다. 속도 빠르다면서 갑자기 스턱이 되어 버리고 터미널까지 멈춰서 강제 종료 해야 한다.

 

결국 찾은 버전은

3.9 가 가장 안정적.

3.10.12 도 잘 된다.

python 3.9.13 을 쓰는데 python 3.10.12 도 괜찮다.

마이너버전까지도 맞춰야 관련 라이브러리나 연결된 API를 쓰는데 크게 무리가 없다는 생각이다.

이 "궁합" 문제는 내가 개발자를 하는 30년 넘게 있어온 문제이다. 파이썬 2와 3 싸울 때 만큼은 아니지만, 아직도 버전이 넘어가면

중구 난방이라는 느낌을 지울 수 없다. 그래서 requirements.txt 도 중요한 것이겠지.

작은 기록들도 큰 책임을 지고 있는 사람들에겐 수억원의 가치가 있다.는게 내 생각이다. 언젠가는 3.11로 가야한다. 성능 향상을 버릴 수는 없으니. 그러나 적어도 5년 뒤 정도 생각하고 있다.

/usr/local/bin/python3.9
pip3
pip 23.1.1 from /Users/junhoha/Library/Python/3.9/lib/python/site-packages/pip (python 3.9)

pip3
pip 24.0 from /Users/junhoha/.pyenv/versions/3.9.13/lib/python3.9/site-packages/pip (python 3.9)

pip
pyenv which python                                                                                                              ──(Wed,Mar06)─┘
/Users/junhoha/.pyenv/versions/3.9.13/bin/python
┌─(~)───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────(junhoha@Junhoui-MacBookPro:s000)─┐
└─(16:43:46)──> pyenv which pip                                                                                                                 ──(Wed,Mar06)─┘
/Users/junhoha/.pyenv/versions/3.9.13/bin/pip

 

 

 

===========

 

지난 추억... 아이패드 프로는 구독자에게 아이패드는 지인에게... 

 

 

 

참 앞으로는 구독자 이벤트 안 하기로 했다능. 

'{Infra} Server Setting' 카테고리의 다른 글

rm -rf / 방지  (0) 2019.01.16
서버 인코딩 문제 결국 로직으로 해결 *2024 updated.  (0) 2019.01.16
reboot 이후  (0) 2019.01.11
docker가 말썽을 부릴 때...  (0) 2019.01.11
proxy setting - 2  (0) 2019.01.11

sudo -s

screen -S fastapi

screen -S tensorflow

screen -S proxy

eval $(ssh-agent)

Ctrl + a, d

apache 점검

proxy 점검

nginx 충돌 점검 systemctl stop nginx

IP 접속하면 domain 으로 넘어가는지 확인

ssl 정상 연결 확인.

인증서 유효기간 확인

/nginx/certificates# openssl x509 -noout -enddate -in ./fullchain_socanner.pem
notAfter=May 10 00:25:04 2024 GMT

FE/BE 서비스 점검.

서버 모니터링...

 

-=0-0=-0=0-=0=-0=-0=-0=-0=-

 

 

 

저작권 벌금 절약 :  마이크로 소프트의 속셈은 잘 모르겠지만 쿠팡에서 소프트웨어를 너무 싸게 판다. 1년 넘은 것 같다.

 

꽤 괜찮은 듯

 

전시회 정보는 왠만한 곳에서는 제대로 나오지도 않는다. 그래서 다들 인터파크 인터파크 하나 보다.

 









 

얜 너무 온순해서 집에서 키워도 되겠다.
 
알비노가 확실히 예쁘더라
 
개발자니까 파이썬이라고 해야 하나?
 
 



 



 



 

 

내 경우 docker 로 nginx proxy를 설정할 때 문제가 되어 기록해 둔다.

처음 설정은 잘 된다. 시스템 리부팅 후에 꼬여서 문제. 사견인데 이 문제에 대해 "꼬였다" 용어 정리를 먼저 하면,

nginx 가 실행되는 시기, docker ps 에서 권한 문제로

root 인데도 제대로 컨트롤이 안 되는 경우를 꼬였다고 표현하고 있다.

root 인 상태에서

systemctl restart 했을 때 깨끗하지 않고 docker ps 에서 이래저래 나오면 

restart : always 된 경우다. "no" 로 바꿔주면 되고

이미 실행된 녀석들은

docker update --restart=no $(docker ps -q)

명령어로 도커 재 시작시 다시 실행 안되도록 해 주면 된다.

docker ps 하면 지워졌다고 나오는데  systemctl restart docker 하면 또 실행되어서 docker ps 가 된다.

이런 땐, systemctl restart docker.service

그래도 안되면 도커 지웠다가 다시 설치.

dpkg -l | grep -i docker

sudo apt-get remove --purge docker-ce docker-ce-cli containerd.io

sudo apt-get remove --purge docker.io

이 후

apt install 로 docker와 docker.io 설치하면 됨.

 

도커가 꼬여서 도커 업그레이드, 재설치, 리부팅 등등 삽질을 했었는데 

하나의 포트만 쓰는 리눅스의 프로세스 처럼 기존 docker 와 충돌은 보장하지 않기 때문에 꼬임 현상이 나는 듯 하다.

sudo docker system prune 으로 깔끔한 정리. -af 는 신중히.

네, 맞습니다. Docker에서 --prune 옵션은 특정 Docker 명령어와 함께 사용되어 관련 자원을 정리하는 데 도움을 줄 수 있습니다. 하지만, docker system prune과는 다르게, 이 옵션은 보통 Docker의 다른 하위 명령어와 함께 사용됩니다. --prune 옵션의 사용 예와 용도는 다음과 같습니다:

Docker 이미지 Prune

미사용 Docker 이미지를 정리하려면, docker image prune 명령어를 사용할 수 있습니다. 이 명령은 태그가 없고 (dangling 상태인) 이미지들을 삭제합니다.

sudo docker image prune

이 명령어에 -a 옵션을 추가하면, 사용 중이지 않은 모든 이미지를 삭제합니다:

 
sudo docker image prune -a

Docker 컨테이너 Prune

중지된 모든 Docker 컨테이너를 정리하려면, docker container prune 명령어를 사용할 수 있습니다.

sudo docker container prune

Docker 네트워크 Prune

사용하지 않는 모든 네트워크를 정리하려면, docker network prune 명령어를 사용할 수 있습니다.

sudo docker network prune

Docker 볼륨 Prune

미사용 Docker 볼륨을 정리하려면, docker volume prune 명령어를 사용할 수 있습니다.

sudo docker volume prune

각각의 prune 명령어는 관련된 자원 유형(이미지, 컨테이너, 네트워크, 볼륨)을 대상으로 하며, -f 또는 --force 옵션을 추가하여 사용자 확인 없이 바로 정리를 진행할 수 있습니다.

--prune 옵션은 이러한 prune 관련 명령어와는 별개로, 특정 Docker 명령어의 결과물을 정리하는 데 사용되기도 합니다. 예를 들어, docker build 명령어에 --prune 옵션을 사용하여 빌드 캐시를 정리할 수 있습니다. 하지만, 이는 Docker 버전에 따라 다르며, 일부 명령어에서는 --prune 옵션이 사용되지 않을 수도 있습니다. 사용 가능한 옵션과 기능은 Docker의 버전 및 공식 문서를 참조하여 확인해야 합니다.

 

 

Ubuntu에서 Docker를 설치하는 표준 방법 중 하나는 Docker의 공식 저장소를 시스템에 추가하고 그곳에서 Docker 패키지를 설치하는 것입니다. 아래 단계를 따라 Docker CE를 설치해 보세요.

  1. Docker의 공식 GPG 키 추가:
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  2. Docker의 공식 저장소를 APT 소스 목록에 추가:
    echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  3. 패키지 목록 업데이트 및 Docker CE 설치:
    sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io

이렇게 하면 Docker CE, CLI, 그리고 containerd.io를 설치할 수 있습니다. 이 과정을 통해 최신 버전의 Docker가 설치되며, 이전에 발생했던 문제들을 해결할 수 있습니다.

 

  1. 실행 중인 컨테이너 확인:이 명령어는 현재 실행 중인 모든 Docker 컨테이너의 목록을 보여줍니다.
    sudo docker ps
  2. 모든 컨테이너 확인:이 명령어는 시스템상의 모든 Docker 컨테이너를 보여주며, 실행 중이지 않은 컨테이너도 포함됩니다.sudo docker ps -a
  3. Docker 이미지 목록 확인:이 명령어는 로컬 시스템에 저장된 모든 Docker 이미지의 목록을 보여줍니다.sudo docker images
  4. Docker 네트워크 확인: sudo docker network ls

 

Docker 데몬 로그 확인

시작 실패의 구체적인 원인을 파악하기 위해 Docker 데몬의 로그를 확인해야 합니다. Docker 데몬 로그는 보다 상세한 오류 메시지를 포함하고 있을 수 있으며, 문제 해결에 중요한 단서를 제공할 수 있습니다.

journalctl -u docker.service
 

sudo systemctl status docker.service

sudo systemctl restart docker

사용자를 docker 그룹에 추가하면, sudo 없이 Docker 명령을 실행할 수 있습니다. 이 방법은 명령을 실행할 때마다 sudo를 입력하는 번거로움을 줄여줍니다. 사용자를 docker 그룹에 추가하려면 다음 명령을 사용하세요:

sudo usermod -aG docker $USER

docker-compose down docker-compose build --no-cache docker-compose up -d
  • 이 스크립트는 기존의 Docker 컨테이너와 이미지를 내리고(docker-compose down), 캐시를 사용하지 않고(--no-cache) 새로운 이미지를 빌드한 다음, 컨테이너를 백그라운드에서 실행합니다(docker-compose up -d).

version: '3.6'
services:
  proxy:
    restart: always
    build:
      context: .
      dockerfile: Dockerfile
    hostname: proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx:/etc/nginx
      - ./log:/var/log/nginx
    networks:
      - proxy-net

  echo:
    image: jmalloc/echo-server
    expose:
      - "8080"
    hostname: echo
    networks:
      - proxy-net

networks:
  proxy-net:
    external: true

=== 화사첨족 ===

news가 안 열리면,

기본 앱 설정 - 웹브라우저 설정에서 기본 앱을 설정해주어야 함.

devenv /resetuserdata    // X

윈도우 10에서 설정 찾기 참 편하다.

그나저나 bizspark 은 완전이 바뀌어버렸네...

Product keys
There is no paid active subscription associated with your account
Add a paid subscription to access downloads and product keys.

예전에는 졸업하더라도 키 목록이 있어서 좋았는데 ㅠ

그 때 그 때 바뀌는 회사라 믿음이 안가는 것은 여전하다.

정말 오픈 소스 진영이 좋은 역할을 많이 한다.

 

 

코빗 서버 점검 페이지

 

Korbit
 
All Systems OperationalRefreshed less than 1 minute ago
Korbit - Website  Operational
90 days ago
 
100.0 % uptime
 
Today
Korbit - API  Operational
90 days ago
 
100.0 % uptime
 
Today
 Trading
BTC/KRW  Operational
BCH/KRW  Operational
ETH/KRW  Operational
ETC/KRW  Operational
XRP/KRW  Operational
Other Digital Assets  Operational
 Deposits/Withdrawals
KRW  Operational
BTC  Operational
BCH  Operational
ETH  Operational
ETC  Operational
XRP  Operational
Other Digital Assets Withdrawal  Operational
System MetricsMonthWeekDay
Korbit - Website
100%
15:0018:0021:002. Jan03:0006:0009:0012:00050100
Korbit - API Response Time
13ms
15:0018:0021:002. Jan03:0006:0009:0012:0001020
Past Incidents
Jan 22018
No incidents reported today.
Jan 12018
No incidents reported.
Dec 312017
No incidents reported.
Dec 302017
No incidents reported.
Dec 292017
No incidents reported.
Dec 282017
No incidents reported.
Dec 272017
No incidents reported.
Dec 262017
No incidents reported.
Dec 252017
No incidents reported.
Dec 242017
No incidents reported.
Dec 232017
No incidents reported.
Dec 222017
Resolved - 문제가 해결되어 출금 계좌 등록이 가능합니다. / We have fixed the issue. You may register your withdrawal bank account. 
Dec 22, 18:53 KST
Investigating - 출금 계좌 등록이 정상적으로 처리되지 않습니다. 복구 후 안내 드리겠습니다. / Unable to register withdrawal bank accounts. We are investigating the issue. 
Dec 21, 15:22 KST
Dec 212017
Resolved - 문제가 해결되어 정상적으로 원화 출금 서비스를 이용하실 수 있습니다. / We have fixed the issue. 
Dec 21, 15:12 KST
Investigating - 원화 출금이 지연되고 있습니다. 현재 문제 해결을 위하여 조치중이니 회원님의 양해를 부탁드립니다. / KRW withdrawals are being delayed. We are investigating the issue right now. 
Dec 21, 14:53 KST
Dec 202017
No incidents reported.
Dec 192017
No incidents reported.

 

 

 

 

내용 삭제

+ Recent posts