The Stellar Project

4 분 소요

The Stellar Project

1월 25일 날 The Stellar Project Beta v1.0이 출시되었다. (The Stellar Project는 Open Source Project이다. 이에 관심이 있다면 아래 링크에 접속해보자.)

Link: Stellar

이름을 Stellar로 지은 이유는 우주의 미지성이라는 속성을 이 프로젝트에 녹여내고 싶었으며, 본 단어가 그러한 우주를 연상케 하기 때문이었다.

우리가 지금 진행하고 있는 프로젝트들은 1일 1커밋이라는 패러다임에서 도출된 아이디어들을 기반으로 하고 있는데, 사실 이 기반 위에서 어떤 아이디어가 더 튀어나올지 알 수 없어서이기도 하다.

그만큼 나올 수 있는 아이디어의 가짓수가 셀 수 없이 많으며, 그 나온 아이디어들이 또 새로운 기반을 다질 수도 있기 때문이다.

이는 마치 작은 우주인듯 하다.

암튼 첫 시작이 되게 좋았던, 그래서 뜻이 맞는 사람들과 오래토록 함께 할 수 있었던 그런 프로젝트였다.

베타버전 출시 날, 나는 Github에서 Beta 버전을 마무리하고, War 파일까지 만들어놓은 상태에서 서버 구축을 진행하던 중 그만 문제가 발생하고야 말았다.

Apache 서버와 Tomcat 사이에 다리를 놓아주는 mod_jk가 말을 듣지 않아 한참을 고생한 것이다.

이 상황을 받아들이고 앞으로 나아가고자 하였으나, War 파일을 올리고 나서도 주소 끝에 :8080 즉, 포트 번호가 붙을 것을 생각하니 자꾸만 마음에 걸렸다.

예전에도 이와 관련된 경험이 있었기에 짧은 시간 안에 해결할 수 있겠다 싶어, 이를 해결하고자 마음 먹었다.

그런데 그만 상황이 더욱 더 악화되고야 말았다.

단순히 mod_jk의 문제가 아닌 Apache 서버의 문제라 생각하여 이를 재설치하는 과정에서 그만 패키지와 관련된 파일까지 전부 삭제하고 만 것이다.

나는 이것을 다음 명령어들을 입력하고나서야 깨달을 수 있었다.

sudo apt-get update
sudo apt-get install apache2

그래… 너무도 뒤늦게 알아차린 탓에 결국 내가 할 수 있는 일은 그리 많지 않았다.

그 중간 과정이라도 조금이나마 기억해낼 수 있었다면, 역 발상을 통해서라도 뭐라도 했을텐데 말이다…

그렇지만 어쩌겠는가 다 까먹은것을…

나는 결국 Ubuntu Server를 재설치하기 위해 사무실로 멀고도 먼 여정을 떠나게 되었다.

막상 도착하고나서도 서버 내 파일들과 기존 Mysql 데이터, 그리고 설정들을 백업해야 했기 때문에 상당히 오랜 시간이 걸렸다.

그렇게 모든 설정을 마치고 집에 돌아와 mod_jk를 다시 시도해보았지만 똑같은 증상이 반복되었고, 나는 결국 Tomcat만 설정해둔 상태에서 War 파일을 올리게 되었다.

(아무래도 여러 날 동안 팀원분들과 고생했던 프로젝트다보니 최대한 빠르게 베타 버전을 올리고 싶었나보다…)

마음이 급하였는지 파일명을 ROOT.war로 설정하지도 않고 이클립스에서 갓 뽑아낸 이름 그대로 Stellar.war 파일을 올리게 되었다.

더군다나 ROOT.war로 바꾸고 나서도 기존 ROOT 디렉토리 내에 넣어버리고 말았다… (이런…)

마침내 모든 것을 정상적으로 설정하고 나서야 드디어.. 처음으로 The Stellar Project의 Beta 버전을 확인할 수 있었다..

그렇게 PSG 단톡방에 해당 프로젝트의 출시 소식을 알리게 되었고, 앞으로의 더 나은 Stellar를 위해, 또 오류 검출을 위해 팀원분들께 회원가입을 당부드렸다.

맨 처음 회원가입을 해주신 분은 정등x님이었다.

이렇게 힘들게 개발을 진행해서 그런지 맨 처음 회원가입해주신 그 분께 감사한 마음이 들었다.

더군다나 먼저 사용해보시면서 오류를 가장 먼저 보고해주신 덕분에 이후 다른 분들께서도 원활히 해당 기능을 사용하실 수 있게 되었다.

보고된 오류에 대해서 나는 곧바로 어느 부분에서 에러가 발생하는지를 확인할 수 있었고, script 태그 내의 오타로 인하여 발생한 문제임을 알 수 있었다.

원본 코드는 다음의 주소에서 확인할 수 있다.

Code

len_Chk라는 이름으로 함수를 작성해놓고선 그만 lenChk로 해당 함수를 호출하려 하였다.

사실 해당 오류를 접하고서 당황스럽기 그지 없었다.

오류가 발생할까봐 베타 출시전부터 꾸준히 오류 사항들을 점검하였는데, 이렇게 단순한 오타가 오류 사항이 되다니…

해당 오류를 해결하기 위해 나는 Hotfix 브런치를 생성하여 해당 오류를 해결할 수 있었으며, 해결한 코드에 대해 War 파일을 재생성하여 서버에 업로드하였다.

사이트의 기능이 정상작동하는 것을 보고선 그대로 잠에 들었다.

또 하루가 지나서야 나는 Admin Rest 설정에도 문제가 있음을 발견할 수 있었다.

아직 커밋 검사 기능이 개발되지 않아 Rest 설정은 무의미하지만, 그래도 곧 출시될 예정이기 때문에 이에 대해 오류 원인을 찾기 시작하였다.

그런데 참 아이러니하게도 코드 상에서의 오류는 전혀 발견되지 않았고, 심지어는 전자정부 내의 톰캣에서는 본 사이트가 정상 작동하는 것이었다.

그런데 한 가지 그전부터 짚이는 부분이 있었는데, 바로 DB 시간이었다.

언제부턴가 사이트의 등록 시간과 DB에 기록되는 시간이 달라졌던 것이었다.

그리고 또 내가 해당 데이터를 삭제하는 기준으로서 작성해두었던 디비 시간과 사이트에 노출된 시간을 비교하는 로직이 떠올랐다.

사실 이것이 문제였다.

사이트에 노출된 시간과 디비에 저장된 시간의 불일치로 인하여 해당 로직이 작동하지 않았기 때문이었다.

이 문제를 해결하고자 오랜 시간 고심하였고, 디비 시간대 설정부터 시작하여 톰캣 시간대 설정까지 참 힘들고 긴 시간을 인내한 후에야 본 문제를 해결할 수 있었다.

이렇듯 프로젝트 하나로도 정말 배울 점이 많은 것 같다.

협업부터 시작하여 개발 그리고 오류 개선까지…

협업이라는 것도 사실 그리 쉬운 일은 아닌 것 같다.

나와 의견이 다른 사람이 한 사람이라도 있다면, 그의 생각과 나의 생각 사이의 Gap 차이를 줄이기 위해서 프로젝트 외에도 별도의 노력을 쏟아부어야 한다.

그렇지만 이러한 과정에서도 분명 배울 점은 있다.

생각해보자.

사실 우리 주변에서 흔히 볼 수 있는 물건들은 요즘와서야 기계가 개발한다지만, 불과 그리 오래되지 않은 시점에는 사람들이 하나 둘 모여 하나의 물건에 대해 여러 부분을 맡아 그것을 완성하곤 하였다.

그렇다.

사실 아직도 대개의 Task들은 한 명의 사람이 아닌 여러 사람이 함께 모여 진행한다.

그만큼 인적자원이란 중요한 것이며, 사회성을 기르는 것도 개인이 커다란 발전을 추구할 수 있는 가능성을 마련해준다고 생각한다.

나 혼자 잘나서 하는 Task는 그 자체로 분명 어느 한계선이 존재할 수밖에 없다는 것이다.

그렇기에 이러한 협업 능력의 배양도 한 편으로는 되게 중요한 경험임에 틀림없다.

더군다나 사회를 살아가는 한 인간으로서도…

암튼 프로젝트를 진행하면서 배울 점은 정말 많다.

그리고 이에 대해서 한 가지 고백할 것이 있다.

나는 어떠한 강의도, 어떠한 설명도 없이 혼자서, 때로는 고심하며, 인내하며 필요에 따라 원서를 발굴하여 이를 읽었을 때도 있었으며, 하나의 Fact, 하나의 Mechanism을 찾아내기 위해 눈에 불을 켜고 밤을 샐 때도 많았다.

그렇게 얻은 하나의 Fact, Mechanism들이 모여서 하나의 작품을 완성시킬 수 있었는데, 그것이 바로 이번에 출시한 The Stellar Project였다.

그러한 과정은 마치 하나의 거대한 산을 오르는 것과 같은 기분을 들게 해주며, 그에 따르는 성취는 마치 그 산의 정상에 오른 것과 같은 기분이 들게 해준다.

내가 뭐라도 되는 것 마냥 지금껏 글을 작성하였지만, 단순히 나의 생각을 서술한 것이므로 불편하신 분들은 그냥 넘기시면 되겠다.

사실 비전공자가 아님에도 이렇게 뭔가를 해낼 수 있었다는 것은 전공자면 누구나 할 수 있다는 사실이다.

나는 취미생활 그 이상도 그 이하도 아닌 지금 그 마음가짐 그대로 열심히 이를 즐기고자 한다.

그것이 내가 앞으로 살아가는 하나의 방향이라 생각한다.

긴 글 읽어주셔서 감사드립니다.

댓글남기기