약 3년여간 테니스를 즐겨 치고 있습니다. 단순히 취미로 즐기던 저였지만 새로운 도전을 해보려고 합니다.
최근 직관했던 ‘현대 슈퍼매치’에서 알카라스와 시너의 박진감 넘치는 경기와 수많은 테니스 팬의 열기를 현장에서 직접 느끼며, 우리나라 테니스 커뮤니티와 인프라가 얼마나 빠르게 성장하고 있는지 실감했습니다. 하지만 동시에 동호인으로서 겪어온 불편함들도 떠올랐습니다. 완전 무료의 테니스 매칭앱이 없을까 라는 의문이 생겼고, 개발자로서의 한번 만들어 보기로 했습니다.
그 열기를 담아, 테니스인들을 위한 ‘TENNIS.GG’ 프로젝트를 본격적으로 시작하게 되었습니다. 오늘은 1인 개발자로서 이 원대한 꿈을 실현해 줄 효율 중심의 개발 스택과 AI 도구 활용 방안을 상세히 공유해보려 합니다.
1. 프론트엔드: Flutter를 선택한 전략적 이유
모바일 앱 개발언어는 기존에 가장 잘 다룰줄아는 Flutter(플러터)를 선택하였습니다.
- 크로스 플랫폼의 효율성: Dart 언어를 기반으로 하는 Flutter는 하나의 코드베이스로 iOS와 Android 양쪽 진영에 네이티브 급 성능을 제공합니다. 현대 슈퍼매치 현장에서 본 것처럼 테니스 팬층은 기기 사용 환경이 매우 다양합니다. 따라서 빠른 업데이트와 동일한 사용자 경험 제공을 위해 Flutter를 메인 프레임워크로 채택했습니다.
- 커스텀 UI의 강점: 테니스 스코어 보드나 경기 기록 분석 등 시각적인 데이터 표현이 중요한 서비스인 만큼, Flutter의 강력한 위젯 시스템은 디자인적 자유도를 크게 높여줍니다. 코트의 생동감을 앱 UI에 그대로 녹여낼 계획입니다.
2. 백엔드와 데이터베이스: 안정성의 Java & MySQL
프론트엔드에서 화려함을 보여준다면, 백엔드는 무엇보다 안정성과 확장성이 담보되어야 합니다.
- Java 프레임워크 활용: 실무에서 가장 숙련도가 높은 Java를 사용하여 비즈니스 로직의 견고함을 확보할 계획입니다. 이는 향후 사용자가 급증하더라도 서버의 안정성을 유지하고 유지보수를 용이하게 하기 위함입니다.
- MySQL을 통한 정교한 데이터 설계: 경기 기록, 유저 간 매칭 데이터, 시설 정보 등 복잡하게 얽힌 관계형 데이터를 관리하기 위해 MySQL을 선택했습니다. 정산이나 예약 시스템처럼 무결성이 중요한 영역에서 Java와 MySQL의 조합은 가장 신뢰할 수 있는 선택지입니다.
3. 개발 생산성의 핵심: Antigravity CLI와 AI의 결합
이번 프로젝트에서 가장 주목할 부분은 Antigravity CLI를 개발 프로세스 전반에 도입했다는 점입니다. 1인 개발자는 시간이 곧 자산입니다.
- 터미널 기반의 AI 워크플로우: 코드 작성 중 발생하는 에러 로그 분석이나 복잡한 알고리즘 최적화가 필요할 때, 브라우저로 이동할 필요 없이 터미널에서 즉각적으로 Gemini와 Claude 모델의 통찰을 얻습니다.
- 코드 리뷰 자동화: Antigravity를 활용하면 작성한 코드의 보안 취약점을 점검하거나, 더 나은 Dart 문법으로의 리팩토링 제안을 실시간으로 받을 수 있어 개발 시간을 획기적으로 단축해 줍니다. 마치 AI 사수가 옆에서 코칭해 주는 느낌을 받습니다.
4. 디자인 혁신: Google Stitch AI의 활용
아무래도 순수 개발자다 보니 디자인 역량이 부족한 저에게 구글의 Stitch AI를 적극 활용하기로 했습니다.
단순히 예쁜 UI를 만드는 것을 넘어, Stitch AI를 통해 테니스 서비스가 가져야 할 역동성과 신뢰감을 주는 컬러 팔레트, 아이콘 세트를 생성하고 있습니다. 현대 슈퍼매치의 브랜딩에서 느꼈던 그 세련된 감각을 앱의 전반적인 테마에 반영하여, 사용자에게 전문적인 브랜드 이미지를 전달하고자 합니다.
결론: 기술과 열정의 결합으로 만드는 TENNIS.GG
이제는 본격적인 구현의 단계로 넘어갑니다. 앞으로 블로그를 통해 각 스택별 구현 과정에서 발생하는 기술적 난제와 해결 과정을 상세히 기록할 예정입니다. 테니스와 개발, 두 분야에 관심 있는 분들의 많은 소통과 응원 부탁드립니다.