Published on

테크스펙?

Authors
  • avatar
    Name
    ywj9811
    Twitter

테크 스펙이란 무엇일까

테크 스펙(Tech Spec)은 말 그대로 개발을 시작하기 전에 작성하는 기술 문서를 의미한다.

이렇게 문서라는 말을 보면 약간 딱딱하고 관료적인 분위기가 느껴지기도 하며, 애자일에 반하는 그런 문화가 아닌가? 하는 의문점이 들 수 있다.

하지만, 애자일 선언을 다시 읽어보면 애자일 선언에서 경계하는 것은 문서 작성이 아닌 소프트웨어보다 문서 작성을 더 중요하게 여기는 관행이라는 것을 알 수 있다.

문서는 잘 이용된다면 개인 간의 상호작용을 촉진하고, 고객과의 협력을 활발하게 하며 애자일의 취지를 극대화시키기도 한다고 하는데, 테크 스펙은 그런 문서라고 한다.

이러한 테크 스펙은 개발을 위한 댜앙한 커뮤니케이션 채널을 ‘테크 스펙’ 이라는 하나의 채널로 줄여 커뮤니케이션 비용 절감의 도구가 될 수 있다.

테크 스펙은 어떻게 작성할까

테크 스펙은 기능을 구현하기 이전에 이 기능을 어떻게 구현할 것인지 기능적으로 풀어 설명하고 제안하는 글로, 자세하게 적으며 실제 플랫폼 코드가 포함되는 경우도 많다고 한다.

그렇다면 이러한 테크 스펙은 어떤 단계로 작성하는 것이 좋을까.

뱅크샐러드의 테크 스펙 작성법을 참고하면 다음과 같다.

요약 (Summary)

테크 스펙을 세줄 내외로 정리한다.

테크 스펙의 제안 전체에 대해 ‘누가’ ‘무엇을’ ‘언제’ ‘어디서’ ‘왜’ 를 간략하고 명확하게 적어준다.

B개발자A영역 을 유저가 원하는 순서로 커스텀할 수 있도록 한다. 서버에 순서 정렬 및 저장 API를 요청할 수 없으므로, 순서를 로컬에 저장하고 불러온다.

배경 (Background)

프로젝트의 문맥을 적어준다. 왜 이러한 기능을 만드는지, 어떤 문제를 해결하고자 하는지, 이전에 이러한 시도를 한 적이 있었는지, 해결이 되었었는지 등등을 포함한다.

다양한 탭을 사용하는 유저는 Segment에 따라 하단 탭의 노출 수와 사용 빈도가 다르다. 예를 들어 20대와 30대의 추천 탭 노출 수 사이는 월 n만 정도이며, 이러한 유저의 Segment에 맞춰 하단 탭 순서를 유저가 직접 커스텀할 수 있도록 한다면 사용자는 서비스가 개인화 되었다고 인지할 수 있을 것이다.

목표 (Goals)

예상 결과들을 Bullet Point 형태로 나열한다. 이 목표들과 측정 가능한 임팩트들을 이용해 추후 이 프로젝트의 성공 여부를 평가한다.

⚫ Bottom Navigation의 순서를 유저가 편집할 수 있게 한다.

⚫ 앱을 껐다 켜도 유저가 편집한 순서 그대로 하단 탭이 보이게 한다.

목표가 아닌 것 (Non-Goals)

목표가 아닌 것은 프로젝트에 연관되어 있으나 의도적으로 하지 않거나 해결하지 않으려 하는 것을 말한다.

이러한 부분을 정하게 된다면 프로젝트 범위를 더 명확하게 설정할 수 있고, 이 기능, 저 기능을 막 추가하고자 하는 것을 막을 수 있다.

목표처럼 목표가 아닌 것도 Bullet Point 형태로 읽기 쉽게 적어 독자가 직관적으로 이해할 수 있도록 한다.

⚫ 사용하지 않는 탭의 삭제 기능 등 ‘순서 편집’ 외 하단 탭에 관련한 추가적인 기능 개발

⚫ 순서 정렬 및 저장 API 개발

계획 (Plan)

테크 스펙에서 가장 긴 파트로, 준비한 모든 리서치, 준비 내용들을 여기에 적어주게 된다.

어떻게 기술적, 엔지니어링적으로 접근할지 상세하게 묘사한다.

만약 어떤 부분을 어떻게 할지 확실하게 결정하지 못한 상태라면 어떤 것들을 고려하고 있는지 목록화 해서 적어주도록 한다. 이렇게 하면 리뷰어들이 올바른 결정을 내리도록 도움을 줄 수 있다.

여기서는 상황에 따라 사용자와 시스템간 시퀀스 다이어그램, 서비스와 API간에 데이터 흐름 다이어그램, 데이터베이스 ERD등을 포함할 수 있으며, 필요에 따라 HTTP응답 코드, JSON 요청/응답 포멧, 에러 명세 등 다양한 내용까지 다뤄질 수 있다.

이외 고려 사항들 (Other Considerations)

고려했었으나 하지 않기로 결정된 사항들 또한 적는다. 이렇게 하면 이전에 논의되었던 주제가 다시 나오지 않도록 할 수 있고, 이미 논의되었떤 내용이더라도 리뷰어들이 다시 살펴볼 수 있다.

마일스톤 (Milestones)

프로젝트를 제 시간에 맞추기 위해 테크 스펙의 내용을 바탕으로 추정한 마일스톤을 공유한다.

실험 계획, 배포 날짜 들을 포함해 최대한 자세히 적어줄 수 있다.

테크 스펙의 장점

테크 스펙은 오히려 켄트백이 이야기한 질의응답과 즉각적인 피드백, 브레인스토밍 등을 가능하게 하는 것이 목적이다.

이전에 얘기한 것과 같이 테크 스펙을 커뮤니케이션의 한가지 채널로 활용하며 즉각적으로 소통하고 피드백을 할 수 있을 것이다.

그리고 위에서 이야기한 내용들과 같이 프로젝트의 범위를 명확하게 정의하여 불필요한 작업을 줄이고, 목표와 비목표를 명확하게 할 수 있으며 이를 통해 프로젝트의 성공 가능성을 더욱 높일 수 있을 것입니다.

참조

https://blog.banksalad.com/tech/we-work-by-tech-spec/

https://blog.banksalad.com/tech/techspec-is-not-doc/

https://f-lab.kr/insight/importance-of-tech-spec-20240725