본문 바로가기

⚡BACKEND99

[Spring] 명시적 엔티티 리프레시를 지양하기 위한 트랜잭션 분리 방법 클로디 개발 과정 중 재미있는 소재거리가 또 있어서 고민 및 구현 과정에 대해 소개하고자 한다. 다음 스프린트 최대한 빨리 주말에 해치워보자~~~ 문제 상황우선 클로디는 일기를 작성 한 뒤 광고를 보면 즉시 일기에 대한 답변을 받아볼 수 있다.기존 코드 양상은 아래와 같았다. /** * 광고 시청 후 즉시 답변을 처리하는 메서드 */@Override@Transactionalpublic void processAdReply(ReplyAdRequest replyAdRequest, ZoneId timezone) { LocalDate diaryDate = LocalDate.of(replyAdRequest.year(), replyAdRequest.month(), replyAdRequest.date()); .. 2025. 11. 29.
[자동화] 자동화는 '시스템 설계'이다 최근에 바빴어도 시간 내서 또 세미나를 들으러 갔다 왔다. 주제는 AI를 활용한 자동화!! 이 세미나 시간을 통해 환기했던 내용을 소개하고자 한다. 자동화는 '시스템 설계'이다n8n... 이러한 기술 툴은 IT&AI 산업에 조금이라도 관심을 가지고 있다면 한 번은 들어봤을 법한 키워드일 것이다.n8n이 뭐길래? 하지만 n8n보다 더 중요한 본질이 있다. 세상은 너무 빠르게 변화하고 있다 특히, IT 업계는 the욱the... 개인이, 비개발자가, AI를 활용한 자동화 시스템을 "직접" 만들 수 있게 되었다.실제로 클로디를 하면서도 비개발자 팀원이 원래는 사용자 문의 사항이 들어오면 디코로 직접 알렸는데, 구글 AppScript를 활용해서 디코 전송 과정을 자동화했다. 위 사례를 보면서도,, 이제 핵심은.. 2025. 11. 28.
[AWS] Bot이 서비스를 공격한다? 어림 없게 해야지!! Bot이 Command Injeciton 시도를 하려는 정황이 발견되어, ALB WAF 구축하고 CloudWatch log 연동해 장기적 관점에서 보안 유지 보수를 용이하게 한 시스템 구축 과정을 소개하려 한다.(이제는 두괄식이 습관..) 문제 상황클로디 팀원들은 디코로도 소통을 하는데, 디코에 각종 200이 아닌 statusCode를 클라이언트에게 반환 시(특히 500은 매우 중요하므로) 알림이 가도록 되어있다. 그런데 최근 운영 서버 ip로 query string 방식의 이상한 무언가를 보내는 사건이 있었다. 아래와 같이 공격자가 서버에 악성 스크립트를 즉시 실행하도록 보내고 있던 것이다.그리고 공격자는 bot으로 짐작된다... ip 주소와 포트 번호를 brute force로 조합해서 매크로 마냥 난.. 2025. 11. 22.
직접 개발한 서비스, 코엑스 부스 운영으로 소개되다 현재 서버 리드로 활동하고 있는, AI 기반 감사 일기 서비스 '클로디'가 오늘 코엑스에서 소개되었다. 그동안 다양한 실서비스 운영을 해보았지만, 이렇게 창업 부스에 그것도 내가 엄청난 열정과 애정을 가지고 임했던 서비스가 공식적인 자리에 힘입어 소개가 되어서 뿌듯했다. 내가 살면서 이런 경험도 해보다니,,, 처음 IT에 입문했을 때와 비교해보면 의미 있는 성과라는 생각이 든다. 몇몇 팀들의 피칭 발표를 들으면서, 한국만을 대상으로 할 때와 글로벌을 대상으로 할 때 관점이 어디까지 넓어질 수 있는지와 그 과정에서 서비스의 고도화를 위해서는 어떤 전략이 필요한지를 다시 한 번 느낄 수 있었다. 클로디 시연과 그에 따른 제품 설명 과정을 지켜보면서 사용자가 직접 서비스를 체험하는 순간마다, 팀에서 고.. 2025. 10. 29.
[오픈소스] spring-batch, 첫 오픈소스 기여의 시작 오늘 오픈소스 첫 기여에 성공했다.올해 9월 초에 올린 PR이 오늘 머지가 되었다는 메인테이너 분의 답글을 받았다. - 내가 올린 PRhttps://github.com/spring-projects/spring-batch/pull/4967 Clarify Javadoc for FaultTolerantStepBuilder#skipLimit by rla124 · Pull Request #4967 · spring-projects/spring-batchFixes #4963 Summary The current Javadoc for the FaultTolerantStepBuilder#skipLimit method is misleading. It states that the skip limit is "ignored" w.. 2025. 10. 22.
[DevOps] Ansible 마스터하기 1편 : Ansible은 무엇인가 개발 및 인프라 자동화에 관심 갖고 이것저것 파보던 중, 지인을 통해 엔서블이라는 것을 알게 되었다. 그래서 시작하는 첫 시리즈 의 첫번째 게시글이다. 처음 IaC 개념을 접하던 것은 2024년 1학기이다. IaC를 혼자 막 해보면서 그 때 정말 재미있어 했던 기억이 있다.다시 지금, 개인적으로 공부해보고 싶었던 IaC를 다시 또 배워가고자 한다. 최근 엔서블을 들었을 때 아얘 모르던 용어라 잘못 들어서 "N-Server요?" 이런 반응을 내가 보였는데,,나처럼 엔서블에 문외한인 사람도 엔서블이 뭔지는 알 수 있도록 이해한걸 풀어보고자 한다. Ansible이란 무엇이고 왜 사용하는가Ansible은 IT 인프라를 자동으로 구성하고, SW를 배포하며 다양한 시스템 관리 작업을 수행하는 오픈소스 자동화 도구.. 2025. 9. 2.
[AI] 바이브 코딩, 개발자를 위한 프롬프트 작성 테크닉 언제 또 참여할지 모르는 세미나!! 지금까지 다 대면으로 여러 컨퍼런스, 강연 등 참여해왔는데 이번에는 온라인으로 참여했다. 역시 현장의 기운을 느끼려면 대면이 좋은 것 같다. # 개발자를 위한 프롬프트 작성 테크닉 다른 분들 은 어떻게 개발하고 있는지 궁금해서 듣게 되었다. 현직 서비스 개발자들은 어떻게 바이브 코딩을 하고 있을까? 다른 개발자들은 AI 개발 도구를 어떻게 활용하고 있을지 궁금했다. 결국 프롬프트를 잘 써야 한다일반적으로는 어떤 기능을 구현해야 한다면 → 개발자가 알아서 구현 → 코드 리뷰를 진행한다. 하지만 아래 프롬프트 특화 프로세스를 통해 위 과정에서마저도 개발자의 노고를 줄일 수 있다고 한다.프롬프트 초안 작성 → 프리모템 → 피어리뷰 → 포스트모템결국 코드 리뷰가 아니라 프롬프.. 2025. 8. 28.
[아산 두어스] 2025 아산 두어스 수료 및 2관왕 정주영 창업 경진대회 아산 두어스를 통해 배운점2025년 8월 18일부터 오늘 20일까지 2박 3일 간의 합숙 교육을 최종적으로 마쳤다. 해당 합숙 교육을 통해서 결승이라고 볼 수 있는 데모데이에 참가하게 될 상위 7개의 팀을 선발하기로 되어있었다.결론부터 말하자면, 아쉽게도 클로디 팀은 데모데이에 참가는 못하게 되었지만(아니 다들 성과가 장난아니었다..) 합숙 마지막날 그동안의 팀별 IR 발표와 팀의 성과, 그리고 아산 두어스의 철학인 '도전, 개척'을 잘 드러낼 수 있는 팀 워크를 인정 받아 2개의 상을 수상하게 되었다. 그래서 데모데이에서 부스 운영권이 주어졌다. 감사하게도~ 내가 정주영 창업 경진대회에서 수상한 상을 포함하여 개발 관련해서 받았던 상들 중 오늘이 가장 뿌듯한 순간이었던 것 같다. .. 2025. 8. 20.
[아산 두어스] 외부 SDK나 API에 의존성이 높은 서비스의 양면성 클로디를 개발하면서 정신적, 육체적으로 에너지 소모가 큰 사건들을 접하게 되는데 이 게시글에서 다룰 사건도 그 중 하나이다. 문제 상황클로디 서비스는 유저가 일기를 작성하면 AI 캐릭터가 답장을 주는 구조로 한국어의 경우는 Azure를 이용하고 영어의 경우 AWS Bedrock Claude를 이용한다.그런데 2025년 8월 14일부터 작성되는 모든 일기에 대한 답변이 일기내용과 동일하게 DB에 박히기 시작했고, 여기서부터 사건은 시작된다. 해결 과정일기가 작성되어 diary create event가 트리거가 되면 연쇄적으로 event가 publish 되어 궁극적으로 아래 코드에 도달하게 된다.@Overridepublic void createReply(DequeuedMessage messageContent.. 2025. 8. 15.
[Dev] MCP의 무한한 활용 지평선 두둥탁!!! 최근에 또 IT 기술 세미나에 다녀와서 인사이트를 얻고 왔다~배운 내용을 간략하게 소개하며 기록으로 남기고자 한다. #1. MCP for n8n Workflow Automation해당 세션을 통해서 배운 깨달음은 MCP & N8N으로 슈퍼 에이전트를 실현할 수 있다는 점이다. 아직까지 실무에서 n8n의 현실적인 쓰임새는 "사무 자동화"에 한정되어있다. 하지만 첫 번째 연사님의 시연 모습을 보면서 MCP의 영향력과 n8n의 조합이 만들어낼 수 있는 시너지가 폭발적이라는 생각이 들었다. 사실 MCP는...MCP는 현재 기술명으로 불리지만 사실 MCP는 주인공이 아니라 언어 모델 기반 채팅 서비스 도구로써의 역할을 한다. Claude, GPT 등을 MCP host라고 부르고, MCP는 사실 통로.. 2025. 8. 2.
[아산 두어스] AWS SQS 과금 비용 문의 후 환불 받기 문제 상황2025년 7월 16-17일에 거쳐 모든 이전 AWS 계정의 리소스를 해제하고 이관을 마쳤다.그런데 왜 AWS SQS 관련 과금이 청구되었을까AWS cost explorer를 봤는데 평소에는 백자리 대 요청이었는데 갑자기 1억 가까이 찍혔다 뭐가 문제일까 싶었는데 SQS를 삭제해두어서 관련 로그를 보기가 힘들었고, 어떻게 찾아볼 수 있을까 하다가 CloudTrail을 알게 되었다. AWS 로그 추적 : CloudTrail이번의 사건으로 AWS CloudTrail을 통해서 이용한 서비스에 대한 이벤트 로그를 확인할 수 있다는 것을 알게 되었다. SQS 트래픽이 현재 서비스를 이용하는 유저가 요청할 수 있는 수치를 너무 많이 초과하고 있었기 때문에Lambda나 EventBuilder를 통해서 SQS.. 2025. 8. 2.
[아산두어스] 다운타임 없이 서버 마이그레이션을 할 수는 없었을까 2025.07.16 클로디 서비스 다운타임 및 재정상화 과정 회고아산두어스 클로디 서비스를 위 날짜에 이전 AWS 계정에서 크레딧을 받는 AWS 계정으로 모든 인프라 설정 및 서버, DB 이관을 모두 완료했다.이 게시글은 어제 이관 완료 및 서비스 정상화 이후 과정을 돌이켜보면서 생각해본 단순 회고글이다. 다운타임을 결정한 이유프로젝트 특징 상 감사일기를 쓰면 AI가 답장을 해주는 구조이고, 일기를 쓰면 수정 및 삭제 시간을 고려해서 AWS SQS fifo 큐를 이용해서 2시간 동안 enqueue를 지속한다. 그리고 이 두 시간이 지나면 큐에서 out된 데이터를 가지고 로디와 통신하여 받은 응답을 DB에 저장한다. 즉, 일기를 쓰고 2시간이 지나야 DB에 데이터가 박히는... write 되는 것이다. 그.. 2025. 7. 17.
[아산 두어스] 정주영 창업 경진대회 참여 시작 작년에 타대 창업팀에 소속되어 백엔드 개발 파트를 맡은 적이 있으나 무산되어 개인적으로 기획부터 개발 프로세스까지 아쉬움이 남았었고, 그래서 더욱 '창업'에 대한 도전에 미련이 남아있었다. 하지만, 올해 6월.. 좋은 기회로 정주영 창업 경진대회 아산 두어스 트랙에 선정된 '클로디' 감사 일기 서비스에 백엔드 개발자로 합류하게 되었다. 나도 2025 정주영 창업 경진대회 아산 두어스의 일원이 되었다!!(AWS 등 서비스 개발 시 부과되는 모든 비용을 지원해준다는 점이 큰 장점이다...) https://startup.asan-nanum.org/ 정주영 창업경진대회전국에 기업가 정신과 창업 문화를 확산하고, 유망한 스타트업을 발굴하여 지원하는 아산나눔재단의 실전형 창업 지원 프로그램startup.asan-.. 2025. 7. 3.
[AI] LLM과 파인튜닝 지난 주 판교에서 진행된 "LLM 모델 & 파인튜닝"을 주제로 하는 세미나에 다녀왔다. 이 세미나를 통해 배운 실무 트랜드와 인사이트를 기록하고자 한다. #1. 작은 LLM(sLLM), 현업 적용을 위한 작은 전략해당 세션에서는 sLLM이 작은 모델로서는 가치가 있지만 크게 활용되기는 쉽지 않은데, 할루시네이션 상황에서 어떻게 대처해야하는지에 대한 가이드라인을 배울 수 있었다. 실무에서도 파인튜닝은 최후의 보류 수단이라는 인식이 강한 것을 느꼈는데, 파인튜닝까지 오기 전 시도해볼 법한 여러 기법들을 먼저 살펴보자. 1. 프롬프트 엔지니어링- 좋은 프롬프트는 모델의 출력을 크게 향상시킨다- 하지만 모르는 것을 가르칠 수는 없다- 모델이 원하는대로 출력을 안하는 문제는 명확한 프롬프트를 통해 개선이 가능하다.. 2025. 6. 30.
[AI] n8n로 시작하는 AI 자동화 지금은 종강했지만 일주일 전 기말고사 시험치는 주간 n8n 관련 세미나를 듣게 되었다. 나는 n8n이라는 키워드 자체를 처음 들어봤는데 이미 현직에서는 종종 쓰이고 있었다. 이 게시글에 n8n에 대해서 정리하고자 한다. https://n8n.io/?ps_partner_key=MDMyZTM4ODBlNzQw&ps_xid=xnSSORXmutOk3N&gsxid=xnSSORXmutOk3N&gspk=MDMyZTM4ODBlNzQw AI 자동화의 핵심은? 워크 플로우n8n은 반복되는 업무를 자동화할 수 있는 AI Agent 계열의 서비스 중 하나이다."자동화"는 현업에서 많이 중요시하는 키워드이다. 이를 체계적으로 구현하기 위해 n8n이라는 선택지를 통해서 한 번 이를 활용해보고자 한다. n8n이란?n8n은 Node... 2025. 6. 25.