[Project] 나혼자 해커톤 후기 - 1

2025. 10. 20. 00:46·프로젝트
반응형

개요

연휴동안 충분히 쉬기도 했고, 그동안 진행하던 개인프로젝트가 지지부진한 것 같아 리프레시할 겸 새로운 단기 프로젝트가 하고 싶었다. 주말동안 시간을 정하고(10시간) 완성해보자는 생각으로 Arcade Market이란 프로젝트를 시작했다. 너무 참신한 아이디어를 내기는 어려울 것 같아 포인트로 아이템을 거래하는 플랫폼을 주제로 진행했다.

토요일 오전부터 바로 개발에 들어갈 수 있게 PRD, 유저플로우 문서를 작성했다. AI의 도움을 받아가며 초안을 작성할 수 있었다. 개발할 때 필요할 것 같은 기능상세정의 문서는 대략 템플릿 정도만 만들어두고 개발하면서 바로 AI 생성이 가능하게끔 준비했다. 목요일 퇴근 후, 금요일 출근 전에 약 1~2시간 정도 소요된 것 같다.

계획은 백엔드, 프론트엔드 모두 개발할 생각이었다. 예전에 gemini 써서 그럴듯하게 프론트 엔드 화면을 구성 해줬고 nuxt랑 tailwindcss를 쓰면 나름 빠르게 만들 수 있을 것 같았다. 계획한 기능은 아래와 같다.

  • 사용자 관리 : 회원가입 및 로그인, 프로필 조회
  • 포인트 시스템 : 포인트 충전, 포인트 조회, 포인트 이력
  • 게임 아이템 마스터 : 아이템 마스터 데이터 저장 및 조회
  • 사용자 인벤토리 : 플레이어가 보유한 아이템 목록
  • 아이템 거래 : 보유 아이템 판매/구매

목표

  • 주어진 기능을 구현하는데 얼마나 걸리는지 내 예측과 실제 시간의 차이에 대한 감각을 익히고 싶었다.
  • 완성도가 높지 않더라도 어느정도 동작을 하는 결과물을 완성해 베이스라인 프로젝트로 사용하고 싶다. 개발 관련 공부를 할 때 아무것도 없는 상황보다는 뭔가를 개선해 나가는 시작점으로 활용할 수 있을 것 같았다.
  • 주어진 시간에 내가 얼만큼의 기능을 구현하고 완성할 수 있을지 궁금했다.

결과

구현 결과

구현한 기능

  • 회원(2~3시간 소요)
    • 회원 가입, 회원 기본정보 조회
    • 로그인 및 인증
  • 아이템 마스터(1~2시간 소요)
    • 정보 등록 및 조회
  • 포인트(1~2시간 소요)
    • 충전 및 충전 이력 저장

구현하지 못한 기능

  • 인벤토리
  • 아이템 거래
  • 프론트엔드 화면 구성요소

통계

  • 작업시간 10시간 29분(12시간으로 설정한 타이머가 1:41 남음)
  • 커밋 수: 37
  • Java 파일: 52개, Vue 파일: 9개, Typescript 파일: 150개(typescript는 openapi-generator 코드 포함)
  • 총 라인 수: 16720

회고

작업 시간은 12시간으로 잡았지만 주말에 혼자 진행해서인지 쉬는 시간의 비중이 높아져 10시간정도 작업할 수 있었다. 예상보다 많이 완성하지 못해서 아쉬웠다. 또 아쉬운건 작업하다 중간중간 다른 일을 하기도 했고 타이머로 남은 시간만 확인하면서 진행해서 어디서 작업시간에 병목이 생겼는지 파악하기가 어렵다. 작업하면서 대충 이거 몇 시간 정도 걸렸구나 넘어갔는데 다음에는 뭐하는데 얼마나 결렀는지 간단히 메모라도 남겨야겠다.

 

잘한 점

  • 사전에 PRD와 유저 플로우 문서를 만들어둔게 개발하면서 도움이 많이 됐다. 구현해야할 내용을 파악하기 쉽고 다른 기능에 어떤 영향을 주고 받을지 예측할 수 있었다.
  • openapi-generator, swagger 설정, 로그인 등 프로젝트마다 공통으로 사용할 수 있는 작업을 해서 다음 프로젝트에도 도움이 될 것 같다.
  • 작업을 10시간 계속 진행한게 아니라 몇 시간하고 다른 일을 하다가 다시 작업하는 방식이었는데도 작업을 이어나가는게 어렵지 않았다. 기능 구현하기 전에 구현할 기능 명세를 문서로 미리 작성하고 시작한게 도움되었다.

아쉬운 점

  • 핵심 기능을 구현하지 못했다. 마켓이 주제인만큼 거래가 핵심 기능인데 이 부분은 시작도 못했다.
  • 작업 우선순위를 잘못 세웠다. 시간이 충분하다고 생각해서 유저가 앱을 사용하는 순서에 필요한 기능대로 작업했다. 회원이나 아이템 마스터 기능은 금방 완성할거라 예상했는데 생각보다 시간이 오래 걸렸다.
  • 코드 구현 외에도 많은 시간 소모가 있었다. 미리 PRD나 유저 플로우를 작성했어도 초안에 가까워서 조금 다듬는게 필요했다. 또 게임 아이템 이미지를 유니티 에셋 스토어에서 구매한걸 사용했는데, 이미지 파일만 필요한데도 유니티 에디터를 설치해야했다… (막상 이미지를 받고나니 전체 이미지는 필요없었다.)
  • 기능 명세 문서를 모두 따르며 개발하지 못했다. 예상보다 작업시간이 오래 걸릴 것 같아 코드에 구현이나 제약사항, 테스트 케이스를 모두 반영하지 못했다. 또 작업하면서 변경되는 내용을 문서에 반영하지 못했다.

배운 점

  • 작업 우선순위 선정이 중요하다. 작업하다보면 시간이 정말 빠르게 지나가기 때문에 핵심 기능을 우선으로 구현해야겠다. 충분히 다 할 수 있겠지라는 안일한 생각으로 우선순위에 소홀했다.
  • 내 예상보다 훨씬 더 작업 예상 시간을 길게 잡아야 한다. 기능 구현이라는게 단순히 API 엔드포인트 추가가 끝이 아니라 클라이언트에 어떤 정보가 필요한지, DB에 뭘 저장해야하는지 등 고려할게 많다. 이러다 보면 진짜 시간이 훌쩍 지나간다.
  • 문서가 있으니 작업할 때 기준점이 되는게 좋았다. 코드를 작성하면서 문서도 완성해나간다는 느낌으로 작업하면 좋을 것 같다.

다음에 시간을 내서 남은 기능들을 모두 구현할 예정이다. 이번에는 코드 작성에 AI를 많이 활용하지 못했는데 다음 작업에서는 어떻게 AI로 코드를 빠르게 완성할 수 있을지 고민해봐야겠다.

반응형
저작자표시 비영리 변경금지 (새창열림)
'프로젝트' 카테고리의 다른 글
  • [Project] 나혼자 해커톤 후기 - 2
  • [Project] 4dollar - 헥사고날 아키텍처에서 패키지 구조 전환
  • [Project] 4dollar - 경계간 매핑하기
  • 리더보드 만들기 - 1
덴마크초코우유
덴마크초코우유
IT, 알고리즘, 프로그래밍 언어, 자료구조 등 정리
    반응형
  • 덴마크초코우유
    이것저것끄적
    덴마크초코우유
  • 전체
    오늘
    어제
    • 분류 전체보기 (131)
      • Spring Framework (13)
        • Spring (7)
        • JPA (4)
        • Spring Security (0)
      • Language (52)
        • Java (12)
        • Python (10)
        • JavaScript (5)
        • NUXT (2)
        • C C++ (15)
        • PHP (8)
      • DB (16)
        • MySQL (10)
        • Reids (3)
        • Memcached (2)
      • 개발 (3)
      • 프로젝트 (5)
      • Book (2)
      • PS (15)
        • 기타 (2)
        • 백준 (2)
        • 프로그래머스 (10)
      • 딥러닝 (8)
        • CUDA (0)
        • Pytorch (0)
        • 모델 (0)
        • 컴퓨터 비전 (4)
        • OpenCV (1)
      • 기타 (16)
        • 디자인패턴 (2)
        • UnrealEngine (8)
        • ubuntu (1)
        • node.js (1)
        • 블로그 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JavaScript
    Python
    MySQL
    게임 개발
    memcached
    웹
    map
    select
    redis
    블루프린트
    클래스
    Unreal Engine
    자바
    C++
    mscoco
    CPP
    파이썬
    딥러닝
    프로그래머스
    pytorch
    JS
    NUXT
    Unreal
    C
    게임
    언리얼엔진4
    php
    FPS
    PS
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
덴마크초코우유
[Project] 나혼자 해커톤 후기 - 1
상단으로

티스토리툴바