Dev
-
[AI] iOS API 디버깅하기: AI와 만든 핑퐁 테스트 워크플로우Dev 2026. 7. 23. 19:11
새 화면의 API 연동을 끝내면 늘 비슷한 질문이 남습니다.지도에 진입했을 때 viewport API는 정확히 한 번만 호출될까?필터를 탭하면 서버가 기대하는 쿼리 파라미터가 붙을까?바텀시트를 크게 펼쳤을 때 detail API가 그 시점에만 호출될까?단위 테스트는 요청 메서드가 호출됐는지 알려주지만, 실제 앱에서 실제 제스처로 서버에 무엇을 몇 번 보냈고 어떤 응답을 받았는지는 충분히 보여주지 못할 때가 있습니다.DDD 13기 사이드 프로젝트 Pickflow에서 지도와 스팟 리스트 API를 검증하며 이 간극을 메우는 워크플로우를 만들었습니다. 프록시 도구 대신 앱의 네트워크 로그를 stdout으로 흘리고, 사람이 시뮬레이터를 한 단계씩 조작하면 AI 코딩 에이전트가 로그를 읽어 명세와 비교하는 방식입니..
-
[AI] UI를 개발할 때 화면 하나를 TDD 3단계로 강제한 방법Dev 2026. 7. 23. 18:02
AI에게 “TDD로 화면을 만들어 줘”라고 요청하면 정말 TDD로 끝까지 구현할까요?제 경험에서는 그렇지 않았습니다. 처음에는 테스트부터 시작하더라도 어느 순간 SwiftUI 뷰를 먼저 만들거나, 깨진 스냅샷을 원인 분석 없이 새 이미지로 덮어쓰는 일이 반복됐습니다. 지시를 더 길고 자세하게 적을수록 좋아질 것 같았지만, 600줄에 가까운 프롬프트 안에서는 오히려 중요한 규칙이 중간에서 흐려졌습니다.DDD 동아리에서 Pickflow라는 iOS 앱을 개발하며 이 문제를 해결하기 위해 선택한 방법은 “더 강한 프롬프트”가 아니었습니다. 화면 하나를 만들 때 반드시 통과해야 하는 산출물과 게이트를 정하고, 이를 Claude Code 스킬로 시스템화했습니다.이 글에서는 SwiftUI + MVVM + Tuist ..
-
[AI] git worktree와 cmux 활용한 AI 병렬 개발 워크플로우Dev 2026. 7. 23. 17:58
AI 코딩 에이전트를 하나만 사용할 때는 터미널 창 하나면 충분하다. 하지만 기능 구현, 리뷰 반영, 빌드 확인을 동시에 맡기기 시작하면 문제가 달라진다.에이전트를 여러 개 실행하는 것 자체는 어렵지 않다. 진짜 어려운 일은 각 에이전트가 서로의 코드를 밟지 않도록 작업 공간을 나누고, 어느 세션이 내 판단을 기다리는지 놓치지 않는 것이다.DDD 13기 사이드 프로젝트 Pickflow에서 iOS 개발을 진행하며 이 문제를 자주 겪었다. Xcode와 Tuist를 사용하는 프로젝트라 브랜치 전환 비용도 컸다. 결국 브랜치를 계속 바꾸는 방식을 버리고, 티켓마다 git worktree를 만들었다.여기에 여러 터미널과 AI 에이전트 세션을 정리하는 cmux를 결합하면 역할이 명확해진다.· git worktree..
-
youtube 요약 n8n 워크플로우 구축기Dev 2026. 5. 21. 13:06
Oracle Cloud Always Free + Docker로 n8n 자동화 구축기 — YouTube 신규 영상 자막을 Notion에 자동 정리하기0원으로 24시간 돌아가는 자동화 서버를 만들고 싶었다. 결론부터 말하면 됐다. 그런데 만드는 과정에서 Oracle IP가 YouTube에 차단된다는 사실을 알게 됐고, 라이브러리도 두 개나 갈아치웠고, n8n에서는 4연속으로 에러를 만났다. 이 글은 그 구축기다.목표내가 만들고 싶었던 건 단순했다.특정 유튜브 채널에 새 영상이 올라오면 자동 감지해당 영상의 자막(스크립트) 추출AI로 요약원본 자막 + 요약을 한 행으로 Notion 데이터베이스에 적재한 줄짜리 목표였는데, 막상 부딪혀보니 YouTube 생태계의 봇 차단·API 정책·서비스 outage를 한 바..
-
github CLI 설치 및 이슈 생성Dev/GitHub 2026. 2. 6. 22:25
2025.04.02 - [사이드 프로젝트] - [사이드 프로젝트] grep 명령로 리팩토링 작업 범위 파악, curl 도구로 Github API 이용하기이전 사이드 프로젝트에서는 Github API + shell script를 사용했었는데, 더 쉬운 방법을 찾게되었다. https://github.com/cli/cli?tab=readme-ov-file#installation GitHub - cli/cli: GitHub’s official command line toolGitHub’s official command line tool. Contribute to cli/cli development by creating an account on GitHub.github.com설치 페이지를 참고해서 Homebr..
-
Claude Desktop로 WWDC 요약하기 (Puppeteer, MCP)Dev 2025. 4. 11. 16:19
안녕하세요 아렉스입니다 :>Claude는 데스크탑 버전에서 MCP(Model Context Protocol)을 통해 외부 도구와 연동할 수 있는 기능을 제공합니다.그중 Puppeteer MCP 서버는 웹 자동화 도구로 매우 유용한데요, 이번 포스팅에서는 Puppeteer MCP 서버를 설정하고, 흔히 겪는 오류 해결법까지 정리해보겠습니다. 실제로 해보지않아도 경험할 수 있게끔 과정들을 캡쳐해보았습니다 ! 1. 데스크탑 Claude 설치사용하는 OS를 선택하여 설치하시면 됩니다. [바로가기 링크] 2. Node.js 설치하기npx 명령어를 사용하는 만큼, Node.js가 설치되어 있어야 합니다. brew 혹은 Node.js 공식 사이트에서 설치하세요. 설치되지 않은 경우 아래와 같은 오류가 발생합니다:❌..
-
[git] git squash - 커밋 기록 깔끔하게 관리하기Dev/GitHub 2024. 12. 6. 22:28
안녕하세요 아렉스입니다. git squash라고 불리는 것은 보통 대화형 rebase 를 진행할 때 사용할 수 있는 rebase의 옵션입니다.# HEAD 기준으로 최근 커밋 3개를 rebase 하겠다는 뜻$ git rebase -i HEAD~3 작업 진행시에 커밋은 자주, PR 전에는 커밋을 정리해서 올린다면, 작업자에게는 효율적인 코드관리와 깔끔한 히스토리 유지를 리뷰어에게는 리뷰의 용이성과 집중도를 높여줍니다. squash를 사용하면 어떤게 좋아지는가에 대해서는 아래 squash 전후 비교 사진을 보고 판단하시면 되겠습니다.전 히스토리 관리하는데 매우 편리하고 매력적이었습니다. How to$ git rebase -i e3c18b4^e3c18b4^는 e3c18b4 바로 이전 커밋을 지정하는..
-
[Github] 이슈 템플릿(issue template) 사용하기Dev/GitHub 2024. 9. 12. 13:44
안녕하세요 아렉스입니다.이슈를 통해서 프로젝트 관리를 진행해보셨나요 ?개인 혹은 팀으로 진행하더라도, 반복되는 문서 작업은 매우 귀찮습니다.이런 경우에 이슈 템플릿을 사용을 하면, 반복적인 작업을 개선 및 이슈 내용에 대한 일관성을 가질 수 있습니다. 파일 확장자로는 .md, .yml 두가지 선택해서 만들 수 있습니다.github에서 제공하는 기능을 통해 GUI 환경에서 만들 수 있고, 양식과 경로를 알고 있다면, CLI 환경에서 만들고 직접 push 해도 상관없습니당 ㅇㅅㅇ github에서 생성을 위한 경로는 Settings -> General - Features 과 같습니다. 영어를 몰라도 할 수 있게끔 초록색 버튼으로 클릭을 유도하고있습니다 ㅎㅎ 만들어진 이슈 템플릿을 사용한 모습입니다. gi..