본문 바로가기

전체 글

(259)
코드 품질 향상을 위한 FastAPI 기반 코드 리팩토링 코드 품질 향상을 위한 FastAPI 기반 코드 리팩토링 서론 회사 솔루션 제공을 위한 API를 NCP(Naver Cloud Platform)에서 배포하기 위해 몇 가지 개선을 진행했다. Before 기존 코드는 Fast API를 사용하고 있고 Input과 Output만 존재하는 단순한 형태였다. Images를 입력받아서 Json 형태를 리턴해주고 있다. 해당 코드를 사용해 배포를 진행한다면.. After 3가지 단계 추가 입력 유효성 검사 필요한 데이터가 누락되었을 때 처리하는 방식을 추가함 예를 들어 'images' 필드는 비워둘 수 없음 형식 검사 및 예외 핸들러 추가 입력된 이미지 데이터가 원하는 형식인지 확인하는 검사 잘못된 형식의 데이터가 들어올 경우 적절한 오류 메시지 반환 로그메시지 기존 ..
ChatGPT를 사용한 뉴스 요약 : 크롬 익스텐션 개발기 ChatGPT를 사용한 뉴스 요약 : 크롬 익스텐션 개발기 서론 아래 포스팅을 보면 알 수 있듯이, ChatGPT를 사용해 해외 뉴스를 매일매일 요약하고 있다. 미증권 뉴스 스크랩핑(Node.js , Express, Puppeteer, Koyeb) 미 증권 뉴스 스크랩핑 하기 푼돈으로 주식하는 서학개미로서, 주식 뉴스는 조금이라도 읽자라 생각해서 주식 블로그를 하고 있는데 블로그에 글이 올라가는 루틴은 아래와 같다 기사의 본문을 junnyhi.tistory.com 불편했던 점은 ChatGPT가 대화의 히스토리를 기억한다고 하지만, 대화가 길어지면 처음 요구 했던 내용을 종종 잊어버린다 그렇기 때문에 뉴스 요약을 하는 과정 중간 중간 마다 엉뚱하게 요약을 하는 일이 발생했다. 그래서 매 번 대화할때마다 원..
꼬리에 꼬리를 무는 Proxy 이야기 꼬리에 꼬리를 무는 Proxy 이야기 프록시란? 서버 클라이언트 사이에 중계기로써 대리로 통신을 수행하는 것 프록시 서버 그 중계기능을 하는 것(컴퓨터 시스템, 응용프로그램)을 프록시 서버라고 함 프록시를 왜 사용하는가? 대리로 통신을 수행하여 보안성, 성능, 안정성 향상 시키려고 다른 장점은? 프록시 서버 중 일부는 요청받은 내용들을 캐싱해서 저장해 둠 저장해서 뭐 하는가? 클라이언트 서버는 계속 통신하며 데이터를 전달하고 중복되는 데이터도 반복적으로 전달하게 됨 클라이언트가 캐시 내부에 존재하는 정보 요청 시, 프록시는 해당 데이터를 서버에서 가져 올필요 없이 가지고 있는 캐시에서 전달해 줌 이는 외부 트래픽이 줄어들어 네트워크 병목 현상 방지, 클라이언트는 빠른 속도 서비스 제공 가능 프록시 종류?..
아이디어스 스크래퍼(Puppeteer, Electron) 아이디어스 스크래퍼(Puppeteer, Electron) 서론 "단순 스크래핑만 양산형으로 만드네 이 사람?"이라고 물어본다면 할 말 없긴 하지만, 데스크톱 애플리케이션으로 뭐가 좋을까 찾는 중이라고 핑계를 대본다.. 1. Electron 선택 이유 Node.js Desktop app이라고 검색하니까, Electron이 제일 첫 번째 나왔다. 그게 전부다 증거자료를 첨부하겠다. 2. Electron이 최선의 선택이었나? 그건 잘 모르고 그냥 빠른 선택을 했다 앱 실행 화면 스크래핑 결과 화면 3. 역경과 코난 아니고 고난 할 줄 아는 언어라고는 파이썬이라 어려웠음 index.html의 발전과정 scripts 태그 내, 직접 작성하다 보니 너무 길어지고 흉물 그 자체로 변했다. 외부 파일 추가해서 사용하니..
[강좌] 개발자를 위한 ChatGPT 프롬프트 엔지니어링 - Andrew Ng 개발자를 위한 ChatGPT 프롬프트 엔지니어링 서론 앤드류 응 교수님과 OpenAI의 Cookbook 공식 가이드를 만드신 직원분이 1시간 정도 되는 짧은 강의랑 무료로 출시해서 바로 시청하게 되었다. 이번 포스팅은 해당 강의를 보고 간략하게 남겨본다. ChatGPT Prompt Engineering for Developers What you’ll learn in this course In ChatGPT Prompt Engineering for Developers, you will learn how to use a large language model (LLM) to quickly build new and powerful applications. Using the OpenAI API, you’ll.....
쿠팡 상품 정보 수집기 v1.1.0 쿠팡 상품 정보 수집기 v1.1.0 버전까지 붙여서 있어 보이지만 별 다른 기능은 없다. 이번에는 2가지 기능을 추가했다. 상품 제목의 평균길이와 평균 키워드 수 상품 이름에서 가장 자주 사용되는 단어 Top 10 실행화면
꼬리에 꼬리를 무는 웹 스크래핑/크롤링 이야기 꼬리에 꼬리를 무는 웹 스크래핑/크롤링 이야기 웹 스크래핑 vs 크롤링 차이점은 뭐지? 웹에서 데이터를 수집하는 기술로, 비슷한 개념이지만 목적과 수행 방식에서 차이가 있음 크롤링은 웹페이지 간의 링크를 자동으로 탐색하는 과정 스크래핑은 웹 페이지에서 특정 데이터를 추출하는 과정 웹 페이지 간의 링크를 따라 자동으로 탐색한다는 게 뭔가? 웹크롤러(또는 스파이더)가 웹 페이지에 있는 하이퍼링크를 사용해 페이지를 이동하면서 데이터를 수집하는 과정 수집된 웹 페이지들은 검색 엔진의 인덱싱 과정을 거쳐 검색 결과를 볼 수 있음 웹 페이지에 있는 하이퍼링크는 허곰의 코딩블로그 검색 엔진의 인덱싱 과정 수집한 웹 페이지 데이터를 분석 -> 저장 -> 정렬해서 사용자에게 적절한 검색 결과를 제공할 수 있는 구조로 만..
쿠팡 상품 정보 수집기(Python, Pyside6) 쿠팡 상품 수집기(Python, Pyside6) 파이썬 GUI라고 검색하니까 대표적으로 Pyside랑 PyQt 프레임워크를 사용한다고 하길래, Pyside6을 사용했다. Pyside6 선택 이유 가장 큰 선택이유는 PyQT는 GPL 또는 상용 라이선스를 사용하고 Pyside는 LGPL 라이선스를 사용한다는 것이다 여기서 LGPL이란, Lesser General Public License의 약자로서 자유 소프트웨어 라이센스이다. 결론적으로 LGPL은 상용화에 사용해도 GPL보다는 덜 제약을 받는다길래 사용했다... 실행화면 느낀 점 Qt Designer를 사용했는데, 버튼들 위치 수정 띡띡 하고 ObjectName만 던져주고 사용하는 게 너무 편리하다. 코드 中 threads = [] for thread_..