2025/06 5

[망원] 기요한 - 카이센동

기요한은 체인점이라, 서울에도 3-4군데 지점이 있다.지점 바이 지점이 심하다고해서 고심하다가 회가 신선해보이는 망원으로 와봤다. 체인점은 루슐랭 맛집으로 올리기에 나만의 감점요소이지만, 그럼에도 불구하고 올린이유는 다음 2가지 이유 때문이다.1. 17000원에 나오는 훌륭한 미니 코스 (두부 - 사시미 - 본식 - 도미곰탕 - 디저트 녹차모찌?)2. 기요한이 아니라면 일본에서 밖에 먹지 못하는 특별함 사실 저렇게 떡밥처럼 뭉친 카이센동은 일본 니혼바시의 츠지한이 원조다.츠지한도 추천받은 집이지만, 일본에 너무 먹을게 많고 겉보기에 비릴것같아서 방문하지 않았는데, 기요한을 맛보고나니 방문의사가 생겼다! 떡밥(?)은 비리거나 어묵맛이 날 것같아보이지만 전혀 그렇지 않다. 뭐가 들어갔는진 정확히 알 수 없지..

실생활 예시로 이해하는 스윕 라인 알고리즘 (Sweep line Algorithm)

Sweep은 “쓸다”라는 의미를 가지고있는데, 스윕 라인 알고리즘은 빗자루로 먼지를 쓸어내듯이 특정 방향을 따라 스위핑하면서 점 또는 선을 확인하며 답을 찾아가는 알고리즘이다. 선분의 교차 여부, 구간 겹, 점의 분포등을 계산할 수 있기때문에 주로 시/공간의 겹침, 자원할당, 스케쥴링 문제를 다룰때 해결할 수 있는다. 나도 마찬가지로 회의실 예약 관련 Tool을 만들다 접하게되었다. 스윕 라인 알고리즘의 문제 해결과정은 대부분 이렇다:모든 데이터를 특정 기준에따라 정렬한다.스위핑 라인을 이동시키며 데이터를 하나씩 처리한다. 내 경우 회의실이 비는 시간을 파악하기 위해서 사용했는데, 이를 단순화한 예시로 스윕 라인 알고리즘을 알아보자. 3개의 회의실이 있고, 이미 예약된 회의가 있다.이미 예약된 회의가 ..

LLM Tool을 만들다 식겁한 이야기

Tool을 만들면서 정말 등골이 서늘했었을때가 한 번 있었다.그 일을 기념(?)하기 위해...그리고 나같은 바보가 더 이상 등장하지 않았으면 좋겠다는 마음에서 포스팅한다. Tool Calling중 오류가 났을때, LLM에게 전달되는 메세지에 굳이 정확한 오류를 전달할 필요 없다. 사진은 내가 f"{e!s}" 같은 방법으로 Exception 메세지를 출력하려고 하다 디코드에러를 만나서 LLM에게 전달된 메세지내용이다. 내용이 Word도 아니라서 엄청나게 많은 토큰이 한 순간에 소비되었고, 단 한번의 Tool Calling으로 $44를 날려버리게 되었다... 정확한 오류는 Logger로 따로 로깅하고, LLM에게는 "실패했다", "파일이 없다" 정도로만 오류 메세지를 출력해야한다. 또한 FileTree나..

LLM이 자연스러운 슬랙 메세지를 출력하게 하는 소소한 팁

AI를 이용한 자동화 작업을 하면서 Slack 메세지를 통합해본 경험이 있는 분들이라면 한번쯤 이쁜 출력에 대해 고민해봤을 것이다. 구조화된 출력을 하게하고 직접 포맷팅하는 방법이 가장 마음에 들겠지만, 구조화된 출력을 위해 낭비되는 토큰들이 아깝거나, 사내공유 Slack 메세지처럼 딱히 정확한 출력을 원하지 않을때 내가 사용하는 방법이있다. LLM에게는 마크다운으로 작성하라고하고, 그걸 Slack 메세지 포맷으로 바꾸는 방법이다.처음부터 LLM에게 Slack 메세지 포맷으로 해달라고하면 메세지 포맷이 지켜지지 않기가 일쑤다. (특히, Google Gemini 2.0 Flash는 **를 엄청나게 쓴다.) 마크다운 문법은 모든 LLM이 거의 완벽하게 구사하기때문에 일관된 결과를 출력할 수 있다.https:..

Github Packages로 NPM 라이브러리 배포하기

Javascript/Typescript 프로젝트를 npm 라이브러리로 배포하는 방법레지스트리레지스트리는 패키지(라이브러리, 모듈 등)를 저장하고 배포하는 저장소다. npm에서 패키지를 배포하거나 설치할 때 참조하는 서버라고 볼 수 있다.npmnpm(Node Package Manager)은 JavaScript와 Node.js 생태계에서 사용되는 패키지 관리 도구다. 개발자들이 라이브러리나 모듈을 설치, 관리, 배포할 수 있도록 한다. 1. GitHub Personal Access Token 생성GitHub에 로그인한 후, Settings > Developer settings > Personal access tokens로 이동한다.Generate new token을 클릭하고, 다음 권한을 선택하여 토큰을 생..