이야기를 디버깅하는 개발자.

개발과 창작 사이에서, 사람들이 자기만의 이야기를 만들 수 있는 도구와 기록을 만듭니다.

roslyn.dev 자세히보기

전체 글 146

Minimal API 비동기 검증과 OpenAPI 3.2 — .NET 11에서 달라지는 것

"이 이메일은 이미 사용 중입니다." 회원가입 화면에서 이 문구 하나를 띄우려고 코드를 어디에 둘지 한참 고민했던 기억이 있습니다. 형식이 이메일인지 확인하는 건 어트리뷰트 한 줄이면 끝나는데, 이미 가입된 주소인지 확인하려면 데이터베이스를 봐야 합니다. 그리고 이 두 가지는 성격이 전혀 다릅니다.Minimal API를 쓰기 시작한 뒤로 이 구분이 더 선명해졌습니다. 형식 검증은 프레임워크가 알아서 해주는데, DB가 필요한 검증은 갈 곳이 애매해서 결국 핸들러 안으로 들어가곤 했습니다. .NET 11에서는 이 지점이 다뤄질 예정입니다. 다만 현재 프리뷰 기준이며 GA까지 바뀔 수 있습니다. 구체적인 메서드 이름이나 시그니처는 출시 시점의 공식 문서에서 확인하시는 편이 좋습니다.지금까지 검증 코드를 두던 ..

.NET 11 정식 출시 전 점검 — 실서비스 마이그레이션 체크리스트

달력을 보니 .NET 11 정식 출시까지 세 달 남짓 남았습니다. 예년대로라면 2026년 11월에 GA가 나올 예정이고, 지금은 프리뷰 단계입니다. 저는 이 시기가 되면 늘 같은 고민을 반복합니다. 나오자마자 올릴 것인가, 아니면 몇 달 지켜볼 것인가.회사에서라면 이 결정을 여럿이 나눠 지지만, 메리톡톡처럼 혼자 만들고 혼자 운영하는 서비스에서는 결정도 수습도 제 몫입니다. 그래서 저는 버전을 올리는 일 자체보다 올리기 전에 무엇을 확인해두었는가를 더 중요하게 봅니다. 확인 목록이 부실하면 올린 다음 날 새벽에 로그를 뒤지게 됩니다.이 글에서는 GA 전에 미리 해둘 수 있는 점검을 순서대로 적어보겠습니다. 아래 내용 중 프리뷰 기능에 대한 부분은 현재 프리뷰 기준이며 GA까지 바뀔 수 있습니다. 최종 확..

사용자가 아직 0명일 때 봐야 할 지표와 대시보드 최소 구성

사용자가 0명인 서비스의 7일 리텐션은 몇 퍼센트일까요. 계산이 되지 않습니다. 분모가 0이기 때문입니다. 그런데도 많은 개인 서비스의 관리자 화면 첫 줄에는 DAU와 리텐션 자리가 마련되어 있고, 거기에는 대개 0과 하이픈이 표시되어 있습니다.관리자 화면을 먼저 만들어두는 편이 낫다는 이야기와, 로그 다음에 필요한 것이 상태를 보는 화면이라는 이야기는 앞서 따로 쓴 적이 있습니다. 이 글은 그 다음 단계입니다. 그래서 그 화면에 정확히 무엇을 몇 개나 넣을 것인가를 목록으로 정리합니다.기준은 하나입니다. 그 숫자를 보고 내일 할 일이 바뀌는가. 바뀌지 않는 숫자는 아무리 그럴듯해도 초기에는 자리만 차지합니다. 사용자 0명 구간에서 그 조건을 만족하는 항목은 생각보다 적습니다.0명일 때 의미가 생기는 다..

"자동 생성" 대신 "이어 쓰기"를 택한 이유 — 창작 보조 도구 설계 기록

이전에 이 주제로 관점을 한 번 정리한 적이 있습니다. 자동 생성이 아니라 이어 쓰기여야 한다는 이야기였는데, 그때는 문제 제기에 가까웠습니다. 이번 글은 그 뒤의 기록입니다. 실제로 메리톡톡을 만들면서 어디서 멈출지, 무엇을 포기할지를 코드 단위로 정해야 했고, 그 결정들을 남겨둡니다.가장 먼저 확인한 것은 제 자신의 반응이었습니다. 초기 버전에서 문단 하나를 통째로 생성해 화면에 띄워봤는데, 문장은 꽤 그럴듯했는데도 손이 멈췄습니다. 고쳐 쓸지 지울지를 판단하는 동안, 원래 쓰려던 문장이 머릿속에서 사라졌습니다. 잘 쓰인 남의 문장이 내 문장을 덮어쓴 셈입니다.그때 알았습니다. 창작 보조 도구에서 진짜 위험한 것은 품질이 낮은 결과물이 아니라, 품질이 적당히 높아서 판단을 대신해버리는 결과물입니다. ..

월 1만 원으로 개인 서비스 운영하기 — 인프라 비용 다이어트

개인 서비스를 만들 때 저는 기능보다 예산 상한을 먼저 정합니다. 월 1만 원. 이 숫자에 특별한 근거가 있는 것은 아니고, 커피 두어 잔 값이라 서비스가 잘 안 되더라도 감정 없이 계속 둘 수 있는 금액이기 때문입니다. 유지비가 이 선을 넘기 시작하면 판단에 감정이 섞입니다.상한을 먼저 정하면 설계가 달라집니다. 상시 켜둘 서버가 정말 필요한지, 이미지를 서버에서 변환해야 하는지, 로그를 얼마나 오래 둘지가 전부 비용 문제로 바뀝니다. 기능을 다 만든 뒤에 요금을 줄이려 하면 대개 구조를 뜯어야 해서 잘 줄지 않습니다.이 글에서는 구체적인 가격을 적지 않습니다. 요금제는 자주 바뀌고 지역과 계정 상태에 따라서도 달라지므로, 지금 적어두면 얼마 못 가 틀린 글이 됩니다. 대신 비용이 어떤 단위로 매겨지는..

아이디어에서 배포까지 2주 — 1인 개발 프로젝트 스코프 정하는 법

제 저장소 목록을 열어 이름을 하나씩 세어봤습니다. 시작만 하고 배포까지 가지 못한 프로젝트가 열 개가 넘었습니다. 그중 절반은 로그인 화면까지는 만들어져 있었고, 몇 개는 데이터베이스 설계 문서만 남아 있었습니다. 코드를 다시 열어보니 문제는 실력이 아니었습니다.공통점이 하나 있었습니다. 전부 처음 상상한 완성본이 너무 컸습니다. 만들려던 것 자체는 단순했는데, 거기에 회원 관리와 관리자 화면과 결제와 다국어가 자동으로 따라붙었습니다. 정작 만들고 싶었던 기능은 그 뒤에 있었고, 거기까지 도달하기 전에 흥미가 먼저 식었습니다.이 글은 그 반대로 가는 방법입니다. 기간을 2주로 못박고, 거기에 들어가지 않는 것을 전부 잘라내는 순서를 정리했습니다. 2주는 임의의 숫자가 아니라 흥미가 식기 전에 결과를 보..

티스토리 글을 자동으로 백업하는 스크립트 만들기

블로그 글을 백업해야겠다고 마음먹고 오픈 API 문서부터 찾았는데, 그 문은 이미 닫혀 있었습니다. 예전에는 인증 토큰을 받아 글 목록과 본문을 정직하게 내려받을 수 있었지만 지금은 그 경로가 없습니다. 남은 것은 누구나 브라우저로 볼 수 있는 공개 경로뿐입니다.처음에는 관리자 화면의 내보내기 기능을 쓰면 되지 않느냐고 생각했습니다. 실제로 그것도 방법이지만, 사람이 직접 눌러야 하는 일은 결국 하지 않게 됩니다. 저는 3년쯤 백업을 미루다가 계정 문제로 하루 동안 블로그에 접속하지 못한 적이 있는데, 그때 처음으로 "글이 내 손에 없다"는 사실이 실감났습니다.이 글은 API 없이 공개 경로 세 가지만으로 백업 스크립트를 짠 기록입니다. 각 경로에서 무엇을 얻을 수 있고 무엇이 부족한지 비교하고, 이를 ..

플랫폼별 복붙 오류를 없애는 원고 서식 변환기 직접 만들기

한글 파일에서 5,000자를 복사해 연재 플랫폼 에디터에 붙여넣고 미리보기를 눌렀는데, 문단 사이가 전부 두 줄씩 벌어져 있었습니다. 대사 앞의 들여쓰기는 사라졌고, 큰따옴표는 어느새 모양이 다른 문자로 바뀌어 있었습니다. 결국 한 화 분량을 눈으로 훑으며 손으로 고쳤습니다.이런 일이 한두 번이면 참고 넘어갑니다. 그런데 매주 두세 편씩 올리는 사람에게는 매번 15분씩 새는 일이 됩니다. 저는 웹소설을 써서 온라인 출판까지 해본 적이 있는데, 그때 가장 짜증났던 게 원고 자체보다 이 붙여넣기 뒤처리였습니다.이 글은 그 뒤처리를 대신하는 작은 변환기를 만든 기록입니다. 무엇이 깨지는지 먼저 분류하고, 각각을 정규식 규칙으로 옮기고, 마지막에는 왜 이 도구를 서비스가 아니라 파일 하나짜리 HTML로 두는 편..

웹소설 작법서, 무엇부터 읽을까 — 목적별 5가지 유형과 읽는 순서

책장에 작법서 세 권이 꽂혀 있습니다. 그중 두 권은 3분의 1쯤에서 책갈피가 멈춰 있고, 한 권은 끝까지 읽었는데 무슨 내용이었는지 잘 기억나지 않습니다. 그런데도 서점에 가면 또 새 작법서를 집게 됩니다. 이 상황, 익숙하실 겁니다. 저도 그랬습니다.문제는 책이 아니라 고르는 방식에 있습니다. "좋다는 책"을 사기 때문입니다. 작법서는 종합 비타민이 아니라 처방약에 가깝습니다. 지금 내가 어디서 막혀 있는지에 따라 필요한 책이 완전히 달라지고, 맞지 않는 책은 아무리 명저라도 3분의 1에서 멈춥니다.이 글에서는 특정 책 제목을 나열하지 않겠습니다. 사람마다 잘 맞는 책이 크게 다르고, 제가 읽지 않은 책을 추천 목록에 채워 넣고 싶지도 않습니다. 대신 작법서를 다섯 가지 유형으로 나누고, 각 유형이 ..

"AI로 썼어?" 별점 테러의 시대 — 2026년 플랫폼별 AI 활용 규정 정리

연재 중인 작품의 댓글창에 이런 말이 올라오는 일이 있습니다. "이거 AI로 쓴 거 아니에요?" 그리고 그 뒤에 별점 1점이 붙습니다. 본문 어딘가에 프롬프트에 대한 응답처럼 보이는 문장이 그대로 남아 있었거나, 문체가 갑자기 매끈해졌거나, 특정 표현이 반복됐거나. 이유는 다양하지만 결과는 비슷합니다. 이런 사례가 실제로 보고되고 있습니다.흥미로운 건 이 상황에서 작가가 가장 먼저 부딪히는 문제가 "AI를 써도 되느냐"가 아니라 "어디에 물어봐야 하는지 모르겠다"라는 점입니다. 플랫폼마다 입장이 다르고, 아예 아무 말이 없는 곳도 있습니다.저는 웹소설을 써서 온라인 출판까지 해봤고, 지금은 창작 보조 서비스를 혼자 만들어 운영하고 있습니다. 그래서 이 주제는 양쪽에서 걸립니다. 이 글에서는 2026년 8..

반응형