[Techris] 1. 요구사항 분석
4, 5주차 미션의 요구사항을 분석하며
들어가며
우테코 8기 프리코스 4, 5주차 미션이 공개되어 요구사항을 분석하는 과정을 기록해보려 한다.
오픈 미션
이번 미션은 기존 3주차까지의 과정과 다르게 미션이 공개되지 않고 설명회를 통해 되었다. 그리고 어제 설명회를 통해 4, 5주차에 있을 오픈 미션회에 대한 정보를 얻을 수 있었는데 어느정도 예상은 했지만 직접 프로젝트를 기획하고 설계하며 구현하는 과정까지 거치는 미션이었다.
미션은 세 가지의 챌린지 중 한가지 이상을 골라서 진행하는 것인데 내용은 다음과 같다.
낯선 도구 해커톤
- 설명: 난이도는 평범하나 평소에 잘 사용하지 않는 개발 도구나 언어(예: Rust, Kotlin, WebAssembly, 하드웨어 보드 등)로 문제를 해결한다.
- 과제: 반드시 동작하는 작은 결과물(예: 간단한 앱, CLI 툴, 시뮬레이션) 제출한다.
고난도 문제 해커톤
- 설명: 평소에 익숙한 기술을 사용하여 난이도가 높은 문제를 해결한다.
- 과제: 난도가 높은, 정답이 없는 문제를 정의하고, 해결해 가는 과정, 결과물을 제출한다.
제한 협업 미션
- 설명: 2~3명이 한 팀이 되어 처음 보는 사람과 협업한다.
- 과제: 제한 조건을 만들어서 진행한다. 예) “소통은 하루 15분 화상회의만 가능”, “코드 작성은 깃허브 이슈/PR로만”
사실 이 세 가지를 보자마자 떠오른 것은 딱 하나뿐이었다. 지난 주차에 깊이 있게 학습했던 MVC 패턴의 초석이 된 언어, Smalltalk이 떠올랐고 이를 활용해 개발해보고자 한다. 하지만 이 선택이 옳은지에 대해서는 의견이 갈릴 수 있다. 80년대에 나온 언어를 사용하는 것이 너무 튀려고만 하는 것은 아닌가 하는 생각이 나 또한 들었기 때문이다. 그러나 설명회에서 결과보다는 과정을 중요시하며, 얼마나 몰입해서 과정을 녹여낼 수 있는지, 그리고 컴포트 존을 뛰어넘을 수 있는지를 보고 싶다고 했기에 내 선택이 틀리지만은 않았다고 생각한다.
또한 프리코스를 진행하면서 가장 궁금했던 언어이기도 하고, 모든 것이 객체로 이루어진 언어인 만큼 이를 제대로 학습한다면 향후 Java/Spring으로 개발할 때 실력도 자연스럽게 향상되지 않을까 기대한다.
두 마리 토끼를 잡을 순 없다.
말 그대로 두 마리 토끼를 잡을 순 없다. 여기서 말하는 두 마리 토끼는 기획의 복잡도와 낯선 도구의 난이도이다. 주어진 기간이 약 2주인 만큼, 낯선 도구를 사용하는 만큼 기획은 최대한 얇게 가져가야 기간 내에 프로그램을 완성할 수 있을 것이다. 따라서 Smalltalk이라는 매우 낯선 언어(프리코스에서 가장 낯선 언어가 아닐까)를 선택한 만큼, 기획은 단순하게 가져가야 한다.
테트리스
기획을 얇게 가져가야 한다는 결론이 났고, 그중에서 결과물을 가장 명확하게 드러낼 수 있는 작은 게임을 개발하기로 결정했다. 프리코스의 미션들이 작은 게임 및 프로그램을 작성하는 것이었던 만큼, 테트리스가 나의 노력을 가장 잘 반영할 수 있을 것 같았고 Smalltalk으로 테트리스를 개발하는 것으로 최종 결정했다.
마치며
요구사항 분석의 결론은 별거없다. Smalltalk이라는 낯선 언어를 깊게 배우고 잘 활용해서 테트리스를 개발해보자.