NOWIL's Dev Blog
Preview Image

Datadog 관측성 구축기 — LLM Observability부터 구조화 로그까지

Datadog 관측성 구축기 — LLM Observability부터 구조화 로그까지 안녕하세요. Jobdori 프로젝트에서 백엔드 개발을 맡은 정지원입니다. 서비스에 OpenAI 호출과 채용 공고 크롤링이 들어오면서 단순한 에러 수집만으로는 답하기 어려운 질문이 늘었습니다. 어떤 AI 기능이 느린가? 모델별 토큰 사용량과 비용은 어떻게 ...

Preview Image

JD 크롤러 구현기 — 정적 HTML 파싱부터 SSRF 방어까지

JD 크롤러 구현기 – 정적 HTML 파싱부터 SSRF 방어까지 안녕하세요. Jobdori 프로젝트에서 백엔드 개발을 맡은 정지원입니다. Jobdori는 사용자가 채용 공고(Job Description, 이하 JD)를 등록하면 공고의 핵심 정보를 구조화하고, 사용자의 프로필과 경험을 바탕으로 지원 전략을 생성합니다. 사용자가 긴 공고를 직접 복사하...

Preview Image

AI 대화 후처리 개선기 — 응답 트랜잭션에서 요약·친밀도·보상을 분리하기까지

AI 대화 후처리 개선기 — 응답 트랜잭션에서 요약·친밀도·보상을 분리하기까지 안녕하세요. duurian 팀에서 백엔드 개발을 담당하고 있는 정지원입니다. AI 대화의 마지막 턴에는 사용자에게 답변을 돌려주는 일 외에도 많은 작업이 따라옵니다. 대화를 요약하고, 대화 품질을 판별하고, 친밀도를 갱신하고, 조건에 맞으면 보상을 생성해야 합니다. 처음...

Preview Image

리워드 책임 분리 개발기 — 생성,수령, 충전을 하나의 흐름에서 떼어내기

리워드 책임 분리 개발기 — 생성, 수령, 충전을 하나의 흐름에서 떼어내기 안녕하세요. duurian 팀에서 백엔드 개발을 담당하고 있는 정지원입니다. 처음 대화 연속일수 보상을 만들 때의 흐름은 직관적이었습니다. 조건을 만족하면 리워드를 생성하고 곧바로 두리안을 충전했습니다. 작은 기능일 때는 한 메서드에서 모든 일이 끝나는 편이 이해하기 쉬웠습...

Preview Image

[MCP] Blog Generator MCP 개발기 — AI로 기술 블로그를 자동 생성하는 MCP 서버 만들기

[MCP] Blog Generator MCP 개발 심층 분석: AI로 기술 블로그 자동 생성 서버 구축기 안녕하세요. 백엔드 개발자 정지원입니다. 현재 AI를 활용한 개발 자동화 도구 개발에 몰두하고 있습니다. 이 글은 Blog Generator MCP의 설계부터 6번의 메이저 버전 업그레이드까지의 여정을 심층적으로 다룹니다. 재미있는 점은, 이 글...

Preview Image

중복 리워드 수령 방지 개발기 — 조회 후 저장 대신 상태 조건 UPDATE를 선택한 이유

중복 리워드 수령 방지 개발기 — 조회 후 저장 대신 상태 조건 UPDATE를 선택한 이유 안녕하세요. duurian 팀에서 백엔드 개발을 담당하고 있는 정지원입니다. 리워드 수령 API의 코드는 처음 보면 단순합니다. 보상을 조회하고, 아직 받지 않았다면 상태를 RECEIVED로 바꾼 뒤 두리안을 충전하면 됩니다. 그러나 모바일 네트워크 재시도,...

Preview Image

TIL #1 [JAVA] Static 키워드에 대해

계기 스프링 프로젝트를 진행하면서 임시 데이터베이스 구현할때, MySQL과 같은 데이터베이스 서버를 사용하지 않고, 임시로 인메모리에 데이터를 저장하는 방식을 구현하였다. 이때, Database 클래스의 맴버 변수로 엔티티 리스트를 저장할 때 static 키워드를 사용하는 예제를 보고 static 키워드의 의미와 언제 사용해야 하는지 정리하였다. ...