
개요간단한 검색 기능을 넣어놨는데... iOS에서 올린 데이터가 검색이 안된다는 이슈가 올라왔다. 그래서 DB를 뒤적거려보니... 아래와 같이 저장되어 있었다. 사실 처음부터 데이터가 이렇게 저장되고 있다는건 알고 있긴했다. 그런데, 문자열 기반 검색이 아닌 단순 조회에서는 신기하게 제대로 출력되서 큰 걱정은 안하고 있었다. 그런데 문자열 기반 검색이 안되기 때문에 조치가 필요했다. 가장 쉬운 방법은 쿼리에서 데이터 마이그레이션을 하고, 클라이언트에서 NFC 방식으로 업로드하는 것을 유도하는 것이다. 그런데, 클라이언트가 바로 패치를 못하는 경우가 있다. 이 때는 서버에서 단독으로 조치를 해줘야한다. 해결 방법을 하나씩 알아보자. 1. PostgresSQL에서 NFD방식을 NFC로 마이그레이션하기특정 버..

재귀(再歸)란? 주어진 문제를 해결하기 위하여 하나의 함수에서 자신을 다시 호출하여 작업을 수행하는 방식. 어떤 루틴이나 프러시저가 자기 자신을 반복적으로 호출하여 문제를 풀어 나가는 알고리즘으로, 이를 이용하기 위해서는 스택을 사용한다. 간단한 루틴을 풀 수 있지만, 처리 속도가 느리고 횟수가 지나치게 많으면 프로그램이 정지하기도 한다. - 네이버 사전 재귀 문제의 대표적인 예로는 피보나치 문제가 있다. 위의 인용에서도 언급하고 있지만, 재귀라는 방식 자체가 시간복잡도를 줄여주는 방식은 아니다. 그러나 메모이제이션이라는 방식을 통해 중간 결과를 저장해두는 방식으로 처리한다면, 계산 횟수를 많이 줄일 수 있다. 또 다른 방법으로는 조건문을 통해서 불필요한 가지를 쳐내는 방식으로도 계산횟수를 줄인다. 이번..

백준에서 코테 문제를 풀다보면 느끼겠지만, 입/출력 쪽에서 시간 초과가 자주 발생한다. (분명 알고리즘은 맞았는데, 계속 시간초과가 나면 대부분 이 문제다..) 각각 어떤 곳에서 문제가 발생하는지 파헤쳐보자. 입력 문제 입력에 문제가 생기는 경우는 대부분 Scanner를 써서 여러번 next()나 nextInt()으로 가져오는 경우다. 입력에 문제가 생겼던 문제는 탑 이었다. 50만번은 딱히 많아보이지 않는 갯수이다. N번 정도는 그냥 하면 되는거 아냐? 라고 생각할 수 있겠지만 next의 코드를 따라가보면 문제가 있다는 걸 알 수 있다. public String next(Pattern pattern) { ensureOpen(); if (pattern == null) throw new NullPointe..

멘토링 준비도 할 겸해서 코딩 테스트 고수 지인 분의 도움을 받아 코딩 테스트 문제를 조금씩 풀고 있다. 솔직히 피곤하고 힘들지만 한달간 꾸준히 푼 결과 solved.ac에서 측정하는 레벨이 꽤나 올랐다. 어떤 카테고리부터 푸는게 좋을지 고민 중이었는데, 스택을 추천 받았다. 그런데, 스택 코딩 테스트 문제는 일반적인 자료구조 사용법과 같이 만만하지 않았다. 브론즈부터 벽을 좀 느꼈달까 문제를 푼 순서는 다음과 같다. 1. 막대기 : https://www.acmicpc.net/problem/17608 2. 괄호 : https://www.acmicpc.net/problem/9012 3. 탑 : https://www.acmicpc.net/problem/2493 4. 스카이라인 쉬운거 : https://www..

갑작스럽게 떨어진 오더(C레벨에서부터 내려온)로 인해 월드 ID를 이용한 인증 시스템 개발 업무가 추가됐다. 왜 이런 오더가 떨어졌냐를 생각하기전에 월드 ID가 뭐인지부터 알아보자. 월드 ID란? World ID는 영지식 증명과 고급 개인 정보 보호 암호화를 통해 사용자가 익명으로 자신의 고유성과 인간성을 증명할 수 있는 디지털 신원 솔루션입니다. World ID는 클라우드 및 온체인 앱 모두에 쉽게 통합할 수 있습니다. 유효한 월드 ID를 가진 사용자는 월드 앱과 같은 월드 ID 호환 지갑을 통해 익명으로 자신이 고유한 인간임을 몇 초 만에 확인할 수 있습니다. https://docs.worldcoin.org/world-id 굳이 인증 과정을 기존 방식이 아닌 다른 컨셉으로 해야하나?란 생각이 들지만 ..

번역 API에 대한 기술 검토 중에 문서 번역에 대한 요청을 받게 됐다. 이런 저런 방법에 대한 고민을 해보다가 직접하는 것보단 통합으로 제공하는 곳이 없을까 찾아봤다. 그리고, GCP에서 제공하는 Document Translation API를 알게 됐다. Document Translation API는 Cloud Translation API 일부인데, 말 그대로 구글에서 제공하는 번역 API 에서 제공하는 세부 기능 중 하나다. API를 자유롭게 사용할 수 있으면 좋겠지만, 유료 결제를 등록한 계정만 사용할 수 있다. 카드 등록도 해야 쓸 수 있다. 일단은 무료 크레딧으로 사용해보기로 하고, 하나씩 시작해보자. 1. 서비스 계정 만들고 키 발급 받기 처음 시작은 indexing API와 크게 다르지않다...

PDF 파일의 내부 데이터를 핸들링할 일이 생겼다. 처음에 든 생각은 PDF 파일을 XML 형태로 바꾸면 되지 않을까?라고 생각을 했는데, XML 형태든 JSON 형태든 파일 형식을 바꿔버리면, 표나 이미지 글자 크기 등이 제대로 반영이 되지 않을 것 같았다. 물론할 수는 있겠지만 아마 솔루션 개발급 공수가 들어가지 않을까? 란 견적이 서서 다른 방법이 없나 찾아봤다. 찾다보니 가장 그럴듯한게 HTML로 변환 하는 것이었다. PDF box와 css box를 이용하는 방법인데 라이브러리를 쓰면 되다보니 그렇게 어렵지 않다. 하나씩 해보자. 코드 gradle # commons-io를 낮은 버전을 쓰고 있으면 버전업해야함, 안쓰고 있으면 필요 x implementation 'commons-io:commons-..

이전 글에서 SEO 노출도를 올리기 위한 indexing API 작업을 했다. 그런데 문제가 있는게 indexing API는 하루에 200회의 제한이 있다. https://developers.google.com/search/apis/indexing-api/v3/quota-pricing?hl=ko 제한 횟수를 늘려달라고 요청할 수 있는데, 구글 친구들은 늘 그렇듯이 언제 해줄 수 있다고 알려주지 않는다. 그렇다고 한 개씩 등록하면(요청하면) HTTP 연결풀을 순간적으로 많이 잡아먹으니까 한번에 보낼 수 있는 방법을 만들어 뒀다. 일괄 색인 생성 요청 보내기라는 섹션을 만들어 둘 정도로 써달라고 만들어뒀는데... 이게 일단 예시를 바로 가져다 쓸 수 있게 생기질 않았다. https://googleapis.g..
- Total
- Today
- Yesterday
- Spring
- Log
- AOP
- 오블완
- springboot
- openAI API
- Elastic cloud
- JWT
- AWS EC2
- 스프링부트
- serverless
- CloudFront
- GIT
- EKS
- ChatGPT
- lambda
- java
- S3
- AWS
- cache
- MySQL
- 람다
- docker
- terraform
- OpenAI
- object
- elasticsearch
- 후쿠오카
- 티스토리챌린지
- Kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |