개발자는 원래 직업을 없애는 직군이었다
·
Backend/AI-Native
1. 개발자는 원래 직없을 없애는 직군이었다.누군가의 밥벌이를 코드로 치환하는 것.그것이 개발자가 지금껏 해온 일이다. 회계사가 밤을 새워 장부를 맞추던 시절이 있었다.숫자 하나 틀리면 처음부터 다시, 연필과 계산기 사이에서 수천 줄의 거래 내역을 눈으로 훑던 시절.ERP 시스템이 그 자리를 가져갔다. 은행 창구에 줄을 서서 통장에 도장을 찍던 시절이 있었다.인터넷 뱅킹이 그 줄을 없앴다. 공장에서 사람이 육안으로 불량품을 골라내던 시절이 있었다.자동화 검수 시스템이 그 눈을 대체했다. 그 뒤에는 항상 개발자가 있었다. 개발자는 이 과정을 "비효율의 제거", "자동화", "혁신"이라고 불렀다.틀린 말은 아니다. 실제로 비효율적이었고, 실제로 자동화가 되었고, 실제로 혁신이었다.다만 그 혁신의 이면에는 항..
[OpenSearch] 데이터가 만 건밖에 조회가 안 돼요
·
Backend/OpenSearch
1. Introduction 📌 "It's only got 10,000 downloads!"학생 때는 서버 운영비가 부족해서 OpenSearch를 만져볼 겨를이 없었고, 애초에 데이터가 만 건이나 쌓일 일도 없었다.그래서 OpenSearch에 Pagination으로 정보를 조회하는 기능에서 "데이터가 최대 만 개밖에 다운이 안 돼요!"라는 말을 들었을 때, 지난 번에 count가 제대로 되지 않는 이슈 때문이겠거니 싶었다. 무슨 소리냐면, OpenSearch Count API Doc에서 나오듯 track_total_hits 파라미터를 true로 설정하지 않으면 count가 최대 10,000개밖에 표시되지 않는 이슈(ElasticSearch도 마찬가지라고 한다)가 있었는데,구현해놓은 OpenSearch ..
[Spring] @Value이 가져오는 property 구분자 전후의 공백은 어디서 무시될까
·
Backend/Spring Boot & JPA
⚠️ 너무 구버전 스프링이라 최근 버전이랑 플로우 자체는 안 맞을 수도 있습니다.1. Introduction 📌 Mistake대체 왜 이런 실수를 했는지는 아직도 모르겠지만, properties에 설정을 넣다가 한 가지 실수를 했었다.server.url= http://localhost.com위와 같이 "키=값"이 아닌, "키= 값" 형태로 중간에 공백을 둔 것. (예시는 실제와 다릅니다)여튼 로컬 및 개발 서버에서도 문제가 없어서 실수한지도 몰랐는데, 병합하던 사수 분께서 뒤늦게 공백을 발견하고 말씀해주셔서 알게 되었다. 찝찝해서 수정 커밋을 올리긴 했는데, 문득 이유가 궁금해졌다.구분자 사이의 공백이 사라진 건 spring의 스펙일까, java의 스펙일까? 정답을 먼저 적어놓자면, 이건 java의 스..
kotlin koog AI Agent
·
Backend/kotlin
1. Introduction 📌 Backgroundkoog 이 자식.Jetbrain KotlinConf 2025 영상에서 처음 보고 완전히 반해서 만져보고는 있는데, 역시 beta 버전에는 손을 대면 안 됐던 걸까.버전 관리의 중요성에 대해 여실히 느끼는 중이다. 이번 포스팅은 정말 간단하게 돌아가는 정도의 AI Agent를 만들고, docker로 MCP 띄워서 tool로 제공하는 것까지만 할 것이다.왜냐하면, 나도 이제 막 그 정도만 하고 왔기 때문. 버전은 다음과 같다.kotlin 2.2.20koog-agents 0.5.2kotlinx-coroutines 1.10.2나도 koog-agents 최신 버전이 0.5.3이라는 거 알고 있다.그런데 그거 사용하면 자꾸 `SerializationExcepti..