본문 바로가기

개발이야기

javascript로 gpt api 호출 하는 프로그램 만들기 ChatGPT 에게 물어봤다. I want to make an app using OPENAPI in javascript. 그랬더니 chatGPT가 자세히 알려주더라. === 아래는 ChatGpt 답변 내용 1. 먼저 OpenAI의 API에 가입하고 API 키를 받아야 합니다. OpenAI 웹사이트에서 무료 계정을 등록하고 API 키를 받을 수 있습니다. 2. 다음으로 자바스크립트용 OpenAI SDK를 설치해야 합니다. npm과 같은 패키지 관리자를 사용하여 SDK를 설치할 수 있습니다 : `npm install openai` 3. SDK를 설치한 후에는 OpenAI API에 요청을 시작할 수 있습니다. 다음은 SDK를 사용하여 OpenAI의 GPT-3 모델을 사용하여 텍스트를 생성하는 방법의 예시입니다.. 더보기
비동기 엑셀 다운로드 모듈 ( SPA ajax async excel download ) SPA 기반의 웹 어플리케이션 에서 ajax로 데이터를 가져와서 excel로 저장 ( 파일 다운로드 ) 하려고 한참 고생 했었는데 누군가 벌써 근사 하게 모듈을 만들어서 공개해주고 있다. SheetJS 비동기 엑셀 다운로드 모듈 ( 무료 ) https://github.com/SheetJS/js-xlsx​ Vue나 react 컴포넌트 하나 잘 만들어놓으면 어드민툴 같은 곳에서 여기저기서 가져다 쓰기 좋다. 가장 큰 장점은 엑셀 다운로드 기능을 위해 별도의 코드 개발 없이 기존의 REST API를 재사용 가능 하다는거. 속도 빠르고 UX나 반응성도 좋다. ​다만 엑셀다운로 시점에 PASSWD 넣어서 다운로드 하게 하려면 유료버전을 구매해야 한다. 패스워드 지정 기능을 안쓰면 무료버전 만으로 너무 훌륭하다. .. 더보기
자주쓰는 git 명령어 목록 리모트 브랜치 보기 git branch -r 리모트 브랜치 에서 체크아웃 git checkout -b test origin/test 리모트 브랜치 연결 git branch -u origin/branchName 리모트 브랜치 연결 해제 git branch --unset-upstream 브랜치 삭제 git branch -d/-D branchName 리모트 브랜치 삭제 git push origin :branchName 리모트 상태 git remote show origin 리모트 브랜치 clean up git remote prune origin 로컬브랜치를 리모트로 푸시 git push origin 브랜치명 로컬 피쳐 브랜치를 마스터로 푸시 git push origin 피쳐브랜치:master git log --.. 더보기
JPA batchSize 설정 해도 N+1 쿼리가 발생 해요 JPA batchSize 설정 해도 N+1 쿼리가 발생 해요~ 라고 지인이 물어봐서 같이 디버깅을 해줬다. Entity 매핑은 ManyToOne 양방향 관계로 가장 심플한 구조다. OneToMany 관계 조회시 N+1 쿼리가 발생하지 않도록 BatchSize를 설정했는데 어떨때는 batchSize 설정한 만큼 inQuery가 잘 실행 되는데 어떨때는 inQuery가 N번 발생하는 이상한 케이스 였다. 문제원인> select * from entity limit 10 과 같이 10건의 데이터를 조회 하고 batchSize 설정대로 In query가 수행 되었다. 하지만 oneToMany 관계의 테이블에 데이터가 제대로 들어가 있지 않아서 inQuery 결과 값이 제대로 연결이 안됨 아마도 entityMana.. 더보기
파이썬 코드 샘플 - 대량메일 발송 하기 CSV 에 발송한 메일주소와 컨텐츠에 들어갈 내용을 미리 편집한후 파이썬 코드 실행 회사 동료분이 만들어주셨던 건데 살짝 수정해서 유용하게 사용했습니다. ;; #!/usr/bin/env python3 # -*- coding: utf-8 -*- # Created by josh.z on 2021/02/22. import csv import logging import smtplib import sys import time from datetime import datetime from email.mime.text import MIMEText from email.header import Header ######### 수정필요 ########################################## SENDER.. 더보기
파이썬 코드 샘플 1. PDF to Audio import pyttsx3,PyPDF2 pdfreader = PyPDF2.PdfFileReader(open('story.pdf','rb')) speaker = pyttsx3.init() for page_num in range(pdfreader.numPages): text = pdfreader.getPage(page_num).extractText() ## extracting text from the PDF cleaned_text = text.strip().replace('\n',' ') ## Removes unnecessary spaces and break lines print(cleaned_text) ## Print the text from PDF #speaker.say(cl.. 더보기
정규식은 항상 헷갈림 특히 정규식 ADN 조건 .. -_-;; httpSecurity .regexMatcher("^(/api/(?=(?!ping))(?=(?!v1/cs)).*|/logout)") 더보기
테스트 컨테이너 ~ 굿 ! 도커 만으로도 충분히 편했는데.... 이건 땡큐 베리 머취 입니다. www.testcontainers.org/ Testcontainers  Testcontainers About Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container. Testcontainers make the followi www.testcontainers.org 더보기