IT 287

Loguru를 활용한 파이썬 로깅 시스템 정리: 중앙 설정 방식 연구

파이썬 프로젝트의 복잡한 로그 관리를 Loguru 중앙 설정 방식으로 해결하는 방법을 정리했습니다. 멀티프로세스 환경에서도 충돌 없는 안전한 로깅, 레벨별 파일 분리, JSON 출력까지, 실전 예제 코드도 함께 보세요. 파이썬 프로젝트를 진행하면서 print()를 사용한 디버깅에서 벗어나 체계적인 로그 관리의 필요성을 느끼게 되었습니다. 특히 여러 모듈과 프로세스에서 동시에 로그를 남길 때, 설정이 중복되거나 로그가 충돌하는 등의 문제점을 경험했습니다. 이러한 문제를 해결하기 위해 Loguru 라이브러리의 중앙 설정(log_config.py) 방식을 학습하고 그 내용을 정리해 보았습니다. 이 방식은 프로젝트 로깅 시스템의 구조를 개선하는 데 유용한 접근법이라고 생각합니다. 중앙 설정 파일 log_conf..

IT/python 21:03:44

네오스타일로5.0 neostylo5.0 갤럭시s25 ultra

자판 입력만 가능하고 상용구 같은 기능은 안됩니다정확히는 상용구 수정한 내용 저장이 안됩니다. 그러니까 안되는거랑 같죠..그 외에 안되는 기능들 많을 수 있습니다..원본 소스가 없어서..한계가 있네요원래는 삼성 기본 자판과 드래그 입력에 적응해보려고 노력했는데..화딱지 나는 드래그 입력 정확도에 ..지맘대로 엉뚱하게 바꿔버리는 인공지능 땜에.. 참다참다 화딱지 나서 스말리 만져보다가 일단 이 정도라도 공유해보자 하는 마음에 글 작성합니다.저작권에 문제가 된다면 글 비공개처리 하겠습니다.연락주세요

IT 2025.08.19

Power on Reset(POR) 이 뭔가요?

Power On Reset(POR)이 잘 이해되지 않아, 기초부터 직접 찾아보고 정리한 글입니다.함께 기본 개념을 하나씩 풀어봅시다. 1. Power on Reset(POR)이란?**Power on Reset(POR)**는 전자기기(특히 IC, 마이크로컨트롤러 등)에 전원이 처음 들어올 때, 기기가 항상 똑같은(정상적인) 상태에서 시작하도록 만들어주는 회로 또는 기능입니다.쉽게 말해, 전원이 켜질 때 내부 회로가 엉뚱한 동작을 하지 않게 “잠깐 멈춰!”라고 신호를 주는 역할입니다.2. 왜 POR이 필요한가?전원이 들어오면 바로 모든 부품이 안정적으로 동작하는 게 아니라, 잠깐 동안 전압이 불안정할 수 있습니다.이때 바로 동작을 시작하면 내부 데이터가 꼬이거나, 오작동할 수 있습니다.POR은 전압이 안정될..

IT/IoT 2025.07.15

대용량 로그 파일, 줄 번호로 필요한 구간만 정확히 추출하는 방법

대용량 로그 파일을 열어야 하는 상황,용량이 너무 커서 에디터가 멈추거나 터미널이 반응하지 않으면 당황스러울 수 있습니다.이 글에서는 줄 번호를 이용해원하는 구간만 정확하게 추출하는 방법을 정리합니다. 어느 날 로그 파일을 열어보려는데,파일이 너무 커서 열리지 않았습니다.크기를 보니 수 기가바이트에 달했습니다.에디터는 멈췄고,터미널에서도 파일을 열 수 없었습니다.하지만 포기할 순 없었습니다.그 안에는 반드시 확인해야 할 기록이 있었기 때문입니다.필요한 건 전체가 아니라 '한 구간'입니다대부분 로그 파일을 전부 살펴볼 필요는 없습니다.특정 에러가 발생한 지점과 그 주변 몇 줄이면 충분한 경우가 많습니다.핵심은 필요한 구간만 정확하게 꺼내오는 것입니다.Step 1: 시작 줄 번호 찾기우선, 찾고자 하는 내용..

IT/etc 2025.07.09

Git 브랜치 강제 이동과 이름 변경, 진짜 안전하게 하는 방법

Git 브랜치 관리 중엔 포인터 이동(브랜치 강제 이동)이나브랜치 이름 변경이 필요한 순간이 꼭 찾아옵니다.이번 글에서는 다음 두 가지 핵심 Git 작업을 실전 사례로 쉽게 정리합니다: 특정 커밋까지 브랜치 포인터 이동 (커밋 포함 효과, 커밋값 변경 없음) 브랜치 이름을 release/ 접두사로 변경하고, Remote까지 동기화깜빡하고 포함 못한 커밋, 안전하게 브랜치에 포함시키는 법 (포인터 이동)● 상황브랜치에 커밋을 깜빡하고 포함하지 못한 경우커밋 내용을 유지하면서 커밋값(SHA)은 절대 건드리고 싶지 않을 때● 해결법 (핵심 명령어)# 브랜치 백업 (무조건 추천)git branch backup_br2 br2# 브랜치 포인터를 원하는 커밋으로 이동git checkout br2git reset --..

IT/VCS 2025.07.07

설치했고 PATH도 수정했는데... not found? 마지막 한 수는?

심볼릭 링크도, alias도, PATH도 뭔가 부족했던 당신께.진짜 실행 흐름을 장악하는 방법이 여기 있습니다.Node, Java, Vim, Python 버전이 어지럽게 얽힌 환경 속에서,/usr/bin/xxx가 어디를 가리키는지 명확히 다루실 수 있으신가요?그렇다면, 과감히 뒤로가기를 누르셔도 됩니다!그렇지 않고 의도된 실행 흐름 설계를 원하신다면update-alternatives가 그 무기가 됩니다.⚔️ 그래서 뭐가 좋은데? 삼대장 비교방식적용 범위반영 시점자동 전환적합한 상황alias셸 세션/사용자 수준로그인 후❌ 없음간단한 별칭, 임시 커맨드 변경심볼릭 링크 수동 수정시스템 전체즉시 적용❌ 없음단발성 대체, 경로 override용update-alternatives시스템 전체 + 정책 기반선택 후 ..

IT/shell 2025.06.24

Node.js 설치했는데 node 명령어가 작동하지 않을 때 (bash: /usr/bin/node: No such file)

apt로 설치한 Node.js를 제거하고 스크립트로 재설치한 후 node 명령어가 작동하지 않는 문제. 리눅스 셸의 hash 캐시가 원인입니다. 해결법까지 완벽 정리.Node.js 설치했는데 `node` 명령어가 작동하지 않을 때— `bash: /usr/bin/node: No such file or directory` 문제 해결법📌 요약 (TL;DR)Node.js를 apt로 설치했다가 제거하고, 스크립트 방식으로 다시 설치했더니 `node -v` 명령어가 작동하지 않는다? bash: /usr/bin/node: No such file or directory which node는 멀쩡히 /usr/local/bin/node로 나오는데?그 원인은 리눅스 셸의 hash 캐시 때문이다.아래 해결 방법을 따..

IT/shell 2025.06.23

Windows 11에서 Flutter 개발 환경 완벽 설정 가이드

Flutter를 Windows 11에서 처음 설정하는 분들을 위해 VS Code 설치부터 Android Studio, 에뮬레이터 실행까지 전 과정을 친절하게 설명합니다. 흔히 겪는 오류 해결법까지 포함한 실전형 가이드입니다. VS Code + Android Studio + 에뮬레이터 + 오류 해결까지Flutter는 단일 코드로 iOS와 Android 앱을 동시에 개발할 수 있는 Google의 강력한 UI 프레임워크입니다.이 글에서는 Windows 11 환경에서 Flutter를 처음 설정하는 개발자나 입문자를 위해 VS Code, Flutter SDK, Android Studio, AVD 설정까지 한 번에 정리된 실전 가이드를 제공합니다.추가로, 설정 중 흔히 마주치는 오류들과 그 해결법도 상세히 담았어요..

IT/언어 2025.06.01

Gemini 2.5 Pro vs GPT vs Claude — "나를 이해하는 AI"는 누구인가?

GPT, Claude, Gemini. 이름은 익숙하지만, 실제로 써보면 이해 방식도 반응 방식도 제각각입니다. 이 글은 세 모델이 사용자의 의도를 어떻게 파악하고, 어떤 식으로 반응·구현하는지를 실제 사용 경험을 바탕으로 비교한 기록입니다. 세간의 평가아래는 실제 사용자들의 리뷰, 문서/미디어 입력 성능 테스트, 실사용 코드 흐름 등 다양한 평가 항목을 정리한 요약입니다. 단순 응답 품질을 넘어서 실행력과 맥락 대응, 자료 처리 성향까지 함께 포함합니다.GPT: 전체 대화 흐름을 비교적 자연스럽게 유지하며, 설정한 문맥을 중심으로 정리하는 능력이 뛰어남. 문서 응답, PDF 처리 등에서 정보 밀도와 응답 흐름이 안정적이라는 평이 많음.Claude: 실행 중심 대화에 강하며, 코드 응답에서 부가적 처리까지..

IT/etc 2025.05.15

Linux 네트워크 패킷 관리의 핵심: sk_buff 구조체와 메모리 레이아웃

sk_buff는 Linux 커널에서 네트워크 패킷을 표현하는 핵심 데이터 구조로, netdev_alloc_skb, skb_reserve, skb_put 함수를 통해 메모리 레이아웃이 동적으로 관리됩니다. 이 글에서는 네트워크 드라이버 개발자에게 필수적인 sk_buff를 할당하는 3형제를 소개합니다..1. sk_buff 의 세 가지 할당 단계1) netdev_alloc_skb() 실행 후head(0), data(0), tail(0), end(68) 포인터 초기화68바이트 전체가 사용 가능한 빈 버퍼 생성2) skb_reserve(2) 적용데이터 시작 위치를 2바이트로 설정(data=2)패킷 헤더 공간 확보를 위한 전형적인 작업3) skb_put(64) 실행64바이트 데이터 추가로 tail 포인터 66으로 ..

IT/python 2025.04.17