
똑똑하게 고민하기_SSD(Spec Driven Development)란?

안녕하세요 윱입니당🐈⬛
오늘은 요즘 떠오르고 있는 키워드인 SDD(Spec Driven Development)에 대해 소개해드리고자 합니다.
AI와 함께 일하는 시대
이제는 누구나 AI에게 만들어내고 싶은 것을 설명해주기만 해도 바로 코드를 작성해내는 바이브코딩(Vibe Coding)을 할 수 있는 시대가 도래했습니다. 코드를 전혀 작성하지 못하는 저도 놀라울 정도로 빠르고 쉽게 간단한 웹페이지를 뚝딱 만들 수 있게 되었습니다.

비요에서도 업무를 진행할 때 AI 툴을 많이 활용하는 편인데요. 이러한 다양한 AI 툴과 바이브 코딩의 등장으로 얼마나 빠르게 작업할 수 있는지 보다 무엇을 어떻게 더 명확하게 만들고 정의하고 있는지가 중점으로 떠오르고 있습니다. 그래서 다시 주목받게 된 개념이 바로 SDD입니다.

SDD가 무엇일까
SDD(Spec Driven Development)는 코드를 작성하기 전에 시스템 간의 규칙과 데이터 구조를 정의한 스펙(Spec)을 먼저 확정하고, 이를 기준으로 개발을 진행하는 접근 방식입니다.
여기서 말하는 스펙(Spec)이란 단순히 문서나 기획안으로 작업하는 것을 뜻하는 것이 아니라 사람과 도구가 모두 알아들을 수 있도록 명확한 기준을 제시하기 위해 작성하는 것입니다. OpenAPI나 JSON Schema 등 기계 가독성을 갖춘 포맷으로 작성되며 디자인 작업과 프론트엔드, 백엔드 코드 작성에 공통적인 기준이 되는 문서라고 할 수 있습니다.

이러한 SDD가 주목받게 된 이유는 현대 웹 개발의 구조 때문이었는데요. 프론트엔드와 백엔드가 분리되면서 스펙을 먼저 작성하고 양쪽이 동시에 개발을 진행할 수 있는 구조가 필요해졌습니다. 현재는 AI와 협업하는 상황에도 적용 가능한 방식으로 확장되었습니다.
스펙을 작성해야 하는 이유는 AI의 환각 현상(Hallucination)을 방지하기 위해서이기도 합니다. AI가 작업한 코드를 들여다보면 일부분에서 퀄리티가 떨어질 수도 있고, 때로는 내가 원하는 것이 아닌 엉뚱한 것을 만들어내기도 하는 문제들이 쉽게 발생합니다. 너무 추상적으로 요청하거나 모호한 부분들이 있어 이러한 부분들을 AI가 확률적으로 추측하기 때문인데요. 스펙을 작성하여 명확한 맥락과 제약 조건을 지시하면 AI는 그 내용을 기준으로 코드를 생성할 수 있고, AI가 임의로 추측하는 행위를 방지할 수 있습니다.

구현 중심에서 정의 중심으로
이렇게 스펙을 기반으로 하여 AI가 코드를 작성하는 비중이 점점 높아질수록 이제는 빠르게 구현하기보다 더욱 정확하게 정의하는 것이 중요해질 것입니다.
AI에게 더욱 구조화되고 명확한 지시 사항이 담긴 스펙을 전달하고, 스펙에 따라서 AI가 잘 구현하였는지 검토하는 설계자로서의 역할이 점점 더 중요해질 수 있다는 것이죠.
빠른 속도로 구현하기에 집중하기 보다 우리가 무엇을 만들 것인지 정확히 정의하고 설계하는 것에 집중하여 더욱 강력한 제품을 만들 수 있는 능력이 요구될 수 있습니다.

빠르게 변화하는 시대에 살아남기 위해
SDD에 대해서 간단하게 소개해드렸는데요. 이렇게 말씀드리면 무조건 SDD 방식으로 업무를 진행하는 것이 좋다고 느껴지실 수도 있는데요.
하지만 갑자기 SDD 방식을 도입해서 모든 업무 방식을 변화하는 데에는 큰 비용이 들 수도 있습니다. 너무 스펙에만 의존하게 되면 작성하는 시간이 너무 소요되거나 이후 코드를 변경할 때에도 번거로운 과정이 생길 수도 있죠. 그래서 각각 팀 또는 프로젝트 상황에 맞는 방식을 적합하게 활용하는 것이 중요하다고 생각합니다.
중요한 것은 AI와 함께 하는 시대에 도래하면서 많은 것들이 빠르게 변화하고 있고 이러한 흐름을 어떻게 받아들이고 적응해 나갈지 다양한 시각으로 바라보며 끊임없이 고민을 하는 것이라고 생각해요.

현재 우리들의 업무 문화에 어떻게 하면 AI를 효과적으로 활용하여 업무 능력을 향상시킬 수 있을지에 대해 고민하고 다양한 관점과 방법론을 들여다보며 팀에 맞는 방법을 빠르게 찾아보는 것이 필요할 것입니다.
저는 그럼 또 다른 이야기로 돌아오겠습니다! 감사합니당 🐈⬛
📚 참고문헌 및 아티클
- SDD(Spec-Driven Development)+AWS Kiro IDE 적용기 (https://goddaehee.tistory.com/405)
- 스펙 주도 개발(SDD) 이해하기:Kiro, Spec-Kit, Tessl(https://news.hada.io/topic?id=23776)
- 스펙 주도 개발(SDD): 워터폴의 귀한 (https://news.hada.io/topic?id=24400&utm_source=slack&utm_medium=bot&utm_campaign=T06GQCK25MJ)
- SDD - Spec Driven Development(https://velog.io/@lookin_min/SDD-Spec-Driven-Development)

