개발은 꽤 했는데, 바빠서 일지를 제대로 못썼다. 앞으로는 커밋을 한번이라도 한 주 일요일에 일지를 올리는 것을 기준으로 하면 좋을듯.

4에서 5 사이에 한 일은 버그 고치는 것과 투표 기능을 만드는 것, readme를 만든 것, 그리고 갤럭시에서 호스팅한 것이다. 이쯤되면 커밋 로그도 올리기 귀찮은데… 일단 이것이 현재의 상태이다.


버그 픽스

4에서 얘기했던 버그는 그냥 단순하게 ‘클라이언트에서 DB를 직접 연결할 수 없음’이었다. 생각해보면 withTracker를 쓰는 것이 이것 때문이었는데, 제대로 이해를 하지 못하고 사용하니까 데인 것 같다.

/imports/ui/Stream/StreamRoot.jsx 에서 볼 수 있는데, 그냥 단순하게 withTracker를 덧붙인 것이다.

그러니까, 클라에서 DB에 접근하려면 withTracker를 사용해야 한다. 중요한 점이다.

이후에 db와 연동할 때 Meteor Methods도 사용할 것인데, 이건 보안을 관리하기 위한 것이라고 한다. 계정을 제대로 만든 후에 쓰면 될듯.


readme 작성

readme파일을 만들었다. 대충 들어 있는 것은 설치법, 실행법, 그리고 스타일 가이드이다.

리눅스용 설치법은 효용이 없는거같아서 일단 미루고, 윈도우용 설치방법만 올렸다. 코드 편집 방법 (VS Code 디버깅 세팅, git 사용법, 연동법 등) 은 안 넣었다. 이런건 일반적인 것이니 나중에 블로그에 적고 나서 링크를 걸지 않을까 싶다.

기본적으로 코딩 스타일은 airbnb것을 따르기로 했는데, 파일 구조에 대한 것은 따로 명시를 해야 할 것 같아서 적었다. 사실은 짜다 보니까 최대한 안 난잡하게 이름을 붙이려고 할 때 내가 대충 지키는 룰인데, 합당한지는 모르겠다. 이상하면 나중에 바꾸고 리팩터링하면 돼겠지?

선배들 이름은 조약돌 데모가 끝나고 실 버전이 생기면 그때 넣는 걸로 하련다. 일단은 혼자 짠 코드이니, 적기도 귀찮고 아직은 필요없을듯 하다.


호스팅

원래는 heroku에서 호스팅하고 있었고, 이 데모도 그럴 생각이었다. 그런데 메테오를 히로쿠에서 호스팅하려면 세팅할 것이 많고 귀찮다고 해서 좀 망설이고 있었는데, 메테오에서 호스팅을 지원한다길래 찾아봤다.

Meteor에서 지원하는 호스팅 서비스 이름이 Galaxy이다. 네이밍이 재밌는듯. 갤럭시 홍보글은 여기에 있다. 내가 갤럭시를 고른 이유는 1) 관리가 쉽고 페이지가 직관적이다 2) deploy가 쉽다 3) 비싸지만 내돈 아니니까 상관없다 4) Meteor에서 직접 지원하니 연동도 잘된다 이다. 비싸지만 쉽고 후배들이 신경쓸 것이 많이 없다는 점이 상당이 컸다. meteor deploy 만 하면 바로 deploy되니, 이것보다 간단하기는 쉽지 않은 것 같다.

월당 $30정도 하는데, 히로쿠에서는 $7정도 썼던 것, 그리고 AWS에서는 $5면 된다는 사람들 의견을 보아하니, 역시 비싼 것 같기는 하다. Meteor쓰다보니 이사람들 약간 웹개발계에서 애플 철학과 가격을 고수하는 사람들이 아닌가 싶지만… 뭐 개발자 입장에선 나쁘지 않다고 생각한다.

그래서 도메인은 .ga도메인을 썼고, 실제 도메인은 www.pebble.ga 이다. 원래는 www없이 pebble.ga만 해도 접속되도록 하려고 했는데, 그러려면 DNS세팅이 복잡해지는 것 같아서 일단 미루고 www를 쳐야만 되는 것으로 했다.

프로젝트 디렉토리에서 meteor deploy www.pebble.ga하면 deploy 된다.

처음 만들 때는 deploy를 어디에 할 지, 프로젝트 세팅이 무엇인지를 알려주어야 해서,

DEPLOY_HOSTNAME=us-east-1.galaxy-deploy.meteor.com meteor deploy --settings settings.json www.pebble.ga

이런 식으로 해주어야 한다. settings.json에는 MongoDB 인스턴스의 주소와 계정 정보가 적혀 있다. 물론 보안 사항이므로, 커밋에는 올리지 않고 ignore해놓았다.

MongoDB 인스턴스는 mLab에서 돌리고 있다. 무료로 0.5G까지 가능하니까, 일단 텍스트만 들어가는 데모에서는 괜찮지 않을까 싶다.

근데 region을 세팅하고 나서 보니까 연결 상태가 유저 (한국) <-> 갤럭시 (US east) <-> mLab(US east) 식으로 되는데, 좀 짜증나지만 이것보다 나을수는 없었다. 갤럭시가 US east / Sydney / Europe 밖에 없어서 우리나라에서 가장 가까운 Sydney를 할까 했는데, mLab이 US east / Europe밖에 없어서, 둘다 US east로 하기로 했다. 참고(우리나라는 ap east. 유럽보다 us east가 더 빠르다!) 나중에 기회가 되면 aws로 가면 좋겠다..


일단 대충 정리가 되기는 했다. 아직은 조잡하지만, 투표 기능하고 글쓰기/읽기 기능을 조금만 더 다듬으면 로그인 기능에 연동해서 쓸만해질 것 같다. 그때쯤되면 페북을 대체할 수 있는 기능을 가지게 된 거고, 학생 목록 관리 기능을 넣고 이석을 조약돌에서 하면 바꿀만한 동기가 충분히 될거라고 본다. 느리고 귀찮고 distracting한 페북보다는 조약돌이 기능만 동일하다면 좋지 않을까?

그래서 다음은 학생 db를 어떻게 할지 고민해야겠다. 투표하고 글 쓰기 기능을 강화하기도 하고. 1후보 투표, quilll로 사진 / 파일 등 업로드 및 읽기 등이 있겠다.

원래 임기 내(1학기 안에) 어느 정도 완성하려고 했는데, IOI 교육때문에 대부분 2학기로 밀릴 듯 하다. 조금만 정리 해놓은 다음에 후배한테 전수하는 것에 몰두해야 할 것 같다. 아쉽지만 둘 다 못할 바에야 급한 일에 집중하는 게 나을 것 같아서 그러려고 한다. 3주 정도 남았으니, 빨리 정리하고 합숙기간에는 교육에 집중할 수 있었으면 좋겠다. IOI치고 2학기에는 입시가 있긴 하지만, 그래도 학교 수업이나 과제, 그리고 PS는 바쁘지 않으니 조약돌에 집중할 수 있을 거라 생각한다.