![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dGe5H8/btsrffx5BsZ/Oh4jzA8M2WKmKAeXtEDm9K/img.png)
작은 프로젝트로 텍스트 기반 검색 기능을 구현할 일이 생겼다. 처음에는 너무 막연했는데 Elasticsearch에서 텍스트 유사도 검색이라는 기능을 제공하는 것을 알게되었다. https://www.elastic.co/kr/blog/text-similarity-search-with-vectors-in-elasticsearch 벡터 필드를 사용한 Elasticsearch의 텍스트 유사도 검색 Elasticsearch 7.3 릴리즈에서는 벡터를 사용하여 문서 점수를 매기는 기능을 제공합니다. 이 게시물에서는 텍스트 임베딩과 벡터 필드를 사용하여 유사도를 검색하는 방법을 살펴봅니다. www.elastic.co 이 문서를 기반으로 Elasticseach cloud + Springboot를 이용해 검색 기능을 구현..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/4yYUy/btsrfgKaBgh/eOOzxtbkekZVAyx07dSpaK/img.png)
GitHub의 Copilot이 코드를 자동생성해주듯이 같이 DBeaver에서도 쿼리를 자동생성해주는 툴이 있다고 한다. 정확히는 GPT 플러그인을 따로 설치해야되는데 일단은 무료니까 한번 사용해봤다. DBeaver에서는 아래와 같이 설명하고 있다. DBeaver에서는 OpenAI(ChatGPT, 더 정확하게는 GPT-3 언어 모델)와의 통합해 인간 언어를 사용하여 작업 중인 SQL 쿼리를 구축할 수 있습니다. DBeaver에서는 해당 기능의 이름을 AI Smart Assistance라고 부르고 있었다. 바로 사용해보자. 1. Help(도움말) > Install New Software > AI 검색 > 체크 후 설치 > 재시작 2. Windows(윈도우) > Preferences(설정) > 편집기 > AI..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cuO9XN/btsqvj0yvO1/IkGRlUHHKd6hBJBG55xa81/img.png)
이 문제는 아마도 모든 AWS JAVA SDK 1.0 에서 일어나는 문제일테니 주의가 필요하다.. S3 SDK를 처음 서버에 적용할 때도 발생했던 문제였는데, SQS 적용 과정에서도 똑같은 문제를 겪었다. 분명 로컬에서 테스트할 때는 잘 동작하는게, dev서버만 올라가면 제대로 동작하지 않는 문제가 있었다. 서버가 배포되는 과정에서 아래와 같은 WARNING을 띄웠다. { "@timestamp": "2023-08-04T09:26:57.140Z", "message": "Ignoring queue with name '[큐이름]': The queue does not exist or no access to perform action sqs:GetQueueUrl.; nested exception is com.am..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/c1l6lH/btspZEdM4hH/KKNGR7oUQgknQHDE2FJ461/img.png)
로컬 호스트 서버에서 댓글 서비스의 웹훅을 사용해야되는데 문제가 생겼다. 웹훅을 사용하기 위해 서버의 URL을 입력해야하는 상황이었는데, localhost를 입력할 수는 없으니 말이다. 그래서 중간다리로 AWS SQS를 써보기로 했다. 파이프라인은 댓글 서버 웹훅 -> AWS Lambda -> AWS SQS -> local(SQS Listener) 구조로 잡고 구현을 시작했다. 들어가기전에 SQS가 뭔지 짚고 넘어가자. Amazon Simple Queue Service (Amazon SQS)란? Amazon Simple Queue Service (Amazon SQS)는 분산 소프트웨어 시스템 및 구성 요소를 통합 및 분리할 수 있는 안전하고 안정적이며 사용 가능한 호스팅 대기열을 제공합니다. Amazon..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bXPpIe/btsqfAhq9Sq/4ucwkkd9XXZo6yxfK4KoR0/img.png)
계속해서 쓸 곳이 생길 것 같길래 따로 분리해서 포스팅한다. 작업 환경은 Windwos 10에서 진행했다. AWS 외부에서 AWS 서비스에 접근하려면 액세스 키가 필요하다. 액세스 키 생성을 위해 AWS 로그인 후 우측 상단의 본인 계정을 클릭 한 후 보안 자격 증명을 클릭한다. 보안 자격 증명 클릭 그러면 내 보안 자격 증명 페이지에 들어와지는데 아래로 쭉 내리다보면 엑세스 키 탭이 있다. 액세스 키 만들기 버튼을 클릭한다. CLI를 사용할 것이기 CLI 선택후 다음 버튼 클릭 비밀 액세스 키를 표시한다음에 잘 저장해 두어야 한다. 이 페이지를 벗어나면 비밀 액세스 키를 다시는 볼 수 없으니 다운로드를 받아놓거나 복사를 잘 해놓자. 그리고 User > [pc 이름] > .aws 폴더 아래에 creden..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/lRx0x/btspRKysM15/kld7AQS3ezZdnse2guoDbk/img.png)
이전 글에서 자세히 다루지 못 했던 Redis Configuration을 뜯어보려고 한다. @Configuration public class RedisConfig { @Value("${spring.data.redis.host}") private String host; @Value("${spring.data.redis.port}") private int port; @Bean public RedisConnectionFactory redisConnectionFactory() { RedisStandaloneConfiguration redisConfiguration = new RedisStandaloneConfiguration(); redisConfiguration.setHostName(host); redisCo..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b4HrVH/btspUoO25eB/o9kMoXKs2XrRpVPkuVefQ0/img.png)
Elasticsearch를 cloud 환경에서 사용하고 Spring Boot와 연동하는 방법은 이전 글에서 다뤘다. 이번 포스팅은 내가 개발하면서 특이하다고 느꼈던 것 몇 가지를 정리하고자 한다. 1. credential 처리하기 credential 을 처리 하기 위해, 먼저 username과 password를 생성해야 한다. 그런데 Elastic cloud 에서 왜 숨겨놨는지 찾기 힘든 위치에 있어서 찾는데 고생을 좀했다. ES main 페이지 > 본인 계정 옆에 Manage 버튼 클릭 > 좌측 Security 를 클릭 이러면 아래 페이지가 나오는데 여기서 Reset password를 누르면 elastic user의 password가 생성된다. 복사해놓거나 다운로드한다. 이제 client에서 위에 생성..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bwloQr/btspNgYOfWT/iDCZa4dboz8FMKK0LNa7p1/img.png)
Docker 명령어는 실행이 되는데 아래와 같은 permission denied 에러를 뱉는 경우가 있다. 이 문제는 현재 사용자가 Docker 데몬에 액세스할 수 있는 권한이 없을 때 발생한다. Docker 데몬은 root 권한이 필요한 명령을 실행하기 때문에, Docker 데몬에 연결하려면 사용자가 root 권한을 줘야한다. sudo usermod -aG docker ${USER} 위 설정을 하고, 로그아웃 후 로그인하면 된다고 하는데 나는 안됐다. 그래서 에러메시지에서 말하는 docker.sock에 접근할 수 있는 권한을 줬다. sudo chmod 666 /var/run/docker.sock 이 명령어 이후에는 에러가 발생하지 않는다.
- Total
- Today
- Yesterday
- lambda
- serverless
- 람다
- AOP
- Elastic cloud
- Kotlin
- OpenFeign
- OpenAI
- EKS
- ChatGPT
- 후쿠오카
- elasticsearch
- cache
- 오블완
- S3
- CloudFront
- AWS
- JWT
- springboot
- Spring
- GIT
- AWS EC2
- 스프링부트
- terraform
- Log
- openAI API
- 티스토리챌린지
- docker
- java
- 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 |