- 이번 팀 프로젝트를 진행하면서 가장 크게 느낀 점 중 하나는 "초기 설계의 중요성"이었다.
- 우리 팀은 초반에 필수 기능 구현을 최우선 목표로 설정했고, 그에 따라 최소한의 구조만 갖춘 채작업을 시작했다.
- 당시 팀원들 대부분이 프로젝트 경험이 적은 상태였고, 어디까지 구현이 가능할지 가늠이 어려운 상황이었기 때문에, 우선은 기능을 구현하면서 구조는 나중에 맞춰가자는 분위기가 형성됐다.
🚧 문제의 시작: 구조보다 구현이 우선시된 흐름
- 문제는 생각보다 빠르게 필수 기능이 완성되고, 도전 기능에 착수하면서 시작됐다.
- 각자 맡은 파트를 구현한 뒤 도전 기능을 추가하려는 시점에서, 기존 구조가 확장성을 고려하지 않아, 새 기능을 넣기 위해서는 기본 구조부터 수정해야 하는 상황이 생겼다.
- 게다가 추가 구현에 따른 설계 논의 없이, “이 기능은 네가 맡고, 저 기능은 내가 맡자” 식의 기능 분담만 이루어졌다.
📉 그 결과, 발생한 문제들
- 결과적으로는 각자의 기능 구현을 위해 서로의 구조를 수정해야 하는 상황이 발생했고, 나 역시 추가 구현을 진행하면서 상대방이 설계한 부분을 직접 수정하는 상황에 직면했다.
- 특히나 상대방이 열심히 구현한 코드를 내가 수정해야 할 때, "내가 이걸 망가뜨리면 어떡하지?" 하는 심리적 압박이 꽤 컸다. 기술적으로 가능한 일이더라도, 마음이 편하진 않았다.
📌 되짚어보는 설계의 필요성
- 첫 팀 프로젝트 때는 아예 설계도 없이 작업해서 코드가 뒤엉켰었다.
- 그래서 이번엔 최소한의 구조라도 만들고, SOLID 원칙을 참고해가며 시작한 덕분에 어느 정도 안정감은 있었지만, 초반 설계 범위를 벗어난 순간부터 문제는 반복되기 시작했다.
- 이제 캠프도 어느덧 3주 차. 팀원 모두가 한 번쯤은 팀 프로젝트를 겪었고, 다들 이번 일을 통해 설계의 필요성과 확장 구조에 대한 고민이 반드시 선행돼야 한다는 사실을 몸소 체감했을 것이다.
🔄 다음 프로젝트를 위한 다짐
- 다음 프로젝트에서는 처음부터 최대한으로 설계하고, 필요한 경우 마감 일정에 맞춰 구현을 줄이는 방식으로 진행할 예정이다.
- 초반 설계만으로는 부족할 수 있으니, 기능이 추가될 때마다, 혹은 구조를 바꿔야 할 가능성이 생길 때마다 작은 단위로라도 회의하고 조정하는 시간을 가질 것이다.
✅ 정리하며
- 설계 없이 구현하면 빠를 수 있다. 하지만 유지보수와 협업, 기능 확장에 있어 장기적으로 더 많은 시간과 노력을 소모하게 된다.
- 이번 경험은 "그걸 알면서도 왜 설계를 미뤘을까"에 대한 나름의 반성과, "다음엔 더 나은 팀워크를 위한 구조를 먼저 짜자"는 다짐으로 마무리하고 싶다.
'Programming > Today I Learned' 카테고리의 다른 글
| 250630_TIL_GitHub와 팀 프로젝트 #1 (1) | 2025.06.30 |
|---|---|
| 250625_TIL_오목 게임 기획하기 (1) | 2025.06.26 |
| 250619_TIL_#2_게임 역기획하기 - Overcooked! (1) | 2025.06.19 |
| 250619_TIL_#1_게임의 특정 상호작용 분석: 리그 오브 레전드 - 비에고 패시브 (3) | 2025.06.19 |
| 250611_C# 기초 학습 #2 (4) | 2025.06.11 |
