Articles
숨은빚청년들 팀이 서비스를 만들면서 부딪힌 문제와 풀어낸 방법을 기록해요.
-
팀 프로젝트 기여도를 대화로 풀어 주는 서비스를 만든 이유
WhoIsLoafing이 어떤 문제에서 출발했고, 레포 링크 하나가 분석 결과가 되기까지 어떤 단계를 거치는지 전체 구조를 정리했어요.
-
GitHub 통계 API가 200 대신 202를 돌려줄 때
기여자 통계 API는 처음 부르면 결과 대신 "계산 중"이라고 답해요. 기다리는 방법과, 끝내 오지 않을 때를 대비한 방법을 정리했어요.
-
이메일이 여러 개인 사람을 한 명으로 합치는 방법
같은 사람이 집과 학교에서 다른 이메일로 커밋하면 기여자 목록에 두 번 나와요. 커밋 작성자를 GitHub 계정으로 이어 붙이는 규칙을 정리했어요.
-
라인 수에서 사람이 쓰지 않은 줄을 빼는 방법
패키지 하나를 설치했을 뿐인데 수천 줄을 쓴 사람이 되기도 해요. 잠금 파일, 빌드 결과물, 자동 생성 파일을 가려내는 규칙을 정리했어요.
-
Express 서버 코드를 Cloudflare Workers에서도 그대로 돌리기
Workers는 Express를 실행할 수 없어요. 서버 로직을 한 번만 쓰고 두 환경에서 같이 쓰도록 나눈 방법과, 옮기면서 걸린 부분을 정리했어요.
-
분석 결과를 채팅처럼 한 말풍선씩 흘려보내기
분석에는 수십 초가 걸려요. 다 끝날 때까지 기다리게 하지 않고, 준비된 것부터 대화처럼 보여주기 위해 서버와 화면을 어떻게 이었는지 정리했어요.
-
AI에게 일을 맡길 때 프롬프트를 쓰는 방식
분석 결과의 문장은 AI가 써요. 매번 비슷한 품질의 답을 받기 위해 지시문을 어떻게 구성하는지, 저희가 지키는 여섯 가지 방식을 정리했어요.
-
로그인 없이 내 채팅을 구분하는 방법
회원가입을 받지 않으면서도 내가 만든 분석은 나만 이어서 쓸 수 있게 하고 싶었어요. 브라우저에 무작위 키 하나를 두는 방식과 그 한계를 정리했어요.
-
AI 호출이 실패해도 서비스가 멈추지 않게 만들기
AI API는 느려지기도 하고, 거절하기도 하고, 답이 중간에 잘리기도 해요. 실패를 종류별로 나누고 각각 어떻게 대응했는지 정리했어요.
-
한 페이지 앱에 글 페이지를 붙일 때 빌드 시점에 HTML로 만들기
리액트로 만든 한 페이지 앱은 검색 로봇에게 빈 화면으로 보여요. 이 사이트의 글 페이지를 프레임워크를 바꾸지 않고 정적 HTML로 만든 방법을 정리했어요.