본문 바로가기

전체 글126

[TIL 52] pyinstaller 파일 실행시 print() 문제 발견 기존에 쓰던 파이썬 플러그인을 그냥 하나의 스크립트 실행 파일로 빼려고 pyinstaller --onefile을 하게 되었다. 기존 python 스크립트는 출력되는데 바이너리 파일로 바꿔서 사용하면 print() 이나 std.out 등이 출력되지 않는다. 이유를 찾아보니 pyinstaller는 기본적으로 콘솔없이 사용하게 된다. 즉 버퍼는 존재하지만 보내는 기능이 없어진거나 마찬가지다. --windowed : 이 옵션이 자동으로 들어가 있어서 이는 위와 같이 보내는 기능이 없어진다. 그래서 --noconsole 옵션을 넣어줘야한다. pyinstaller --onefile --noconsole "myfile.py" 대충 위처럼 올리면 된다. 하지만 --noconsole을 하게 되면 cmd창이 일.. 2025. 4. 8.
[TIL 51] 저널링에 대하여..... 저널링 웬만한 사람들은 굳이 겪을 일은 없겠지만 극한의 격리화된 상황에서의 개발시 파일 시스템을 이용시 단지 읽고 쓰고의 방식으로 구현 해놓으면 중간에 시스템에 문제가 갈 때 데이터의 무결성을 지켜주지 못할 확률이 존재한다. 우리 운영체제에서도 이와 같은 상황이 존재한다. 내가 머리가 안좋아서 잘못된 예시 일 수도 있는데 예를 들면 ext4 파일 시스템을 기반으로 하는 상황에서vi나 vim을 사용해서 특정 파일(text)를 작성한다고 했을 때, 텍스트 파일을 작성하면 해당 프로세스가 메모리 상위로 올라가게되는데 이 상황에서 작성한 텍스트들을 write 명령을 실행하면 디스크에 저장된다. 근데 시스템이 중간에 다운되면 write되었던 수정 데이터들은 적용이 안되고 오류가 생겨 파일이 손상 될 수 있다.그래.. 2025. 4. 8.
[TIL 50] windows defender로 인한 파일 삭제 파일 제외?특정 스크립트언어로 보안 모듈을 개발하고 돌리고 해당 스크립트에 압축해제가 있을 때, 특정 파일들만 압축이 안되는 경우가 있다. 개발 하면서 모두가 겪는 상황은 다르기 때문에 정확하게 말할 순 없지만 내가 처한 상황에서 생각 할 수 있는 것은  다음과 같다. 1. 해당 압축파일이 linux에서 사용하는 파일이라 메모리에 올린다음 가져와도 네이밍규칙 때문에 가져오지 못함.2. 운영체제 입장에서 읽을 수 없는 파일이다.3. 특정 조건 때문에 파일이 격리 되는 것 같다. 일단 1,2 번은 예외 처리 안해놓기도 해서 로직 내부에 따로 예외 처리를 해놨다. 특정 패키지를 메모리에 올리고 그대로 가져오는 방식이 대체적으로 일반적이지만 메모리 내부에 접근에서 이름 부분에 해당하는 부분을 수정해서 덮으면 이.. 2025. 3. 13.
[TIL 49] python subprocess의 대한 문제직면 문제의 발견 최근에 subprocess를 사용해서 특정 프로그램에서 주는 stdout(출력값)을 사용해서 가공해야하는 기능을 만드는 중간에 내가 직접 실행하고 그 다음 덤프해서 가져오면 사용이 되는데 내가 만든 스크립트로 실행을 하면 출력결과가 중간에 끊어지는 문제가 생겼다. 그렇다고 Brokenpipe문제는 아닌거 같은게 subprocess가 발견해주는 오류 범위라 오류메시지가 뜨진 않는다. 고민을 해보다가 대충 다음 내세운 문제는 다음과 같다. 1. subprocess로 실행했을 때 허용하는 리소스 크기가 정해져있다.2. subprocess 출력결과를 실시간으로 받아오는 중 버퍼에 문제가 생겼다.3. 해당 스크립트가 먼저 종료되어서 즉 부모 프로세스가 먼저 종료되어 파이프 종료가 먼저 종료됨. 문제 .. 2025. 2. 26.