Intro아이를 위한 어린이용 단어장을 만들면서 한국어와 영어 음성을 넣어야 할 일이 생겼다. 무료이거나 비용이 거의 들지 않으면서, 라이선스 문제 없이 상업적으로도 사용 가능한 TTS 서비스가 필요했다. 여러 서비스를 직접 비교해본 끝에 결론부터 말하면 Microsoft Azure Text-to-Speech를 선택했다.비교해본 서비스들TTS 서비스를 고를 때 가장 중요하게 본 기준은 세 가지였다. 음성 품질, 무료 사용량, 그리고 라이선스.네이버 클로바더빙한국어 음성 품질만 놓고 보면 클로바더빙이 꽤 괜찮았다. 자연스러운 한국어 발음과 다양한 목소리를 제공하고 있어서 첫인상은 좋았다. 다만 무료 사용 시 반드시 출처를 표기해야 하고, 상업 콘텐츠 제작에는 사용할 수 없다는 제약이 있다. 당장 수익화 계..
Development 196
Intro요즘에는 codex-cli와 Claude Code를 번갈아가며 쓰고 있다.AGENTS.md 파일을 만들고 ln -s AGENTS.md CLAUDE.md 명령어로 심볼릭 링크를 만들면 두 코딩 에이전트가 같은 컨텍스트 파일을 공유한다. 둘 다 성능이 매우 훌륭해 상황에 따라 골라 쓰기만 하면 된다.Claude Code는 5h limit이 빡빡해서 주간 리밋에 걸리는 일은 거의 없고, Codex는 5h limit은 넉넉하지만 Weekly limit에 쉽게 닿는 구조다. 그래서 평소에는 Claude Code Sonnet 4.5를 메인으로 사용하다가 5시간 제한에 걸리거나 Sonnet으로 풀기 어려운 문제가 있으면 codex-cli에서 gpt-5-codex-high 모델을 꺼낸다. 월 $20 + $20..
지난 두 번의 리트코드 티셔츠Leetcode 1년, 드디어 리트코드 티셔츠2023.01.25첫 번째 티셔츠를 받기까지는 정말 어려운 도전이라고 생각했다. 매일같이 포인트를 확인하며, 드디어 6,000 포인트를 다 모았을 때는 두근거림과 설렘이 교차했다. 처음엔 너무 마음에 들어서 회사에도 입고 간 적도 있었다.두번째 LeetCode 티셔츠2024.03.27두 번째 티셔츠는 약 14개월 만에 받았다. 이번엔 열심히 챙겨 모은 게 아니라, 그냥 하다 보니 어느새 포인트가 쌓여 있었다. 심지어 6,000포인트를 다 모은 뒤에도 며칠 동안 모르고 지나쳤다가 늦게 신청했다. 돈 한 푼 안 썼는데도 여전히 무료로 집 앞까지 배송해주는 게 참 고마웠다.세번째 티셔츠2025.08.27지난 겨울쯤, 리트코드 후디가 7,..
문제새로운 서버에 애플리케이션을 배포하는 과정에서 예상하지 못한 오류가 발생했다. 로컬 머신과 개발 환경에선 전혀 문제가 없었고 지금까지 여러번 배포하며 같은 문제가 발생한 적이 없었는데 FileCountLimitExceededException 라는 처음 보는 에러가 발생했다.POST 요청으로 multipart/form-data 를 사용해 데이터를 추가하는 엔드포인트였고, 이 폼은 몇개의 텍스트 필드와 파일 필드로 구성되어 있다.Failed to parse multipart servlet request; nested exception is org.apache.tomcat.util.http.fileupload.impl.FileCountLimitExceededException: attachment전체 스택 ..
IntroJekyll 개발 환경을 세팅할 때 정말 편한 점은, 파일을 수정하면 자동으로 변경사항을 감지해서 즉시 빌드해준다는 점이다. 거기에 --livereload 옵션까지 준다면 브라우저를 새로고침 할 필요도 없다. 그런데, 동료의 PC에 jekyll 개발환경을 세팅해주던 중 문제가 발생했다. 아무리 파일을 수정해도 즉시 반영이 안된다.내가 가진 리눅스 환경 및 맥북에서 모두 잘 작동하던 게 다른 동료의 맥북에서는 안 되었던 이유가 뭘까? 결론적으로는 --force_polling 옵션으로 해결했다.본 글에서는 왜 이게 필요한지, 또 어떤 환경에서 이런 문제가 발생하는지 정리해본다.현상Jekyll 서버는 잘 뜬다. 로그도 잘 찍힌다. 하지만 파일을 수정하고 저장해도 아무런 재 빌드 반응이 없다.bundl..