본문 바로가기

전체 글263

특정 문자열을 찾아 텍스트 분할하는 어플 - Blice Text Splitter 최근 혼자 하고 있는 Python으로 윈도우 어플 만들기의 시작은 사실 업무와 관련이 있었다. 작년까지 내가 담당하던 업무는 웹소설 콘텐츠를 유통하고 관리하는 플랫폼 PM업무였고, 당시 필요했던 기능중에 하나가 바로 확보한 콘텐츠(Text파일)에서 특정 문자열을 찾아 분할하는 기능이 필요했다. 서버의 기능으로 제공해주면 더욱 좋겠지만 또 아주 일반적으로 널리 쓰이는 기능은 아니다 보니 그냥 어플 형태로 직접 한번 만들어보기로 결심하고 시작하게 됐다. 그리고 UI가 멋스럽진 않지만, 기능에만 충실한... 간단한 어플이 완성되어 정리해본다. 그간 나름 스터디했던 Python으로 윈도우 어플 만들기 관련 각종 필요기술들을 활용해서 특정 문자열을 찾아 각각의 텍스트 파일로 분리해서 저장시켜주는 어플 블라이스 회.. 2021. 2. 15.
Pycharm에서 Github에 Repository생성, 소스 업로드하기 Pycharm에서 작성 중인 소스를 바로 Github에 업로드해보기로 했다. Github Desktop 으로 해도 되지만, 결국 두 번 일을 하는것다보니 Pycharm에서 바로 해보려고 한다. Repository 생성 메뉴의 VCS > VCS Operations Popup 선택 후 Create Git Repository 를 선택하거나 혹은 Import into Version Control > Create Git Repository를 선택하면 Repository를 생성할 수 있다. 생성할 Repository 대상 폴더를 선택하고, Commit 을 해준다. 소스 업로드 Github Desktop에서는 Commit을 하고나서 Push를 해줘야 소스가 업로드된다. 다만 그러려면 미리 Repository가 생성되.. 2021. 2. 10.
구피키우기 측면여과기(SP-500)로 어항수질 관리하기 이번에 아이들 정서발달에 도움이 된다 하여 집에 들여온 구피... 그런데 마트에서 사온지 얼마 지나지 않아 한 마리가 바닥에 배를 뒤집고 가라앉아있는 걸 발견했다;;; 먼가 물도 탁해진 느낌이고.... 그래서 우선은 물을 갈아주고...다음으로는 수질관리를 위한 여과기를 설치하기로 했다. 다행히 다른 부속품들처럼 아버지가 사용하시던 여과기가 있어서 들고 와서 바로 설치해봤다. 측면 여과기(협심 SP-500) 수질을 관리해주는 제품들이 매우 다양하지만 일단 제일 간편한 측면 여과기로 시도해본다. 구매하면 얼마인가 검색해보니 만원내외로 비싸진 않은 것 같다. 제품 구성 펌프와 펌프에서 내보내 주는 물과 공기를 옮겨주는 파이프나 에어호스가 들어있다. 설치방법은 스펀지를 통에 넣어주고, 펌프를 연결해준다. 그리고.. 2021. 2. 8.
Python Pycharm(파이참)에서 Github 연동하기 git으로 소스 관리를 하기로 했고 그래서 Github 가입도 하고 윈도우용 Client인 Github Desktop도 설치해서 소스도 업로드했다. 그런데.... 실제로 코딩을 하는 공간인 Pycharm이랑은 바로 연동이 안되어 있었다. Github Desktop 을 설해도 이 부분은 해소가 안되는 것 같다ㅠ Pycharm Git 설치하기 Pycharm 설치할 때 git을 연동만하면 사용 가능하도록 기능이 함께 설치되기는 하는 것 같다. 하지만, Github Desktop에서 작업을 마친 폴더를 그대로 Pycharm에서 프로젝트로 불러왔더니 기본적으로는 git을 활용하는 상태로 셋팅이 바로 된다. 하지만, 하단에 브랜치명들은 보이는데 실질적인 정보는 전혀 보이지 않는다. 메뉴의 VCS - Get from.. 2021. 2. 8.
2차 경기재난지원금 - 혜택이 조금 더 있는 삼성카드로 신청해보기 이번에 경기도에서 2차 재난지원금을 지급한다고 한다. 그래서 경기도민인 나도 신청해본다. 내가 가진 카드는 현대와 삼성 두 개뿐이라 옵션이 제한적인데... 카드사별로 재난지원금 신청하면 주는 혜택이 머가 있나 하고 두 카드사를 비교해보니 그래도 삼성카드가 혜택이 조금 더 있길래... 삼성카드로 신청 삼성카드 재난지원금 혜택 신청하기 삼성카드는 이번 주(첫 주)에 신청하는 사람들에게 모바일쿠폰을 준다고 한다. 일단 삼성카드 앱에서 응모를 해두면 2.24~26 사이에 쿠폰선택할 수 있는 문자를 보내준다고 한다. 그래서 얼른 응모해본다ㅎㅎ (당연히 로그인 해야하고 개인정보 활용 동의해야만 응모 가능) 재난지원금 신청하기 역시 첫 주라 그런지;;; 대기시간이 있다ㅠ 내 순서가 올 때까지 기다려본다. 그래도 다행.. 2021. 2. 5.
Python 특정 문자열을 찾아 텍스트 분할하는 코드 혼자서 진행하고 있는 Python으로 윈도우 어플 만들기의 하나의 기능은 하나의 텍스트 파일안에서 특정한 문자열을 찾고 문자열과 문자열 사이를 파싱해서 개별 파일로 분할 저장해주는 기능이다. 예를 들어, 하나의 텍스트 파일이 아래와 같다면 1, 2, 3이 본문내용인 3개의 파일이 생성되도록 하는 기능이다. 특정 문자열을 만날때까지 텍스트를 분할하기 나도 어디서 찾았는지 모르겠지만 참고용 코드를 찾아서 활용한 거라 다 공개함. split_file() 분할하고자 하는 파일경로와, 구분자, 파일을 쪼갤 때 붙일 숫자를 지정해서 split_file 함수를 호출하면 구분자를 만날때까지 버퍼링을 해두고, 다음 구분자를 만나면 그동안 버퍼링 된 문자열을 저장하기 위해 write_split_file 함수를 호출한다. .. 2021. 2. 4.
아이들 정서에 좋다는 관상어 구피 키우기 이번에 와이프랑 이런저런 대화를 하다 보니 아이들에게 생명의 소중함이나, 실제 살아있는 생명체를 잘 보살펴주는 것을 배울 수 있다고 하여 어항에 물고기를 키워보자는 얘기가 나왔다. 사실.... 어항에 물고기 키우는 게 참 좋은데... 이게 참 관리가 영 귀찬을 거 같기도 하다 그럼에도 아이들에게 조금이라도 좋은 영향을 주고자 구피를 키워보기로 했다. 구피 구입 다행히 아버지께서 작년까지 구피를 키우시느라 어항이며, 어항 속 모래나 장식용 돌... 그리고 구피들에게 소소한 재미(?)를 줄 수 있는 인조 물고기는 다 있으셔서 그걸 받아왔다. 덕분에 부속품들을 다 사야 할 필요는 없이 구피만 구입해 오면 된다. 검색을 해보니 이마트에 관상어를 판다고 한다. 평소에는 신경 써 보지 않았어서 몰랐는데... 정말 .. 2021. 2. 1.
형상관리 윈도우에서 Github Desktop으로 Github 에 소스 올리기 Github Desktop 어플을 깔았으니 이제 소스를 업로드해보려 한다. Git 은 처음이라 먼가 생소하다. 1. Clone a Repository 먼저 생성해둔 Repository를 내 PC로 Clone 한다. Clone 하기 위한 PC 내 경로를 설정하면 해당 폴더와 연결이 된다. (단 PC내 경로는 빈 폴더여야 한다고 한다.) 2. 소스 Commit Clone을 마무리하고 소스를 해당 경로에 복사해두면 Commit 할 소스들이 왼편에 표시된다. 그리고 서버로 업로드할 파일을 하나하나 commit 해준다. 여러파일을 한 번에 선택하고 나면 바로 아래 Summary를 입력해주면 추가가 가능하다. 여기서의 Commit은 Github Desktop 내부에서 소스를 업로드하는 준비를 하겠다는 의미이다. S.. 2021. 1. 31.
형상관리 윈도우에서 Github Desktop 사용하기 이번에 나 혼자 스스로 머라고 만들어보고자 진행하고 있는 윈도우 어플 만들기 프로젝트에 대해 어느 정도 완성도 있는 코드가 나오기 시작하다 보니 소스 관리를 하려고 한다. 예전에 한참 코딩을 할때, 형상관리의 주류는 SVN이었다. 그런데 요즘은 github가 대세다. 그래서 나도 github로 형상관리를 해보려고 한다 github 가입하기 사용하려면 github에 회원가입을 하면 된다. 회원가입은 무료라 어렵지 않고, 다만 학교에서 연구를 한다면 좀 더 혜택이 있다고 하는데... 난 아쉽게도 회사생활을 하는 사람이라 그냥 일반 회원가입을 완료했다. github.com/ GitHub: Where the world builds software GitHub is where over 56 million deve.. 2021. 1. 29.
Python PyQt로 윈도우 어플 만들기 - Thread 정보 UI에 업데이트하기 대부분의 GUI 프로그램들이 그렇듯이 UI 에서는 사용자 액션을 처리하고, 실제 기능수행은 엔진 영역에 별도로 처리하도록 개발해야 한다. 그래야 어플이 Freezing 되는 걸 막을 수 있다.(일명 어플리케이션 일시 멈춤) 또, 잘못된 조작 혹은 어플이 동작중인 상태에서 중간에 중단시키는 동작들도 가능해진다. 이를 위해서 일반적으로 사용되는 방법이 엔진영역(Worker Thread)와 과 UI영역(Window)를 분리하는 방법이다. 이번에 만들고 있는 어플도 사용자 액션과 상태 표시등은 UI에 하고, 액션에 따른 실제 기능 동작 수행은 Thread로 구현했다. 그리고 Thread에서 중간중간 수행하는 과정 등을 Window에 표시하거나, 기능 동작에 따른 버튼 상태 등을 변경하려 한다. PyQt UI코드.. 2021. 1. 27.