순간순간 떠오르는 '이런 거 한 번 만들어 보고 싶은데?'와 같은 생각들이나, 그렇게 만들기 시작했다가 지식 부족 등의 이유로 막혔던 프로젝트들을 모아서 기록해 둔다면 나중에 조금씩이라도 만들어 볼 수 있지 않을까 하는 생각으로 간단하게나마 글로 정리해 두려고 한다!
사실 거의 나만 보는 블로그라서 보는 분이 있을지는 모르겠지만... 혹시나 누군가 여기 있는 글을 보고 같이 구현해 보고 싶다는 생각이 들거나, 관련된 좋은 생각이 있거나, 도움을 주실 수 있는 분이 계신다면 댓글이나 이메일 같은 여러 가지 방법으로 연락을 주신다면 정말 감사할 것 같아요!
별자리를 알고 싶지만 외우거나 찾기 어려웠던 사람들에게 자연스럽게 밤하늘의 여러 천체에 대해 알아보고 밤하늘에서 직접 찾아볼 기회를 만들어 보자!
밤하늘의 별을 보다 보면 북두칠성, 카시오페이아, 오리온자리 같은 별자리들이 보이는데, 사실 그게 내가 아는 별자리의 거의 전부이다. 하늘에 있는 별자리들을 좀 더 알면 밤하늘을 보는 게 좀 더 재미있어질 것 같다는 생각을 하지만 이상하게 별자리를 찾아보더라도 별자리가 잘 외워지지도 않고 하늘에서 찾는 것도 어려웠다.
그러다가 발견한 앱이 증강 현실로 별자리를 찾는 앱인 'Star Walk'인데, 이 앱을 켜고 밤하늘에 휴대폰을 가져다 대면 기기가 바라보는 방향의 별자리를 보여 주기 때문에, 별자리에 대한 지식이 없더라도 누구나 쉽게 별자리를 찾을 수 있게 해 준다. 그렇지만 삶의 여유가 없었던 탓인지, 별자리에 대한 관심이 열정이 아니라 단지 호기심이었던 탓인지 이 앱을 실행해서 밤하늘을 지그시 바라보는 일이 줄어들었던 것 같다.
그럼에도 별자리를 알고 싶다는 생각은 마음속 어딘가에 남아 있어서, 자연스럽게 별자리에 대해 알아가는 기회가 있다면 좋지 않을까 하는 생각을 했는데 그러다가 생각난 것이 바로 별자리와 글쓰기를 접목시키는 SNS 앱을 만드는 것이었다.
farStar는 지평선 위의 별에 글을 쓸 수 있는 SNS 앱이며, 천체의 운동을 반영하고 있다. 특히, 이용자의 현재 위치에서 별이 지평선 아래에 있을 때 해당 별에 작성한 게시물의 조회 및 수정이 불가능하다는 것이다.
farStar가 다른 SNS와 가장 다른 점은 farStar는 실제 천체의 겉보기 운동을 반영하고 있어 기존 SNS 앱과는 다르게 ‘쉼’이 존재한다는 것이다. 이러한 제약으로부터 이용자들은 SNS 이용 시간과 그 외의 시간을 구분하여 각각의 시간을 의미 있게 보낼 수 있고, 작성한 글 역시 아무 때나 꺼내 볼 수 없는 소중한 추억으로 남을 수 있도록 할 수 있다. 또한, 자신이 글을 쓴 별을 실제로 하늘에서 찾을 수 있도록 돕는 기능을 제공함으로써 이용자들은 자연스럽게 천체의 운동에 대해 익힐 수 있으며, 실제 밤하늘에서 천체를 관측하는 등 새로운 여가 활동의 기회를 제공하기도 한다.
또한 farStar 이용자에게 기본 별자리가 주어지고 업적 달성을 통해 글을 쓸 수 있는 새로운 별자리를 얻을 수 있도록 하는 방식을 도입할 수도 있다.
farStar에서는 처음부터 이용자에게 모든 별자리를 제공하지 않고, 글을 작성하고 다른 사람들의 공감을 얻거나, 지인을 초대하는 등의 방식으로 새로운 별자리를 잠금 해제할 수 있다. 글을 쓸수록 실력이 늘고 어휘가 풍부해지듯 farStar 이용자는 글쓰기에 관련된 업적 달성을 통해 확장된 밤하늘 세계에서 더 다양한 글을 쓰고 공유할 수 있게 된다. 이는 새로운 별자리에 글을 쓸 기회를 제공하여 SNS 내 개인 공간 확장의 기회를 줌으로써 이용자들의 자발적인 참여를 유도하는 효과가 있다.
이외에 farStar를 사람들의 휴식 및 여가 활동의 장으로 만들기 위한 부가적인 기능들로 천체 관측 명소 정보 제공, 천체 촬영에 특화된 인스턴트 카메라, 천문 행사(유성우, 혜성, 일식, 월식 등)와 연계한 각종 이벤트를 생각해 볼 수 있을 것이다.
farStar의 목적은 SNS와 별자리 관측을 연계하여 사람들이 별자리에 흥미를 가지는 것뿐만 아니라, 이를 계기로 실제로 사람들이 건전한 여가 활동의 일환으로 실제로 천체 관측을 즐기고 좋은 추억을 만들 수 있도록 하는 것이므로 사람들이 천체를 관측하기 좋은 근처의 명소들과 이를 추억으로 남길 수 있는 최적화된 카메라 설정 값을 제공해 준다면 사람들의 활동을 촉진할 수 있을 것이다. 또한, 수 년에 한 번씩 돌아오는 혜성이 지구에 근접할 때 n년 뒤의 나에게 보내는 편지와 같은 이벤트를 제공하는 것도 이용자들에게 색다른 재미를 제공할 수 있을 것 같다!
일단 기본적인 SNS 서비스를 만드는 방법과 Star Walk와 같은 앱을 만드는 방법을 알면 될 것 같다!
SNS 서비스를 만드는 방법에 대한 강의 영상이 유튜브에 있는 것 같은데, 우선은 별자리 관련 알고리즘이나 소스 코드를 먼저 찾아보았다.
sky-map-team/stardroid : Google에서 만든 프로젝트인데, Star Walk처럼 기기가 바라보는 방향의 별자리를 나타내는 앱을 구현한 것인데, Java로 쓰여 있고 OpenGL ES의 Skybox라는 것을 사용하는 것 같다. 하지만 별들에 대한 터치 이벤트가 적용되어 있지 않다.
Adaendra/sky-map-algorithm : 시간과 별을 입력하면 그 별의 지평 좌표를 반환하는 Javascript와 Typescript로 작성된 코드인데, 코드뿐만 아니라 별자리 데이터도 JSON으로 잘 정리되어 있어 사용하면 좋을 것 같다.