Jeongjin Oh πŸ–– Live Lazy And Programming

ServalRun Prototype Postmortem

ServalRun의 Serval

μ§€λ‚œ 6μ›” μ΄ˆλΆ€ν„° μ‹œμž‘ν–ˆλ˜ ServalRun의 Prototype이 7μ›” 2827일에 μ™„μ„±ν–ˆλ‹€. 이 Project둜 말할 것 κ°™μœΌλ©΄ μ§€λ‚œ 5μ›” 말~6μ›” 초 μ¦ˆμŒμ— κ²Œμž„ μ—…κ³„λ‘œ 였고 μ‹Άμ–΄ν•˜λŠ” 지인이 μžˆμ—ˆλŠ”λ°, κ·Έ 뢄이 μΌ€λͺ¨λ…Έ ν”„λ Œμ¦ˆμ˜ 주인곡인 μ„œλ²Œμ„ λœ€λ°•μ§ˆν•˜λŠ” λͺ¨μŠ΅μ„ κ³΅κ°œν•˜λ©΄μ„œ μ‹œμž‘λ˜μ—ˆλ‹€. ν‰μ†Œ λŸ°κ²Œμž„μ€ μ–΄λ–»κ²Œ λ§Œλ“€κΉŒ?λΌλŠ” 생각을 ν•΄μ™”λ˜ 터라 ν₯미도 μžˆμ—ˆκ³ , μ„œλ²Œμ„ λ§Œλ“  뢄은 아직 취업을 ν•˜μ§€ λͺ»ν•΄μ„œ Portfolioλ₯Ό κ²Έν•΄μ„œ μ§„ν–‰ν•΄λ³΄λŠ” 것이 쒋을 것 κ°™μ•„μ„œ ν•¨κ»˜ μ§„ν–‰ν•˜κΈ°λ‘œ ν–ˆλ‹€. μ›λž˜λŠ” Prototype μ œμž‘ 2μ£Ό, QA 1μ£Ό, μ•ˆμ •ν™” 및 μΆ”κ°€ μž‘μ—… 2μ£Ό, QA 1주의 총 6μ£Ό μ •λ„μ˜ μΌμ •μœΌλ‘œ 생각을 ν–ˆλ‹€. Programming을 μ „λ‹΄ν•  λ‚˜λ₯Ό ν¬ν•¨ν•΄μ„œ κ²Œμž„μ˜ 전체적인 Graphic을 ν•˜μ‹€ @everev, 전체적인 기획 및 Level Design을 ν•  @norongκ³Ό ν•¨κ»˜ λ§Œλ“€κ²Œ λ˜μ—ˆλ‹€. @ungikim은 일정 감수물주λ₯Ό ν•΄μ£Όμ—ˆλ‹€.

일단 μœ„μ— μ–ΈκΈ‰λ˜μ—ˆλ˜ 일정을 μ •ν•˜κΈ° 전에 github에 Repositoryλ₯Ό λ¨Όμ € μƒμ„±ν–ˆλ‹€. λ‚˜λ₯Ό μ œμ™Έν•˜κ³ λŠ” λͺ¨λ‘ git을 처음 μ¨λ³΄λŠ” μƒν™©μ—μ„œ μ΅œλŒ€ν•œ μ•ŒκΈ° μ‰½κ²Œ μ„€λͺ…을 ν•΄μ£Όλ € λ…Έλ ₯을 ν–ˆλ‹€. 그런데 이런 상황이 μ²˜μŒμ€ μ•„λ‹ˆμ—ˆλ‹€. 첫 νšŒμ‚¬λ₯Ό λ‹€λ‹ˆλ˜ 2016λ…„ 11μ›” κ²½, 사내에 버전 관리λ₯Ό Asset Server둜 ν•˜κ³  μžˆμ—ˆλ‹€. λ‹Ήμ‹œ μ—¬λŸ¬ ꡭ가에 μ„œλΉ„μŠ€λ₯Ό ν•΄μ•Ό ν–ˆκ³  κ΅­κ°€λ³„λ‘œ λ‚΄μš©μ΄ μ‘°κΈˆμ”© λ‹¬λΌμ‘ŒκΈ° λ•Œλ¬Έμ— λ”°λ‘œ κ΄€λ¦¬ν•΄μ•Όν•˜λŠ” μƒν™©μ—μ„œ SVNκ³Ό gitμ€‘μ—μ„œ 선택을 ν•΄μ•Όν•˜λŠ” 상황에 λ†“μ˜€λ‹€. ClientνŒ€μ—μ„œ μ—¬λŸ¬ 가지λ₯Ό κ³ λ €ν•œ κ²°κ³Ό git을 μ“°κΈ°λ‘œ ν–ˆλŠ”λ°, λ¬Έμ œλŠ” λ‚˜ 이외에 아무도 git을 써본 μ‚¬λžŒμ΄ μ—†μ—ˆλ‹€. λ‹Ήμ‹œμ˜ λ‚˜λ„ 20λͺ… κ°€λŸ‰μ˜ νŒ€μ—μ„œ git을 써본 적이 λ‹Ήμ—°νžˆ μ—†κΈ° λ•Œλ¬Έμ— λ‚œκ°ν–ˆμ§€λ§Œ 잘 μ •μ°© μ‹œν‚€κΈ° μœ„ν•΄ 백방으둜 λ›°μ–΄λ‹€λ…”λ‹€. λΉ„(非)κ°œλ°œμžλ“€λ„ μžˆμ—ˆκΈ° λ•Œλ¬Έμ— μ‰½κ²Œ 해보렀 ν–ˆμœΌλ‚˜ μ—­μ‹œλ‚˜ μ„€λͺ…이 λΆ€μ‘±ν–ˆκ³  κ·Έ 결과둜 λͺΈμœΌλ‘œ λ›°μ–΄ λ‹€λ‹ˆλ©΄μ„œ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 상황에 λ†“μ˜€λ‹€. κ·Έλ ‡κ²Œ 1~2달을 λ›°μ–΄λ‹€λ‹ˆλ‹ˆ λ‹€λ“€ 적응을 ν•΄μ€˜μ„œ λ‚˜λ¦„ 성곡적(?)으둜 정착이 λ˜μ—ˆλ‹€. μ–΄μ°Œλ˜μ—ˆλ“  μ΅œλŒ€ν•œ κΈ°λ³Έ Role만 μ„€λͺ…을 ν•΄μ£Όκ³  λ¬Έμ œκ°€ 생길 λ•Œλ§ˆλ‹€ μ¦‰μ‹œ μ•Œλ €μ£Όλ„λ‘ ν–ˆλ‹€. μ—­μ‹œλ‚˜ 1~2μ£Όλ™μ•ˆμ€ μ—΄μ‹¬νžˆ gitκ³Ό κ΄€λ ¨ν•œ 문제둜 λ°”μ˜κ²Œ μ§€λ‚˜κ°”λ‹€. κ·Έλž˜λ„ μ§€λ‚œ λ‚ μ˜ μ•„ν””(?)이 μžˆμ—ˆκΈ°μ— μ‰½κ²Œ ν’€μ–΄κ°”λ˜ 것 κ°™λ‹€.

6μ›” μ΄ˆμ— λͺ¨λ‘κ°€ λͺ¨μ—¬μ„œ 첫 회의λ₯Ό ν–ˆλ‹€. Google Chromeμ—μ„œ λ³Ό 수 μžˆλŠ” Offline μ‹œμ˜ 곡룑 λŸ°κ²Œμž„μ„ λ”°λΌμ„œ μΌ€λͺ¨λ…Έ ν”„λ Œμ¦ˆμ˜ νŠΉμ§•μ„ λ‹΄μ•„μ„œ λ§Œλ“€κΈ°λ‘œ ν–ˆλ‹€. μœ„μ—μ„œ λ§ν•œ κ²ƒμ²˜λŸΌ 6주의 μΌμ •μœΌλ‘œ μ§„ν–‰ν•˜κΈ°λ‘œ ν–ˆλ‹€. Playable Character 1μ’…, Opponent Character 1μ’…, Tile 5μ’…, λ°°κ²½ 3μ’… λ“±μœΌλ‘œ Resourceλ₯Ό κ΅¬μ„±ν–ˆλ‹€. Map Toolκ³Ό Play κ°€λŠ₯ν•œ Map 1쒅도 Prototype에 ν¬ν•¨ν•˜κΈ°λ‘œ ν–ˆλ‹€.

ServalRun Prototype 회의둝

처음 μ‹œμž‘ν–ˆμ„ 땐 μ—­μ‹œλ‚˜ ꡉμž₯히 μ˜μš•μ μœΌλ‘œ μž‘μ—…μ„ μ§„ν–‰ν–ˆμ§€λ§Œ, 각자 직μž₯을 λ‹€λ‹ˆκ³  μžˆμ—ˆκ³  μž‘μ—…ν•  μ‹œκ°„μ΄ 생각보닀 λ‚˜μ˜€μ§€ μ•Šμ•˜λ‹€. 일단 λ‚˜λΆ€ν„° μž‘μ—…μ΄ λ˜μ§€ μ•Šμ•„μ„œ λ‹€λ₯Έ μ‚¬λžŒλ“€μ˜ μž‘μ—…λ„ μ§€μ²΄λ˜λŠ” κ²½μš°κ°€ λ§Žλ‹€λ³΄λ‹ˆ 6μ£Ό μ•ˆμœΌλ‘œ λ„μ €νžˆ 끝날 수 μ—†λ‹€λŠ” 것을 κΉ¨λ‹«κΈ°κΉŒμ§€ 였랜 μ‹œκ°„μ΄ 걸리지 μ•Šμ•˜λ‹€. κ·Έλ ‡κ²Œ 질질 λŒλ €κ°€λ˜ μž‘μ—…μ΄ κ²°κ΅­ 7월이 λ˜μ–΄μ„œλ„ 큰 진전이 μ—†μ—ˆλ‹€. κ²Œμž„ μžμ²΄λŠ” κ°„λ‹¨ν•΄μ„œ κΈˆλ°©ν•  것 κ°™μ•˜μ§€λ§Œ λ‚΄ λ‚˜λ¦„λŒ€λ‘œμ˜ μš•μ‹¬μ΄ μƒκ²¨μ„œ μ’€ 더 μ •κ΅ν•˜κ²Œ λ§Œλ“œλ €λ‹€ λ³΄λ‹ˆ 이도저도 μ•„λ‹ˆκ²Œ λ˜μ–΄λ²„λ¦¬κ³  μžˆμ—ˆλ‹€. 그리고 λ‹€λ“€ 동기뢀여가 ν™•μ‹€ν•˜μ§€ μ•Šμ€ μƒνƒœμ—μ„œ ν•˜λ‹€λ³΄λ‹ˆ μ§€μ§€λΆ€μ§„ν–ˆλ˜ 것도 ν•œ λͺ« ν–ˆλ˜ 것 κ°™λ‹€. ν•˜μ§€λ§Œ μƒκ°ν•΄λ³΄λ‹ˆ 7μ›”μ—λŠ” 큰(?) 행사가 ν•˜λ‚˜ μžˆμ—ˆλ‹€. λ°”λ‘œ 3연전이라고 λΆˆλ¦¬μš°λŠ” λ‚΄κ°€ μ†ν•œ 그룹의 ν–‰μ‚¬μ˜€λ˜ 것. λ‚˜λ₯Ό ν¬ν•¨ν•΄μ„œ 7μ›” 28, 29, 30일에 생일이 연달아 μžˆλŠ” 것을 ν•¨κ»˜ μ±™κ²¨μ£ΌμžλŠ” 것과 여름 νœ΄κ°€ μ‹œμ¦Œμ΄κΈ°λ„ ν•˜κ³  λ‹€ν•¨κ»˜ λͺ¨μ—¬μ„œ 놀고 λ¨ΉλŠ” 것을 거의 10λ…„λ™μ•ˆ ν•˜κ³  μžˆμ—ˆλ‹€. μš°λ¦¬λŠ” 3연전에 λ§žμΆ°μ„œ μ™„μ„±ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ 달리기 μ‹œμž‘ν–ˆλ‹€. ν™•μ‹€νžˆ 동기뢀여가 λ˜λ‹ˆκΉŒ μž‘μ—… μ†λ„λ‚˜ λŠ₯λ₯ μ΄ 달라지긴 ν–ˆλ‹€. 그도 그럴 것이 λŒ€ν•™μƒ μ΄ν›„λ‘œ ν•˜μ§€ μ•Šλ˜ λ²„μŠ€ μ½”λ”©κΉŒμ§€ μ‹œμ „ν–ˆλ‹€. μΆœν‡΄κ·Ό μ‹œκ°„μ΄ 1μ‹œκ°„μ΄ 쑰금 λ„˜λ‹€λ³΄λ‹ˆ 좜근 μ‹œκ°„μ€ 앉기도 νž˜λ“€μ–΄μ„œ μ–΄μ©” 수 μ—†λ‹€κ³  쳐도 퇴근 μ‹œκ°„μ—” 무쑰건 μ•‰μ•„μ„œ 갈 수 있기 λ•Œλ¬Έμ— 1μ‹œκ°„λ™μ•ˆμ΄λΌλ„ μ§‘μ€‘ν•΄μ„œ μž‘μ—…μ„ ν•˜λŠ” 것이 μ’‹κ² λ‹€κ³  생각이 λ“€μ—ˆλ‹€.

μ–΄λŠ 정도 κ²Œμž„μ˜ μœ€κ³½μ„ λ“œλŸ¬λ‚Έ 것은 3μ—°μ „μ˜ 일주일 μ „μ΄μ—ˆλ‹€. κ·Έλž˜λ„ 아직은 레벨 λ””μžμΈμ„ ν•  λ§Œν•œ μˆ˜μ€€μ΄ μ•„λ‹ˆμ—ˆκ³ , 버그도 λ„˜μ³λ‚¬κΈ° λ•Œλ¬Έμ— 일주일은 ν•œμˆœκ°„μ— μ§€λ‚˜κ°”λ‹€. μ–ΌμΆ” 버그λ₯Ό 작고 레벨 λ””μžμΈμ„ μ‹œμž‘ν•œ μ‹œμ μ΄ 27일 μ €λ…μ΄μ—ˆλ‹€. κ·Έλ ‡κ²Œ ν•œλ²ˆμ— λ§Œλ“  λ ˆλ²¨μ„ 1회 ν…ŒμŠ€νŠΈν•˜κ³  λΉŒλ“œλ₯Ό ν•  수 밖에 μ—†μ—ˆλ‹€ (…) 일단 λ””μžμΈν•œ 본인은 κΉΌλ‹€κ³  ν•΄μ„œ 점수=돈으둜 이벀트λ₯Ό ν–ˆμ§€λ§Œβ€¦ κ²°κ³ΌλŠ” μ²˜μ°Έν–ˆλ‹€. 127점이 졜고 μ μˆ˜μ˜€λ˜ 것이닀. λ‚΄κ°€ ν–ˆμ„ λ•Œμ—λŠ” μ‹œκ°„μ΄ μ—†μ–΄μ„œ λŒ€μΆ©ν•˜κΈ°λ„ ν–ˆμ§€λ§Œ 사싀 생각해보면 ꡉμž₯히 μ–΄λ €μš΄ κ²Œμž„μ΄μ—ˆλ˜ 것이닀 (…) κ²Œλ‹€κ°€ WebGL둜 λ§Œλ“€μ–΄μ„œ μ›Ή λΈŒλΌμš°μ Έκ°€ μžˆλ‹€λ©΄ μ–΄λ””μ—μ„œλ“ μ§€ μ‹€ν–‰ν•  수 μžˆκ²Œλ” λ§Œλ“œλŠ” 것이 λͺ©μ μ΄μ—ˆμœΌλ‚˜ 싀상은 λͺ¨λ°”μΌμ—μ„œ Input Eventλ₯Ό μ§€μ›ν•˜μ§€ μ•Šμ•„μ„œ 이름쑰차 μž…λ ₯ν•  수 μ—†λŠ” μƒν™©μ΄μ—ˆλ‹€. κ·Έλž˜μ„œ 3μ—°μ „ ν˜„μž₯에 μžˆλŠ” λŒ€λΆ€λΆ„μ˜ μ‚¬λžŒλ“€μ€ μ΄λ²€νŠΈμ— μ°Έμ—¬ν•˜μ§€λ„ λͺ»ν•˜κ²Œ λ˜λ²„λ Έλ‹€. μ΄λ²€νŠΈκ°€ νŒŒν–‰μœΌλ‘œ κ°€μž νŠΉλ‹¨μ˜ λŒ€μ±…μ΄ ν•„μš”ν–ˆλ‹€. 127원을 쀄 μˆ˜λŠ” μ—†μ–΄μ„œ κ·Έλƒ₯ λ‚˜λ¦„μ˜ κΈ°μ€€μœΌλ‘œ μˆœμœ„λ₯Ό μ •ν•΄μ„œ μŠ€νƒ€λ²…μŠ€ 1λ§Œμ› μƒν’ˆκΆŒμ„ μ§€κΈ‰ν•˜λŠ” μ‹μœΌλ‘œ λ§ˆλ¬΄λ¦¬ν–ˆλ‹€. 돌이켜보면 ν°μ—μ„œ ν•œλ²ˆμ΄λΌλ„ ν…ŒμŠ€νŠΈλ₯Ό ν•΄λ΄€λ‹€λ©΄ 이런 일이 λ²Œμ–΄μ§€μ§€ μ•Šμ•˜μ„κΉŒ 싢기도 ν–ˆμ§€λ§Œ, 좜발 당일 μƒˆλ²½κΉŒμ§€ 버그λ₯Ό κ³ μΉ˜λ©΄μ„œ λΉŒλ“œν•˜λŠλΌ λ„ˆλ¬΄λ‚˜λ„ μ§€μ³μžˆμ–΄μ„œ ν°μ—μ„œμ˜ ν…ŒμŠ€νŠΈλŠ” κΏˆλ„ 꾸지 λͺ»ν–ˆλ˜ 것이닀. κ²°κ΅­ λ­”κ°€ ꡉμž₯히 ν—ˆλ¬΄ν•˜κ²Œ λλ‚˜λ²„λ Έλ‹€.

μ§€κΈˆκΉŒμ§€ ν˜Όμžμ„œ μ΄λŸ°μ‹μœΌλ‘œ κ°œλ°œν•œ 적은 λ”λŸ¬ μžˆμ—ˆμ§€λ§Œ μ‘Έμ—… ν›„ νšŒμ‚¬ μ΄μ™Έμ˜ νŒ€μ—μ„œ μ΄λ ‡κ²Œ κ²Œμž„λ‹΅κ²Œ(?) ν”„λ‘œν† νƒ€μ΄ν•‘ ν•΄λ³Έ 것은 λΉ„κ³΅κ°œ ν”„λ‘œμ νŠΈ 1개 μ΄ν›„λ‘œ μ²˜μŒμ΄λ‹€. κ·Έλž˜μ„œ κ°œμΈμ μœΌλ‘œλŠ” ꡉμž₯히 λŠλΌλŠ” λ°”κ°€ λ§Žμ•˜λ‹€. λ¨Όμ € 아무리 νšŒμ‚¬μ— λ‚˜μ™€μ„œ κ²Œμž„μ„ λ§Œλ“œλŠ” 것이 λΉ„νš¨μœ¨μ μ΄λΌκ³  λ§ν•˜λŠ” μ‚¬λžŒμ΄ μžˆμ§€λ§Œ κΎΈμ€€νžˆ μ–΅μ§€λ‘œλΌλ„ ν•  수 μžˆλŠ” μ‹œκ°„κ³Ό 여건이 μ‘°μ„±λ˜μ–΄μ•Όν•œλ‹€λŠ” 것을 κΉ¨λ‹«κ²Œ λ˜μ—ˆλ‹€. 그리고 λͺ¨λ‘κ°€ λ„£κ³  μ‹Άμ–΄ν•˜λŠ” κΈ°λŠ₯μ΄λ‚˜ κ·Έλ¦Ό, 기획이 μ—¬λŸΏ μžˆμ—ˆμœΌλ‚˜ 일정과 μž‘μ—… λ²”μœ„μ— μΉ˜μ—¬ ν•˜μ§€ λͺ»ν•œ κ²½μš°λ„ λ§Žμ•˜λ‹€. ꡉμž₯히 μ•„μ‰¬μš΄ 뢀뢄이닀. λ‚˜λ§Œμ˜ ν”„λ‘œμ νŠΈμ—μ„œλŠ” λ‚΄ λ§ˆμŒλŒ€λ‘œ ν•  수 μžˆμ„ 것 κ°™μ•˜λŠ”λ°β€¦ μ˜€λ§Œν•œ μƒκ°μ΄μ—ˆλ‹€. 개인적인 λ³€λͺ…거리긴 ν•˜μ§€λ§Œ λ‚˜μ˜ κ²½μš°μ—” 마침 ν•΄λ‹Ή 기간에 μ•Όκ·Όν•˜λŠ” 날이 λ§Žμ•„μ Έμ„œ 평일에 집쀑할 수 μžˆλŠ” μ‹œκ°„μ΄ λ„μ €νžˆ λ‚˜μ˜€μ§€ μ•Šμ•˜λ‹€. 퇴근 길에 λ²„μŠ€μ—μ„œ μ½”λ”©ν•œλ‹€κ³  쳐도 λ°€ 11μ‹œ~12μ‹œμ— ν•˜λ €λ‹ˆ ꡉμž₯히 ν”Όκ³€ν–ˆμ—ˆλ‹€. 타이밍이 정말 아쉬웠닀. ServalRun을 보면 μ•Œκ² μ§€λ§Œ κ°„λ‹¨ν•œ λŸ°κ²Œμž„μ΄λ‹€. 살을 뢙일 μš”μ†Œκ°€ 생각보닀 많이 μžˆμ–΄μ„œ 퀄리티 업을 μ’€ 더 ν•œλ‹€λ©΄ μΆ©λΆ„νžˆ μΆœμ‹œν•  수 μžˆμ§€ μ•Šμ„κΉŒ μ‹ΆκΈ΄ ν•˜μ§€λ§Œβ€¦ λΉ„μŠ·ν•œ μž‘μ—…λŸ‰μ„ 보이기 μœ„ν•΄μ„œλŠ” 3μ—°μ „κ³Ό 같은 동기뢀여가 또 ν•„μš”ν•΄λ³΄μΈλ‹€.

μ•„μ‰¬μ› λ˜ 점은 더 λ§Žμ§€λ§Œ λ‚˜λ¨Έμ§€ 뢀뢄듀은 λ‹€λ₯Έ μ‚¬λžŒλ“€λ„ μΆ©λΆ„νžˆ κ³΅κ°ν• λ§Œν•œ 뢀뢄이 μ•„λ‹κΉŒ μ‹Άλ‹€. ν˜€νŠΌ μ‹€μ œλ‘œ ServalRun Prototype을 해보고 μ‹Άλ‹€λ©΄ μ΄κ³³μ—μ„œ μ²΄ν—˜ κ°€λŠ₯ν•˜λ‹€.

일단 μ΄λ ‡κ²Œ λ‘μ„œμ—†λŠ” 포슀트λͺ¨ν…œμ„ 끝내보겠닀…

Comments