업데이트:

프로젝트 소개

이해를 위한 어바웃 송담 계보 정리

 글에 들어가기에 앞서 이해를 돕고자 용어 정리를 해야 할 필요성을 느껴 프로젝트 이름 등을 정리하겠다.

 먼저 캡스톤 디자인 및 회고록 전체에서 말하는 ‘어바웃 송담’은 야수의 심장 팀이 제작한 최상위 프로젝트의 이름이면서 하위 프로젝트인 ‘어바웃 송담 커뮤니티 프로젝트’를 말하기도 한다.

 세 프로젝트의 이름이 겹치기 때문에 해석이 맥락에 의존하는 경향이 있으나 대부분 ‘어바웃 송담 커뮤니티 프로젝트’를 말한다.

 어바웃 송담 커뮤니티 프로젝트의 원형이 되는 프로젝트 이름 역시 어바웃 송담으로, 2021년 여름 종강시즌에 3인이 서버 구축을 연습해본 미완성 프로젝트였다.

 이에 원형이 되는 2021년 어바웃송담 프로젝트는 ‘2021 어바웃 송담’으로 칭한다.

프로젝트의 원형 : 2021 어바웃 송담 방학 프로젝트

2021 어바웃 송담 계획 1 2021 어바웃 송담 계획 2

 2021 어바웃 송담은 ‘대학 커뮤니티’ 에브리타임을 목표로 한 카피 프로젝트였다. 그러나 프로젝트를 진행하며 방향을 틀어 완벽히 똑같이 만들기보다 ‘우리 대학’ 커뮤니티를 만들고자 하여 이름과 브랜드 컬러를 변경하여 개발하던 중 미완으로 마무리 되었었다.

 클라이언트 사이드, 서버 사이드, 그리고 DB 개발을 각각 한명이 담당하여 개발하였었다. 당시 2021년의 우리는 대학 1학년 1학기를 마친 수준이었기에 기술스택이라고 부를 만한 것도 없었다.

 클라이언트는 HTML/CSS, JavaScript, JQuery와 부트스트랩이 혼재했고 DB는 mySQL을 구글에서 찾은 파편화된 정보들로 맨땅에 헤딩을 통해 구축했다.

 서버가 가장 처참했다. 사실 서버라고 하기에는 localhost에 정적 라우팅만 처리하는 프로그램으로 배포도 하지 않은 단순한 로컬 서버 코드였다. 처음에는 JAVA 기반 Spring과 SpringBoot에서 갈팡질팡 하다 결국에는 Express.js로 코드를 작성하게 되었다.

 데이터베이스는 테이블 구조까지 모두 구축해 클라이언트와 함께 상호작용할 준비가 되어있는 상태로 마무리 되었다.

 종강시즌이 끝남에 따라 자연스레 프로젝트에서 손을 놓고 미완성으로 남은 시점에 클라이언트는 완성도가 비교적 매우 높았으나 DB와는 연결이 되지 않았고, 서버는 단순 라우팅으로 페이지를 띄우는 것에 그쳤다.

 이렇게 된 것은 절대적으로 지식과 역량의 부족함이 주요했다. 클라이언트, 서버, 데이터베이스의 개념은 알았으나 이를 어떻게 만들고, 어떻게 연결하여 유기적으로 동작하게 하는지는 아무도 몰랐고 이해하지 못했다.

 1학년 1학기 시점의 강의는 컴퓨터 개론과 C언어 기초 등 오늘날의 서비스 개발에는 필수적이지 않은 내용을 배운 시점에서 JAVA나 HTML/CSS, JS를 다룰 수 있다는 점에서 우리는 앞서있었지만, 무언가를 성공적으로 개발 할 만큼의 지식은 갖추지 못 했던 것이다.

 2학기에 들어서야 비로소 강의에서 DB나 객체지향 개념을 다루었으니 개발의 기초를 배우고 나서인 2학년 과정 중에 이를 시도해봤다면 어땠을까 하는 아쉬움이 남은 프로젝트였다.

잊혀진 프로젝트를 되살려라

 다시 2023년으로 돌아와 우리는 이미 만들어진 미완성 프로젝트를 완성하여 제출하는것으로 졸업과제를 ‘날먹’하려 했다. 그것이 우리의 당초 계획이었다.

 그러나 우리는 2021년부터 졸업까지 교수님의 눈에 든 상황이었고 이것을 가만히 두고보지 않았다. 더 큰 것을 만들기 원하셨고 그렇게 어바웃 송담은 단순 커뮤니티 프로젝트에서 학과 전체 졸업과제 총괄 배포서버 프로젝트가 된 것이다.

 하지만 우리 프로젝트는 캡스톤 디자인 경진대회에 출품을 해야했고 ‘눈에 보여줄 것’이 필요했기 때문에 일반인의 눈에 보이지 않고 이해할 수 없는 ‘서버’는 ‘보여줄 것’에 해당하지 않았다.

 서버가 작동하고 있는 터미널을 전시한다고 해도 일반인 눈에는 영어가 나열된 검고 흰 화면은 대단해 보이지 않는다. 그래서 우리는 여전히 2021 어바웃 송담 프로젝트를 되살려 커뮤니티 서비스를 만들어야 했다.

 다른 팀은 하나의 간단한 게임이나 서비스 프로젝트를 한학기 동안, 또는 시험기간을 빼고 약 2~3개월 동안 만들고 일주일에 한 번씩 발표자료를 만들어 중간보고 겸 발표면 충분했다.

 그러나 우리 팀은 총괄 서버 개발, 커뮤니티 서비스 개발, API 서비스 개발로 최소 세개의 프로젝트를 진행해야 했고 다른팀이 서버가 필요하다면 이를 총괄 서버로 연결하거나 API 서버 등을 직접 개발하여 연동해주어야 하기도 하는 규모였다. 다행히도 우리는 3학년 1학기부터 계획을 짤 수 있었다. 다른 팀에 비해 약 2배의 시간이 주어진 것이다.

 다만 서버 비용은 학교 예산으로 처리하여 승인을 받아야 했기에 서버는 5월에서야 받아볼 수 있었다. 교내 실물 서버가 아닌 cafe24의 가상 서버 호스팅이었다.

 서버를 금방 받아 볼 수 있을것이라는 교수님의 말씀에 약 3개월간을 안일하고 느긋하게 큰 틀만 짜며 보내다 서버가 늦어지자 우리는 옛 프로젝트를 먼저 되살리고자 하였다.

 처음에는 단순히 미완성인 프로젝트를 완성하고 이를 이번 프로젝트에 맞게 수정하면 되겠다고 생각했다. 그러나 남아있는 프로젝트 파일들과 코드를 뒤적이다보니 전혀 그렇지 않았다.

 기존 프로젝트는 대학 재학생을 대상으로 한 커뮤니티의 성격을 띄면 되었으나, 이제는 학과 내 프로젝트 개발자를 대상으로 한 커뮤니티의 성격을 띄어야 했기 때문에 기존의 유저 정보 등은 적합하지 않았다.

 따라서 지금 다시 생각해본다면 기존 프로젝트를 되살려 완성하는 일종의 ‘리마스터’가 아니라 처음부터 HTML/CSS와 부트스트랩 등 UI의 뼈대만 가져오고 나머지는 새로 만드는 ‘리메이크’로 방향을 잡는것이 개발 난이도와 시간 면에서 매우 합리적이었을것이다.

 프로젝트 파일의 보존 상태도 좋지 않았다. 여기저기 남겨져있던 프로젝트 파일을 한데 모아 확인해보니 프론트엔드는 비교적 멀쩡했으나 나머지는 모두 엉망이었다. 2021년 이후 2년간의 강의들과 팀프로젝트는 우리의 안목과 역량을 보이지 않게 성장시킨 것이다.

데이터베이스 스크릿샷 중 일부

 서버는 원시코드에 더 가까웠으니 차라리 처음부터 만드는것이 빠르겠다는 판단이 들었다. 문제는 데이터베이스 스키마가 로스트 미디어 처럼 되어 파일은 없고 일부 스크린샷 등의 간접적인 부스러기만 남은 것이었다. DB를 만든 팀원도 군생활중이었다.

 데이터베이스를 되살리지 못한다면 이를 기반으로 한 클라이언트 구조도 모두 바뀌어야 했기 때문에 손이 너무 많이 간다는 생각이 들었다. 여기까지가 한달이 걸렸다. 우리는 아직 정말 느긋했다.

 지금에서야 드는 생각이지만 이때 생각은 제대로 된 개발을 한 번도 해보지 않은 사람이기 때문에 할 수 있었지 않았는가 싶다. 개발 성격이 바뀌어 결국 구조도 바뀔것인데 기존 프로젝트 구조를 최대한 유지하려고 하는건 비효율적이다. 그런 결론을 내리고 보니 이미 한학기가 지나있었다.

2021 어바웃 송담의 환골탈태

 2023년 종강시즌이 되며 프로젝트의 방향성에 대한 고민을 제대로 생각하고, 서버 예산을 승인받아 서버 기초 인프라를 구축하고 난 후, 이제 해야할 것은 커뮤니티 서비스를 개발해나가는 것이 되었다.

 커뮤니티 서비스를 통해 학과 내 졸업과제 팀원들의 서버 제공 및 유지관리보수, 요청사항이나 불편사항, 개발관련 정보공유 등 관리 체계를 구축 하고자 했으며 이것들이 미완성이더라도 최소한의 회원 관리 시스템은 만들어져 있어야 하기 때문이었다.

 이에 본격적으로 2021 어바웃 송담을 기반으로 한 새로운 커뮤니티 프로젝트를 진행하기로 정했고 이미 한차례 결론을 지은 것과 같이 수정이 비교적 간단한 UI, 클라이언트만 최대한 살리고 나머지는 새로 구축하는것으로 방향을 잡게되었다.

 새롭게 만들어질 어바웃 송담 커뮤니티 서비스는 다음편에서 다루도록 하겠다.