Elice AI Spark Camp는 나에게 도전과도 같았다. 방학을 맞아 의미 있는 활동을 찾아보던 중 이 캠프의 공고를 보게 되었고, 포트폴리오를 제출한 끝에 합격할 수 있었다. 처음에는 무조건 참석해야 했기 때문에, 혼자 서울로 올라가 성수낙낙에서 진행된 팀 빌딩 행사에 참여했다.
이 과정에서 "For,Rest"라는 아이디어를 제안했고, 이를 기반으로 팀을 꾸려 3주 동안 프로젝트를 진행하게 되었다. 목표는 마지막 데모데이까지 완성된 형태의 서비스를 만들어내는 것이었다. 처음에는 다소 긴장도 되었지만, 새로운 사람들과 함께 목표를 향해 나아가는 과정이 기대되었다. 캠프에 참가한 다른 팀들도 각자 흥미로운 아이디어를 내놓았고, 그들과 교류하면서 다양한 관점을 배울 수 있었다.
처음 프로젝트를 기획하는 과정에서, 우리는 "For,Rest"의 핵심 기능을 정의하고 사용자 경험을 최적화하는 데 집중했다. 기획 단계에서는 서비스의 방향성을 설정하고, 디자인 시안을 제작하며, 기술 스택을 결정했다. 우리는 프론트엔드는 React, 백엔드는 Spring Boot를 사용하기로 결정했고, 데이터베이스로는 MySQL을 활용하기로 했다. 프로젝트를 진행하는 동안 팀원들과의 협업 방식도 정리하며, 효과적으로 업무를 분배하고 일정 관리를 하는 방법을 익혀 나갔다.
프로젝트는 처음에는 순조롭게 진행되는 듯했다. 그러나 예기치 않은 문제가 발생했다. 팀의 PM이 중간에 갑작스럽게 탈주하면서 프로젝트의 방향이 흔들리기 시작했다. 계획했던 일정이 어그러지고, 팀원들 간의 혼란도 커졌다. 우리가 처음 정했던 로드맵은 무너졌고, 새로운 리더십이 필요해졌다. 결국 나는 백엔드뿐만 아니라 전체적인 프로젝트 진행 상황을 조율해야 하는 역할까지 맡게 되었다.
그 와중에 OAuth2.0을 구현하는 과정에서 예상치 못한 난관에 부딪혔다. OAuth2.0을 통해 사용자 인증을 구현했지만, SameSite 설정 문제로 인해 배포 환경에서 쿠키가 저장되지 않는 문제가 발생했다. 로컬 환경에서는 정상적으로 작동했기 때문에 배포 후 발생한 문제를 파악하는 데 시간이 걸렸다. 로그를 확인하고 다양한 설정을 변경해보며 해결책을 찾아야 했고, 결국 CORS와 SameSite 설정을 조정하는 방식으로 문제를 해결할 수 있었다. 하지만 이 과정에서 엄청난 스트레스를 받았고, 배포 환경에서의 테스트의 중요성을 절실히 깨닫게 되었다.
이 외에도 여러 가지 기술적 도전 과제가 있었다. API 요청 최적화, 데이터베이스 쿼리 성능 개선, 프론트엔드와의 원활한 통신을 위한 API 설계 등 다양한 부분에서 고민해야 했다. 팀원들과 지속적으로 의견을 조율하며 프로젝트를 발전시켜 나갔고, 문제를 해결해 나가는 과정에서 실력도 성장하는 것을 느낄 수 있었다.
프로젝트를 완성하기 위해 최선을 다했지만, 마지막 데모데이를 앞두고 나는 몸 상태가 심하게 나빠졌다. 밤을 새워가며 개발을 진행했던 것이 건강에 무리를 준 것 같았다. 결국 데모데이에는 참석하지 못했고, 프로젝트의 마지막 순간을 함께하지 못한 것이 많이 아쉬웠다. 팀원들이 대신 프로젝트를 발표했고, 우리는 최선을 다한 결과를 보여줄 수 있었다.
캠프를 마무리하며 돌아보니, 이 과정에서 많은 것을 배울 수 있었다. 단순히 개발 기술뿐만 아니라, 협업의 중요성과 위기 상황에서의 대처 방법, 그리고 실전 프로젝트에서 발생할 수 있는 다양한 문제들에 대한 해결 능력을 키울 수 있었다. 또한, 한정된 시간 내에 완성도를 높이기 위해 어떻게 일정을 관리해야 하는지도 배울 수 있었다.
이번 경험을 통해, 예상치 못한 상황이 닥쳤을 때 어떻게 대처해야 하는지, 그리고 협업에서 발생할 수 있는 변수들에 대해 몸소 배울 수 있었다. 특히 기술적인 부분뿐만 아니라, 팀워크와 위기 대응 능력의 중요성을 절실히 느낀 시간이었다. 비록 아쉬운 마무리가 되었지만, 앞으로 더 나은 개발자로 성장할 수 있는 기반을 다질 수 있었던 의미 있는 도전이었다. 또한, 이 경험을 바탕으로 향후 더 큰 프로젝트에 도전할 자신감도 얻을 수 있었다. 앞으로도 이러한 경험을 계속 쌓아가며 성장해 나가고 싶다.