![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Rk0an/btsE4ZtYs97/Y5r621RyOLoh64AkxYArdK/img.png)
번역 API에 대한 기술 검토 중에 문서 번역에 대한 요청을 받게 됐다. 이런 저런 방법에 대한 고민을 해보다가 직접하는 것보단 통합으로 제공하는 곳이 없을까 찾아봤다. 그리고, GCP에서 제공하는 Document Translation API를 알게 됐다. Document Translation API는 Cloud Translation API 일부인데, 말 그대로 구글에서 제공하는 번역 API 에서 제공하는 세부 기능 중 하나다. API를 자유롭게 사용할 수 있으면 좋겠지만, 유료 결제를 등록한 계정만 사용할 수 있다. 카드 등록도 해야 쓸 수 있다. 일단은 무료 크레딧으로 사용해보기로 하고, 하나씩 시작해보자. 1. 서비스 계정 만들고 키 발급 받기 처음 시작은 indexing API와 크게 다르지않다...
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/xDGrI/btsE2DLb6IO/0Cj2BH3mDhYyEqb6vIsa30/img.png)
현재 서비스는 대부분 Java/Kotlin으로 구현되어 있어 갑자기 진행된 Python 프로젝트를 어떻게 배포할까에 대한 고민이 있었다. 스케줄러로 하루에 한번돌기 때문에 부담은 없지만, 내부 패키지를 많이 사용하는 프로젝트다. 대략 3가지 방안이 논의됐다. 1. AWS Lambda에 배포 2. Spot EC2에 배포 3. 쿠버네티스 컨테이너에 배포 DB를 따로 사용하지 않기 때문에, 1번 방안부터 알아봤다. 결론부터 이야기하면, 해당 프로젝트에 이미지 프로세싱이 들어가있어서 AWS Lambda는 후보군에서 바로 제외됐다. 그래도 serverless 프레임워크를 써서 파이썬 Lambda를 생성해봤기 때문에 정리하고 넘어가려고한다. python만의 특이한 옵션들이 있어서 프로젝트 생성/관리에 조금 어려움이..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bNZelh/btsEZAuOmWo/46k1CqIXhkm1PzaSAW5VB0/img.png)
Python으로 개발된 서비스를 배포할 일이 생겼다. 그런데 개발자가 Python 프로젝트를 아무 지식도 없이 만들어서 가상환경에서 작업하지 않고, 로컬 & 글로벌에서 모든 작업을 처리했다. 그러다보니 어떤 의존성 패키지를 썼는지 명확히 알 수가 없었다. 당연히 이 명령어도 쓸 수 없었다. pip freeze > requirements.txt 다행히 파이썬에서는 프로젝트에서 사용한 의존성을 자동 추출할 수 있는 스크립트를 제공한다. pipreqs라는 이름의 패키지다. pip install로 설치할 수 있다. 그런데 설치부터 아래와 같은 에러를 발생시킨다. > pip install pipreqs ERROR: Could not install packages due to an OSError: [Errno 2]..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b3RlwZ/btsEWLIFlGB/jI01yTe3MjnILf75O6Oa6k/img.png)
테스트를 하다보면 key로 사용하고 있는 Auto Increment 값이 아래와 같이 계속 증가하다 못해 차이가 나서 보기 싫은 경우가 있다. 이러다보면 FE 팀원에게 이게 맞는 상태냐고 연락을 자주 받게 된다. 어... 네 맞는상태긴한데, 내가 보기에도 이상하다. 이런 문제는 간단한 쿼리문 하나로 해결이 가능하긴하다. ALTER TABLE your_table_name AUTO_INCREMENT = 6; 매번 수동으로 해줘야해서 불편하긴 하지만 비정상적으로 큰 간격을 보지 싫으면 테스트 후에는 정리하는 겸 해서 한번 입력하는게 좋은 것 같다.
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/sPsk3/btsEPJMAyuN/CCiSk3EGwqJoriMnnpnHR0/img.png)
PDF 파일의 내부 데이터를 핸들링할 일이 생겼다. 처음에 든 생각은 PDF 파일을 XML 형태로 바꾸면 되지 않을까?라고 생각을 했는데, XML 형태든 JSON 형태든 파일 형식을 바꿔버리면, 표나 이미지 글자 크기 등이 제대로 반영이 되지 않을 것 같았다. 물론할 수는 있겠지만 아마 솔루션 개발급 공수가 들어가지 않을까? 란 견적이 서서 다른 방법이 없나 찾아봤다. 찾다보니 가장 그럴듯한게 HTML로 변환 하는 것이었다. PDF box와 css box를 이용하는 방법인데 라이브러리를 쓰면 되다보니 그렇게 어렵지 않다. 하나씩 해보자. 코드 gradle # commons-io를 낮은 버전을 쓰고 있으면 버전업해야함, 안쓰고 있으면 필요 x implementation 'commons-io:commons-..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/y2L7N/btsEEKrjcgT/HIpZGE5awPtUZ3ry9G1gQ0/img.png)
혼자 쿠버네티스를 공부하려고보니 KIND(Kubernetes in Docker)를 쓰라는 말을 들엇다. KIND는 이름부터 도커가 들어가기 때문에, 당연히 도커가 필요하다. 하지만 Docker for Windows는 WSL2에서만 사용가능하다고하는데... 내 WSL은 버전이 1이었다. WSL1을 WSL2로 업데이트해보자. 들어가기전에 Windows 업데이트를 확인해야한다. WSL 2는 Windows 11 또는 Windows 10, 버전 1903, 빌드 18362 이상에서만 사용할 수 있습니다. Windows 로고 키 + R 을 선택하고 winver를 입력한 다음, 확인을 선택하여 Windows 버전을 확인합니다. (또는 Windows 명령 프롬프트에서 ver 명령을 입력합니다.) 최신 Windows 버전..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Fks70/btsEEZokrs6/3Cyct2SmVNdB74sDMyqa91/img.png)
작년 입사 후 얼마 지나지 않아서 로그 파이프라인을 구성했었다. 2023.05.28 - [개발/SPRING] - 스프링부트 서비스에 LOG 남기기 (with. Logback) 당시에는 요청에 대한 로그가 없어서 급하게 구축하게 됐는데, 지금 생각해보면 입사한지 한달도 되지 않은 개발자가 로그 파이프라인을 구성한다는 자체가 말이 좀 안되는 일이긴했다. 그래서 로그 파이프라인에 구멍이 조금씩 있었는데, 최근에 가장 큰 구멍을 알게되서 개선이 필요했다. 바로 Multipart/form-data 형식에서 MultipartFile에 대한 처리가 없어서, 어떤 파일이 업로드가 되었는지 알 수 없었다. 그런데, 현재 담당하고 있는 서비스가 파일 업로드를 지원하기 때문에 로그의 개선을 필요로 했다. 로그를 몇 번 개선..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/nsfZw/btsEBrYEm3R/a7IXTkqdRmPYNErrpzjFRk/img.png)
벌써 3달전이었다는게 놀라운데, open AI에서 GPT를 이용해 나만의 봇을 만들 수 있는 Builder를 오픈했었다. 그때 글을 하나 썼었는데, 이제는 이름을 My GPTs로 명명한 것 같다. GPTs를 쓰면서 나름 괜찮다고 생각했던 것 중 하나가 외부 API를 연동을 지원한다는 것이다. 작년 중순부터 Function Calling이란 기능으로 GPT가 텍스트로 작성한 API를 사용할 수 있는 기능을 제공하긴했는데, 개발자가 사용하기엔 좀 불편함이 있었다.(키워드 추출을 잘 못해준다던가, 원하는 매서드에 매핑이 정확히 안된다던가 등등) 이걸 GPT 서버에서 API가 필요하다고 판단되면 쓰게끔해준다니, 챗봇의 기능을 비약적으로 향상시킬 수 있다고 생각이 들었다. 그래서 써봤는데... 생각보다 더 좋은 ..
- Total
- Today
- Yesterday
- springboot
- Kotlin
- ChatGPT
- Log
- 코딩테스트
- elasticsearch
- JWT
- GIT
- 람다
- Elastic cloud
- EKS
- docker
- AWS EC2
- java
- terraform
- lambda
- Spring
- AOP
- chat GPT
- 스프링부트
- AWS
- awskrug
- S3
- OpenAI
- serverless
- CloudFront
- openAI API
- jenkins
- cache
- MySQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |