Study/Python 13

[OCR / Python] (밥에 진심인 사람의) 식단표 자동 알림 프로젝트

오랜만에 블로그에 와서 글을 남깁니다.오늘은 하루 만에 뚝딱 만들어낸 (스스로도 어떻게 해내었는지 알 수 없는) 프로젝트에 관한 이야기를 해보려고 합니다.개발 과정에 대해 상세히 담고 싶은데 코딩에 급급하여 스크릿샷도 제대로 찍어둔 게 없네요; 회고처럼 쭉 작성해 볼까 합니다.   1. 계기 제가 다니고 있는 회사는 참 감사하게도 점심, 저녁을 제공합니다. 매주 월요일 (요즘은 금요일)에 식단표가 카톡에 공유가 되는데 매번 식단표를 찾아 카톡에 들어가기도 귀찮고 그렇게 본 메뉴도 늘 까먹어 다시 들어가야 한다는 불편함이 있었습니다. 까짓 거 그냥 점심시간 되면 구내식당 가서 메뉴 보면 되지 뭘 귀찮게 구냐 싶을 수도 있지만 '오늘은 뭐가 나올까?' 하며 행복한 고민하는 것도 업무효율 향상에 도움이 된다고..

Study/Python 2024.06.06

[Python/ Data Science] 데이터프레임 라이브러리 Polars

데이터 분석하다가 도저히 해도 모르겠어서 때려치고 쓰는 블로그 이번 데이터 분석에서 사용한 Polars에 대해서 소개해보려고한다. 데이터를 만지려면 습관처럼 쓰는 pandas를 대체할 수 있는 라이브러리가 작년 릴리즈 되었다. 1. Pandas 있는데 굳이 Polars 를 써야하는 이유가 있을까? (1). Polars의 가장 큰 장점은 바로 '빠르다' 는 것이다. Polars의 공식 문서에서도 가장 먼저 언급하고 있는 점이 바로 빠르다는 것이다. 실제로 (20000,23) 사이즈의 데이터를 가지고 올 때 Polars 는 11ms 가 소요되었고 Pandas 는 59ms가 소요되었다. 데이터의 사이즈가 엄청 큰 경우 Pandas보다 Polars를 쓰는 것이 시간적 측면에서 더 이득이지 않을까 생각했다. 어떻..

Study/Python 2024.03.24

[Python/파이썬] dotenv로 환경변수 설정하기

전에 진행했던 프로젝트 리팩토링중에 만났던 큰 변수. 모두가 clone받아 쓸 수 있는 코드지만 정작 나만 쓸 수 있는 코드. ip나 port 번호같이 민감한 정보들을 노출시키고 싶지 않아서 처음엔 JSON의 형식으로 저장해서 필요할 때마다 꺼내썼다. 그마저도 저렇게 경로를 다써줘야 작동해서 내 컴퓨터 경로를 전세계 모든 사람에게 공개해버린 셈이다. 나중에 수정하자는 마음으로 냄겨뒀는데 드디어 고치기로 마음먹었다! JSON말고 더 좋은 방법이 없을까 구글링을 해봤지만 구글링도 실력이라고.. 어떻게 검색해야할지 몰라서 답을 못찾고있었다. 나에게 믿을 건 한줄기의 오픈채팅방. 들어가기 빡센 방인데 들어가면 정말 귀한 정보들을 빠르고 친절하게 알려주신다. 취업해도 지박령마냥 머물고 싶음. 분위기도 넘 좋고 다..

Study/Python 2023.05.30

[VSCODE/Python] python snippets 로 자주 쓰는 코드 자동완성하기

백준이나 프로그래머스에서 문제 풀 때 자주 쓰는 코드들이 존재한다. from sys import stdin, stdout input = stdin.readline output = stdout.write 백준에서 입출력을 빠르게 하기 위해 이걸 미리 정의를 해두는데, 문제 풀 때마다 하려니까 굉장히 귀찮은 작업이었다. if __name__ == "__main__" : print(solution()) 프로그래머스는 함수로 구현을 해야해서 IDE에서 작업할 경우 이런 식으로 함수를 호출해줘야한다. 이건 굳이 안써도 호출할 수는 있지만,, 나는 꼭 쓰는 입장으로써 이것도 매번 쓰기 정말 귀찮다!!! 그래서 코드를 자동완성해주는 방법이 없나 찾아보다가 엄청난 걸 발견하게 되는데!!!!! !!!python snip..

Study/Python 2022.11.14

[VSCODE/Jupyter Notebook] 주피터 노트북 셀 언어가 CVE로 뜨는 경우 해결 방법

VSCODE에서 주피터 노트북 사용할 때 셀 언어가 CVE로 보이는 경우 해결법 주피터 노트북에서 코드를 입력했을 때 언어가 CVE로 선택되면 색깔도 입혀지지 않고 단축키도 먹히지 않는다. 셀 오른쪽 아래 언어를 보면 python 이 아니고 낯선 CVE로 되어있는 것을 볼 수 있다. 원래는 이렇게 색깔도 입혀지고 실행도 제대로 되어야 정상. 해결법 1. 1) CVE를 클릭하면 언어 변경을 할 수 있다. 2) python 클릭 이렇게 해서 해결되면 별 문제 아니지만, python을 아무리 클릭해도 바뀌지 않는 경우가 있다. 해결법 2. 1) vscode의 extension -> Dependency Analytics 검색 2) 맨 위에 나오는 Dependency Analytics 클릭 3) Dependenc..

Study/Python 2022.01.28

[Python/파이썬] 프로세스(Process)와 쓰레드(Thread)

1. 프로세스 프로세스는 컴퓨터에서 연속적으로 실행되고 있는(실행중인) 컴퓨터 프로그램을 의미한다. 프로그램은 실행되기전의 명령어와 데이터의 묶음을 말하는데, 프로그램이 실행중에 있을 때 프로세스라고 한다. 하드디스크에 저장되어 있는 명령어와 데이터의 묶음-> 프로그램 프로그램을 구동해 , 프로그램 자체와 프로그램의 상태가 메모리 상에서 실행되는 작업 단위 -> 프로세스 일반적으로 CPU는 한 번에 하나의 프로세스만 관리할 수 있다. 우리는 보통 한 번에 여러개의 프로그램을 실행하고 있다. (웹서핑을 하면서 유튜브로 노래를 듣는다) 즉 우리는 한 번에 여러개의 프로세스를 사용하고 있다. CPU는 하나의 프로세스만 관리할 수 있는데 어떻게 여러개의 프로세스를 실행시킬 수 있는거지? -> 멀티태스킹 멀티 태..

Study/Python 2021.10.11

[Network/Python] socket으로 데이터 주고받기 (+ 삽질)

네트워크 프로그래밍 과제 중 에러가 생겨 약 1시간 넘게 구글링 + 코드수정을 진행했다. 하지만 에러의 원인은 변수명을 잘못썼기 때문이였음ㅋ 과제는 서버 코드 , 클라이언트 코드를 각각 작성해서 클라이언트 쪽에서 내 이름을 서버로 보내면, 서버에서 그걸 받아서 출력해주는 아주 간단한(?) 과제였다. 서버랑 클라이언트 코드를 짠 후 클라이언트에서 내 이름을 보내면 서버에서 받지못하고 자꾸 에러를 냈다. OSError : [WinError 10057] 소켓이 연결되어 있지 않거나 Sendto 호출을 사용하여 데이터 그램 소켓에 보내는 경우에 주소가 제공되지 않아서 데이터를 보내거나 받도록 요청할 수 없습니다. 에러의 내용 + 구글링의 결과 서버와 클라이언트 사이의 연결에 문제가 있는 것 같았다. stacko..

Study/Python 2021.03.28

[Python/파이썬] lambda와 sort 정리

파이썬에서 정렬을 할 때 기준(key)로써 사용하는 lambda에 대한 정리 1. 람다(lambda)란? 람다는 익명함수라고도 하며 함수를 딱 한 줄로 완성시켜주는 표현식이다. 2. 람다(lambda)의 장점람다 표현식은 기존의 함수보다 메모리, 속도 측면에서 더 빠르다. 파이썬은 객체지향 프로그래밍 언어이므로 모든 것이 객체로 저장이 된다. 함수 또한 마찬가지.함수를 정의하게 되면 실행하면서 메모리를 쓰게 되는데 , 람다의 경우 함수이지만 일회성이므로 한 번 사용하고 없어진다. 따라서 메모리 소모도 없음! 3. 람다(lambda)의 형태 람다 표현식은 lambda 인자 : 표현식 의 형태를 띄고있다. 4. 람다(lambda)의 사용법 람다는 여러 형태로 사용이 가능하다.fu = lambda x : x ..

Study/Python 2021.03.23

[Django/Python] (진행중) 점프 투 장고 2-1. 주소와 화면을 연결하는 URL과 뷰

이전 내용 1. Python과 Django 설치 ✔️ 2. Pycharm 설치 ✔️ 3. cmd로 프로젝트 디렉토리 생성 (mkdir) ✔️ 4. 가상환경 만들기 ✔️ 5. 환경변수(PATH) 설정 ✔️ 6. 개발서버 구동해보기 ✔️ 1. 앱 생성하고 확인해보기 프로젝트에는 장고가 제공하는 기본 앱과 개발자가 만든 앱 등이 포함될 수 있다. (앱보다 프로젝트가 더 큰 범위) 장고에서 말하는 '앱' 은 우리가 아는 안드로이드/ios 앱과는 다르다. 우리가 만들 파이보 서비스에 필요한 앱을 만들어보자. 명령 프롬프트(or Pycharm 의 터미널) 에서 진행 django-admin startapp pybo 위 명령어를 치면 pybo라는 이름의 디렉토리가 생성됨을 확인할 수 있다. __init__.py, ad..

Study/Python 2021.03.22

[Python/파이썬] 파이썬 입력받는 방법 with input()과 sys.stdin.readline()

백준 입출력 문제를 풀면서 가장 신경써야했던 부분은 '제한시간'이였다. 문제를 제대로 풀었어도 제한시간을 초과해버리면 오답이기 때문이다. 보편적으로 입력받는 방법은 input함수를 쓰는 방법이다. 나도 input()으로 입력을 받아 문제를 풀었는데 input은 시간이 오래걸려서 시간초과되기 십상이다. (특히 반복문을 써서 여러 줄을 입력받는 경우) input보다 속도가 더 빠른 방법은 없을까? 파이썬의 표준 라이브러리인 sys의 sys.stdin.readline()을 사용하면 더 빠르게 처리할 수 있다!! (sys란? sys 모듈은 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다.) 같은 문제라도 5달 전에 푼 문제는 count = int(input()) num = inp..

Study/Python 2021.03.09