Titanium 플랫폼

산업기능요원 할 당시 선배가 나한테 알려줬던 녀석이다. 그때 처음 등장하여 여러모로 사람들이 써보고 했던 시기였고, 그 선배도 독학하고 있었던 걸로 기억한다.

그리고 이젠 내가 하나 둘 개발할 때 가끔 쓰게 되었다. 왜냐면 이거만큼 편한 크로스 플랫폼 개발환경이 별로 없는 거 같다. 솔직히 말해서 폰갭의 경우에는 모바일 한정으로 아예 굳어버린 느낌이고, 앱스프레소? 맞나? 처음 나올때는 여기저기서 많이 들어봤는데 제대로 쓰이는 걸 그렇게 많이 보질 못한 거 같다. 게다가 요즘은 개발 플랫폼을 자체적으로 내놓게 되면 개발에 필요한 리소스도 별도로 만들어서 거래할 수 있도록 하여 개발자들이 자꾸 끼어들 수 있어야 하는데 그런 환경 제공하는 것으로는 타이타늄이 상당히 많은 역할을 하고 있기도 하고…. (게임에서는 이걸로 한참 뜬게 유니티다. 유니티 에셋 만들어서 용돈 벌이처럼 은근 돈 좀 만지신 분들 있다. 2D를 공식으로 지원하기 이전에는 2D로 만들 수 있게 해주던 에셋 개발자는 돈 좀 많이 만진 거 같고…)

지금도 크로스 플랫폼을 쓰냐 마냐에 따라서 고민하는 사람들이 있냐고 물을 수 있기도 하겠지만… 아직은 있다. 워낙 네이티브에 적응된 사람들은 굳이 그런 생각 안하고 하기도 하는데… 크로스 플랫폼으로 개발하였을 때의 장점을 제대로 이용해 본 사람들은 자주 접해보고 하는 거 같으니…ㅇㅅㅇ;;

사실 플랫폼 상관없이 동일하게 적용할 수 있는 어플리케이션 개발에 많이 쓰이는 것이 있었냐고 한다면 딱 꼬집는 것이 바로 어도비 에어(Adobe Air)다. 지금 여러분의 컴퓨터에서도 간간히 동작하는 중입니다. ㅇㅅㅇ;;; 그렇다 보니 크로스 플랫폼화 하는 것에 대해서는 개발자들이 그냥 묵묵히 있는대로 따라가 보는 것이 아닐까란 생각도 해보는중…

그래서 몇년동안 계속 지켜봤지만…. 이걸로는 시뮬레이터 못만들어서 그냥 보고 던져놓기 바빴던 게 사실이고…./먼산

PROD_arch11

타이타늄 아키텍쳐의 구조다. 이런 걸 보면 그냥 기본 응용 프로그램은 이런 걸로 개발해도 별 상관없는 수준까지 올라간 것인가란 생각이 참 여러모로 들게 되어서….

알아둬서 나쁠 건 없는 플랫폼이긴 하다. ㅇㅅㅇ

상대 좌표계의 유용성

상대좌표계에 대해서는 일전에 잠깐 설명하였다. 절대 좌표계가 원점을 중심으로 한 좌표치라면 상대좌표는 특정 오브젝트와의 좌표 차이를 두고 계산하는 것이라고요. 그럼 이런 상대 좌표계가 대체 어디서 어떻게 유용하게 쓰이고 있는지도 확인해야 겠죠?

실제로 상대좌표계가 많이 쓰이는 부분은 요즘 개발이 유행하고 있는 분야들입니다. 그 이유는 간단합니다. 여러 환경에서 동일하게 동작시킬 필요가 있거든요. 특히 모바일과 웹. ㅡㅅㅡ

모바일의 경우애는 해상도 분포가 장난아니게 넓게 퍼져있습니다. 그래서 안드로이드의 경우에는 상대좌표로 개발을 하는 것이 당연하다고 되어 있는 상황이죠. 것보다 자바 GUI 환경이 대부분 상대좌표를 이용한다고 합니다. (제가 자바 개발을 거의 안해서 자바쪽은 잘 모르는데 그렇다고들 합니다) 이런 환경에서는 특정 좌표값에 의존하는 것보다는 사실상 좌표를 제공하는 방식을 적절히 조절하는 것이 더 편한 개발을 하지만, 사용자가 보는 UI는 이쁘게 나오질 않습니다. (이걸 알고 싶다면 안드로이드의 기본 앱들을 보세요. 텍스트 입력창이나 텍스트 출력, 탭 같은 것들은 될 수 있으면 화면 가득 채우면서 분할을 합니다. 이게 개발자 입장에서는 쉬운데 이쁘진 않아요. 이런 걸 좌표 배치로 일일이 해상도대로 맞춰주면 엄청난 트러블이 생깁니다. 그래서 상대좌표 계념이 잘 이용되고 있죠.

아이폰도 처음에는 절대좌표계를 이용했습니다. 3.5인치 화면만 고집하였던 점도 있고, 레티나 디스플레이의 경우에도 해상도의 조절은 iOS가 직접 하는 것이지 개발자가 손을 댈 이유는 없기 때문입니다. 그러나 아이패드가 등장하면서 앱 개발 환경에 아이폰, 아이패드를 동시에 지원하는 Universial 프로젝트를 생성할 수 있게 되면서부터 은근슬쩍 화면을 서로 공유하면서 동시 개발이 가능한 앱을 만들려는 환경들이 생겨나기 시작했습니다. 원래라면 그냥 로직 코드의 일부만 공유하도록 지원하면 되는 문제다 보니 그냥 UI 레벨에서도 어느 정도 작업해주면 금방 나오는 것이었죠.

그러다가 아이폰 5가 나오면서, 화면 인치가 조금씩 바뀌고 그에 따른 해상도가 다르게 나옵니다. 이때 애플은 Auto Layout 기능을 이용하여 레이아웃을 상대적으로 배치하여 사용할 수 있도록 지원해 줍니다. 지금 글쓰는 시점에서는 6와 6+도 나왔습니다. 화면 해상도가 더 늘었어요. 근데 해상도에 맞춰서 업데이트 하는 회사는 그렇게 많지 않습니다. 다들 어느정도 대비가 되어있는지라 그냥 해상도는 자동으로 지원해 주고 있죠. (5 나왔을 때에는 진짜 골치였습니다)

웹은 더 할 말이 없죠. ㅇㅅㅇ;;;

데스크톱 환경에서 많이 쓰인다고 하는 자바의 GUI, 웹, 모바일, 그리고 요즘은 윈도우 환경에서도 지원합니다. 데스크톱 말고 구 메트로 UI 환경도 상대좌표를 주로 이용합니다. XAML에서 상대좌표를 적용하여 개발을 하죠. XAML을 이용한 데스크톱 형식의 프로그램은 그냥 어떻게 해도 상관은 없으나, 타블렛에서 쓰는 건 어느정도 해상도 맞춰주기 위해서 상대좌표화 합니다. 여기저기서 많이 쓰이게 된 것이죠.

난 그냥 내 맘대로 폼 해상도 고정해서 쓸 거야 라고 해도 됩니다. 안되는 건 아니죠. 여전히 그런 환경에서 동작하는 응용 프로그램들도 많은 것이 사실이고요. 그렇지만 이렇게 많이 이용되고 있는 좌표계라면 알아둬서 나쁠 건 전혀 없다고 생각합니다. 오히려 잘 유용하게 쓰면 신경 쓸 거리가 하나 줄어드는 거죠.