cursor

3 개의 포스트

세금 환급 자동화 : AI-driven UI 테스트 자동화 일지 (새 탭에서 열림)

토스인컴의 복잡한 세금 환급 서비스 QA를 위해 1명의 매니저가 AI를 팀원으로 활용하여 4~5명 규모의 자동화 성과를 낸 과정을 다룹니다. AI 에이전트에게 코드 작성과 설계를 맡기고 사람은 문제 정의와 검증에 집중함으로써, 5개월 만에 35개의 고난도 E2E 테스트 시나리오를 성공적으로 구축하고 운영화했습니다. 이 실험은 기술적 난도가 높은 환경에서도 AI와의 협업을 통해 자동화 효율을 극대화할 수 있음을 입증했습니다. **AI 자동화 도입 배경과 도구 구성** * 복잡한 환급 플로우(15~20단계)와 빈번한 UI/정책 변경, 외부 연동 시스템의 불안정성 때문에 전통적인 수동 자동화 방식으로는 대응이 불가능했습니다. * 메인 개발자인 Claude Sonnet 4.5를 비롯해 Cursor(IDE 페어 프로그래밍), Codex(코드 분석) 등 각기 다른 강점을 가진 AI 도구들을 조합하여 사용했습니다. * AI를 SDET 에이전트(설계), 문서화 전문가(기록), Git 마스터(형상 관리)라는 세 가지 페르소나로 분리하여 역할 분담을 명확히 했습니다. **기술적 문제 해결과 아키텍처 고도화** * **Page Object Model(POM) 도입:** 중복 셀렉터 문제를 해결하고 유지보수성을 높이기 위해 AI와 협업하여 모든 페이지 요소를 객체화하는 POM 구조를 설계했습니다. * **React 타이밍 이슈 해결:** 요소가 화면에는 보이지만 이벤트 핸들러가 바인딩되지 않아 발생하는 클릭 실패를 해결하기 위해, UI 안정화와 상호작용 준비 상태를 분리해 감지하는 'Interaction Readiness' 전략을 구현했습니다. * **Fallback 클릭 로직:** 표준 클릭 실패 시 키보드 엔터 입력, 자바스크립트 직접 클릭 순으로 시도하는 안전한 클릭 함수를 만들어 테스트의 견고함을 높였습니다. * **동적 약관 처리:** 서비스별로 상이하고 복잡한 약관 동의 플로우를 AI가 자동으로 감지하고 처리하도록 설계하여, 약관이 변경되어도 테스트가 중단되지 않는 구조를 만들었습니다. **운영 효율화를 위한 협업 시스템 구축** * **문서화 및 일지 자동 생성:** 매일 커밋 기록을 기반으로 AI가 회고 일지와 가이드 문서를 작성하게 하여, 수십 분이 걸리던 기록 업무를 1~2분 내외의 검토 수준으로 단축했습니다. * **메신저 기반 리포팅 루프:** 테스트 결과, 실패 지점 스크린샷, 오류 로그(EventID 등)를 사내 메신저에 자동으로 연동하여 개발팀과의 빠른 논의가 가능하도록 환경을 조성했습니다. * **테스트 격리 및 리팩토링:** 수천 줄의 단일 파일을 분리하고 테스트 데이터(userNo) 충돌 방지 로직을 도입하여 자동화 품질을 관리 가능한 수준으로 끌어올렸습니다. 단순히 AI에게 코드를 짜게 하는 수준을 넘어, 아키텍처 설계와 운영 프로세스 전반을 AI와 함께 고민하는 'AI-First' 접근 방식은 리소스가 제한된 환경에서 QA 품질을 혁신적으로 높일 수 있는 실질적인 해법이 됩니다. 6개월간의 여정은 AI를 도구가 아닌 실제 팀원으로 대우할 때 자동화의 본질인 '안정적인 반복 실행'을 달성할 수 있음을 보여줍니다.

AI TOP 100이 우리에게 남긴 것들 - tech.kakao.com (새 탭에서 열림)

카카오의 'AI Native 전략 팀'은 단 2주라는 물리적으로 불가능해 보이는 일정 속에서 AI를 극한으로 활용해 'AI TOP 100' 경진대회 시스템을 성공적으로 구축했습니다. 이번 프로젝트는 단순한 도구 도입을 넘어 기획서를 AI 프로토타입으로 대체하고 개발의 99%를 AI에게 위임하는 등 소프트웨어 개발 패러다임의 근본적인 전환을 증명했습니다. 결국 AI는 개발자를 대체하는 것이 아니라, 개발자가 더 높은 차원의 의사결정과 설계에 집중할 수 있도록 능력을 확장하는 강력한 파트너임을 확인시켜 주었습니다. **전통적 방법론을 탈피한 AI 네이티브 전략** * **물리적 한계 돌파:** 기획부터 배포까지 통상 수개월이 걸리는 공정을 예선과 본선 각각 2주라는 초단기 일정으로 단축하기 위해 AI 정면 돌파를 선택했습니다. * **기획서 없는 개발:** 상세 기획서나 화면 설계서 대신, 멤버 전원이 AI로 실제 작동하는 프로토타입을 제작하여 이를 바탕으로 요구사항을 확정하는 '초고속 프로토타이핑' 방식을 도입했습니다. * **PoC 중심의 애자일:** 추상적인 컨셉을 AI에게 던져 즉시 작동 가능한 PoC(Proof of Concept) 코드를 생성하고, 이를 검증하며 기능을 확정하는 '구현-피드백-전환' 사이클을 극단적으로 짧게 가져갔습니다. **AI와 개발자의 협업 모델 변화** * **99%의 코드 위임:** Cursor와 Claude Code 등을 활용하여 전체 코드의 대부분을 AI가 작성하게 했으며, 개발자는 직접 타이핑하는 대신 AI에게 의도를 설명하고 결과물을 검토하는 역할에 집중했습니다. * **압도적인 생산성:** 한 명의 개발자가 예선과 본선의 모든 프론트엔드 화면을 전담하거나, 하루에 2억 개의 토큰을 소모하며 시스템을 구축하는 등 기존 개발 방식으로는 불가능한 퍼포먼스를 기록했습니다. * **직무 경계의 확장:** 데이터 엔지니어가 백엔드 개발을 수행하고, 비개발자가 AI로 복잡한 알고리즘 문제를 해결하는 등 AI를 통해 개인의 기술적 한계를 넘어선 역할 수행이 가능해졌습니다. **기술적 난제와 인간의 역할(The Last Mile)** * **모델 간 논리 충돌:** AI가 제시하는 논리가 매우 탄탄하여 구성원 간 의견이 대립할 때, 최종적인 유지보수성과 시스템의 방향성을 고려해 최적의 답을 선택하는 것은 결국 시니어 개발자의 '경험'이었습니다. * **최종 의사결정의 주체:** AI는 수많은 해결책과 초안을 제시할 수 있지만, 해당 서비스의 특수성과 미래 가치를 판단하여 방향키를 쥐는 것은 여전히 사람의 몫임을 재확인했습니다. * **새로운 개발 표준의 정립:** AI 페어 프로그래밍이 일상화되면서, 개발자의 사고 흐름이 '선형적 구현'에서 'AI와 실시간 아이디에이션 및 즉각적 검증'으로 재편되었습니다. **실용적인 결론 및 제언** 미래의 개발 경쟁력은 AI를 단순한 보조 도구로 쓰는 것을 넘어, 업무 프로세스 전체를 AI 중심으로 재설계하는 'AI 네이티브' 역량에 달려 있습니다. 이제 개발자는 바닥부터 코드를 짜는 시간보다 AI가 생성한 결과물의 적합성을 판단하고 아키텍처 관점에서 통합하는 능력을 키워야 합니다. 'PoC 중심 개발'을 통해 불확실성을 속도로 돌파하는 경험을 쌓는 것이 새로운 개발 표준에 적응하는 핵심이 될 것입니다.

한 달짜리 과제, 바이브 코딩으로 5일 만에!(ChatGPT·Cursor) (새 탭에서 열림)

기존의 전통적인 개발 방식은 상세한 요구 사항 정의와 설계 단계에 많은 비용이 소모되어 급변하는 시장 트렌드에 대응하기 어렵습니다. 이 글은 생성형 AI를 활용해 '작동하는 데모'를 빠르게 만들고 이를 수정해 나가는 '바이브 코딩(Vibe Coding)' 전략을 통해, 한 달이 걸릴 과제를 단 5일 만에 해결한 과정을 담고 있습니다. 완벽한 정답보다는 충분히 괜찮은 해답을 빠르게 도출해 검증 루프를 돌리는 것이 핵심입니다. ### 요구 사항과 도메인의 간결한 정의 - 복잡한 메뉴 등록 시스템을 단순화하기 위해, 초기 요구 사항은 메모장에 한 줄 요약과 최우선순위 1~2가지만 정리하여 시작합니다. - 데이터 구조는 화면 구성의 기반이 되므로 가능한 사실에 가깝게 정의하되, 세부적인 내용은 AI의 창의적인 제안을 수용할 수 있도록 여백을 둡니다. - 처음부터 완벽한 명세서를 작성하려 하기보다, AI가 맥락을 파악할 수 있는 핵심 도메인 지식을 전달하는 데 집중합니다. ### 5가지 솔루션 후보 선정 및 구체화 - ChatGPT를 활용해 '스텝퍼형 마법사', '라이브 미리보기', '템플릿 복제', '채팅 입력', 'OCR 사진 촬영' 등 서로 다른 접근 방식의 솔루션 5가지를 도출합니다. - 각 솔루션의 장단점을 분석하여 실무 적용 가능성을 판단하고, 프롬프트를 미세 조정하며 원하는 수준의 답변이 나올 때까지 반복 요청합니다. - 이 과정에서 AI는 맥락을 축적하며 결과물의 품질을 높이며, 사용자는 여러 대안 중 최적의 사용자 경험(UX)을 선택할 수 있는 시야를 확보합니다. ### AI 기반의 와이어프레임 및 상세 설계 - 선정된 각 솔루션별로 필요한 화면 수, UI 요소, 공통 패턴(진행률 표시, 유효성 검사 등)을 AI가 상세히 설계하도록 유도합니다. - 예를 들어 '스텝퍼형'의 경우 8단계의 상세 화면 구성을 정의하고, 각 단계에서 입력받을 필드와 도움말 문구까지 구체화합니다. - 설계 과정에서 누락된 기능이나 우선순위 변경이 발견되면 프롬프트를 수정해 즉시 재설계하며, 물리적 설계 문서 작성의 부담을 최소화합니다. ### Cursor와 Flutter를 활용한 고속 구현 - AI 통합 개발 환경인 Cursor를 사용해 Flutter 기반의 모바일 앱 코드를 생성하며, 단일 코드베이스의 이점을 살려 실험 속도를 극대화합니다. - 먼저 5가지 솔루션의 진입점이 포함된 공통 뼈대(Main Screen)를 작성한 뒤, 각 솔루션을 개별 파일로 나누어 점진적으로 구현합니다. - 처음부터 상태 관리 라이브러리(Riverpod)나 데이터베이스(SQLite) 같은 기술 스택을 고민하지 않고, 기능 위주의 화면 데모를 먼저 만든 후 필요에 따라 스택을 추가하는 역순 방식을 취합니다. 이러한 방식은 '완성물이 최고의 디버거'라는 철학을 바탕으로 합니다. 문서 상의 논의에 시간을 쏟기보다 작동하는 앱을 빠르게 만들어 직접 만져보며 수정하는 것이 결과적으로 더 높은 품질의 제품을 더 빨리 만드는 길입니다. AI는 반복적인 재작업 요청에도 지치지 않으므로, 개발자는 이를 활용해 끊임없이 가설을 검증하고 정답에 가까워지는 '반복의 힘'을 믿어야 합니다.