목록분류 전체보기 (100)
incastle의 콩나물
Bandit이란? - bandit은 Python 코드에서 일반적인 보안 문제를 찾기 위해 설계된 도구입니다. - 이를 위해 Bandit은 각 파일을 처리하고 이 파일에서 AST를 만들고 AST 노드에 대해 적절한 플러그인을 실행합니다. - - Bandit이 모든 파일 스캔을 마치면 보고서를 생성합니다. 사용법 ## severity-level : low, medium, high 중 특정 level 이상의 보안 항목만 보고 싶을 때 ## o : save file path ## f : save file format (csv, json 등 다양하게 있음) ## b : baseline_report 설정 bandit -r . o [save_report_path] --severity-level [level] -f j..
Apache Kafka Publish-Subscribe 모델을 구현한 분산 메시징 시스템이다. (=어플리케이션간에 메세지를 교환하기 위해 사용되는 메세징 시스템) 잠깐 Publish-Subscribe? 데이터를 만들어내는 프로듀서(Producer, 생산자), 소비하는 컨슈머(Consumer, 소비자) 그리고 이 둘 사이에서 중재자 역할을 하는 브로커(Broker)로 구성된 느슨한 결합(Loosely Coupled)의 시스템이다. 프로듀서가 메세지를 보내면 카프카가 이걸 보관하고 있다가 컨슈머가 카프카에 저장된 메세지를 필요할 때 확인하는 것 왜 쓰는가? 기존은 생산자와 이에 상응하는 소비자를 명시해야함 카프카는 생산자는 메세지를 전송만 하고(누가 받을지 신경 안씀) 수신자는 카프카에게 원하는 토픽을 구독..
django, flask등의 python 기반의 웹 프레임워크는 어떻게 서버와 통신을 하는가? 서버와 통신을 할 때 사용되는 인터페이스로서 CGI, WSGI, ASGI 등이 사용된다. CGI(Common gateway Interface) 웹서버와 외부 프로그램을 연결해주는 표준화된 프로토콜 클라이언트의 요청이 있을 때마다 프로세스를 추가 생성 삭제 작업을 반복해서 비효율적이다. (오버헤드 심함 + 메모리) WSGI(Web Server Gateway Interface) WSGI는 모든 요청을 한 프로세스에서 처리를 한다. 많은 요청을 콜백으로 받아 처리를 함, CGI는 매 요청마다 Fork 등의 함수를 통해 커널 리소스를 추가/반납함 ASGI(Asynchronous Server Gateway Interfa..
출처 : https://stackoverflow.com/questions/8496711/what-is-stringio-used-for-in-this-script The StringIO module is an in-memory file-like object. StringIO는 파일류 객체로 사용할 수 있는 클래스입니다. 데이터가 디스크에 기록되는 대신 메모리의 버퍼(문자열 버퍼)에 기록된다는 점을 제외하고는 일반 파일과 똑같이 사용할 수 있습니다. import io output = io.StringIO() output.write('First line.\n') print('Second line.', file=output) # Retrieve file contents -- this will be # 'Firs..