안녕하세요, 타이젠 개발자 윤진입니다.


지난 한 달간 온오프믹스를 통해 Tizen Talks의 참가자를 받아왔습니다.

참고 : [Tizen Talks 2016 in Seoul] 타이젠 개발자 행사 참가자 2차 추가모집

생각보다 많은 분들께서 참석 의사를 밝히셔서 굉장히 놀랐습니다.


타이젠에 관심있는 대학생들 뿐만 아니라,

공기업, 대기업, 벤쳐기업 등 다양한 곳에서 근무하시는 분들이 참가신청을 해주셨습니다.

서울 뿐만 아니라 대구, 부산 등 지방에서 올라오시는 분들도 계시더군요.

관심을 가져주셔서 다시 한 번 감사합니다.


애초에 행사는 20~30명을 위해 기획되었지만,

인원모집 단계에서 총원을 100여명까지 늘렸습니다.

마음 같아서는 참가신청을 원하는 모든 분들을 받아들이고 싶었지만,

장소가 협소하여 어쩔 수 없이 온오프믹스 참가신청을 마감하였습니다.

현재 대기인원 포함 200여분이 등록을 하셨기에 대기등록도 어렵습니다.

참석을 원하는 분은 따로 알려주세요.


애초의 세션 발표안이 약간 수정되었습니다.

참가자를 모집하며 듣고 싶은 내용에 대한 정보를 수집하였는데요,

좀 더 깊이있게 그리고 폭넓게 파고 들어야 하는 세션은 다음으로 미루기로 결정하였고,

플랫폼 전체를 훑으며, 서로 유기적으로 연결되는 세션을 남겨두었습니다.



박영주, Application, "타이젠을 말하다."

이세문, Application Framework, "Tizen Application Inside Out"

정우현, UI Framework, "타이젠 UI앱의 필수, EFL 파헤치기"

문관경, Window system, "더 빠르고 더 유연한 윈도우 시스템(Wayland on Tizen 3.0)"

우상정, Kernel / System Framework, "바닥부터 만들어보는 Tizen"

윤  진, Native App, "타이젠 오픈소스의 커미터가 되어보자! "

이승환, SDK Plugins, "Tizen SDK를 이용한 Tizen Platform 개발"


이번 행사를 위해 어디에서도 들을 수 없는 내용을 준비하고 있습니다.

발표자 분들께서 한창 리허설을 하고 계실 수도 있겠네요.



권오훈, Service Framework, "타이젠 서비스 개발 공통기능 파헤치기"

김기동, Security, "더 안전해진 개인정보 관리"

강석현, Web App, "Javascript Is Eating The World"


상기 세 개 세션은 다음 TT때 찾아뵙도록 하겠습니다.

개인적으로 꼭 듣고 싶은 세션들이어서 아쉬움은 크지만,

일회성 행사가 아니기에 다음 TT를 기다려보기로 합니다.



이 행사는 개발자들이 직접 주관하는 행사입니다.

현업에서 코드를 짜고 있는 개발자들이 만든 행사이기에,

여러가지로 부족한 점이 많이 있습니다.


원래의 취지는 개발자들끼리 한 번 모여서 '우리끼리' 넋두리를 늘어놓아보자 정도인데요,

행사 참석자가 많아져서 그냥 넋두리만 늘어놨다가는 안될 것 같더군요.


그래서 개발자들이 코딩하다 말고 장보고 준비하여 다과를 마련하였습니다.

대단한 것은 아니나 귀엽게 봐주셨으면 좋겠습니다.


주차는 기본적으로 불가하나,

먼 지역에서 오신 분들에게는 예외적으로 주차하실 수 있도록 하겠습니다.

이 부분은 참석자분께서 받은 메일로 답변주시면 됩니다.


며칠 안남았네요.

날도 추운데 감기 조심 하시고 행사날 뵙겠습니다.

끝_

  1. 코코콩 2016.01.20 11:06 신고

    흐어어어... 참석하고싶으나........ㅠㅠ

    혹시 발표자료 올려주실수 있으신가요?

    • 안녕하세요~ 코코콩님.
      제가 만든 자료는 Tizen Talks 그룹 및 본 블로그에 올릴 예정이고,
      다른 발표자 분들의 자료는 Tizen Talks에 올리려고 합니다. :)



안녕하세요, 타이젠 개발자 윤진입니다.


얼마 전에 TT(Tizen Talks) 행사를 개최한다는 사실을 알려드렸는데요.

예상 외로 많은 분들이 관심을 가져주셔서 참가자 1차 모집을 마감하였습니다.

1차 모집 인원은 발표장 크기에 걸맞게 50명으로 책정했었지요.


비록 국내에 타이젠 모바일 제품이 출시되지 않았지만,

타이젠이 탑재된 기어시리즈가 널리 알려지고 있어서 10명만 와도 성공이라고 생각했었죠.


사실 발표자만 10명이 넘고,

행사운영으로도 그만한 숫자의 사람들이 투입이 되는데요,

행사를 준비하는 사람이 참가하는 사람보다 많아도 실망하지 말자고 다짐하고 있습니다.

(사실, 무명의 행사에 10명만 와도 성공이죠)


실제로는 얼마나 와주실지 아직도 걱정스럽기는 하지만,

그래도 참석의사를 밝히신 분이 50명이 넘었다는 사실에 감탄하고 있습니다.

그리고 대기자 명단에 올려서 참석의사를 적극적으로 피력하는 분도 계셨습니다.

타이젠 행사에 관심을 가져주는 모든 분께 진심으로 감사드립니다.


그래서 발표장을 좀 더 널직한 곳으로 변경하였습니다.

물론 현재까지 온오프믹스를 통해 신청의사를 밝히신 50분이 모두 오시진 못하겠지만,

백만분의 일의 확률로 모두 오실 수도 있을테니 참가자를 더 받으려면 공간을 넓혀야죠.


행사장소는 삼성전자 서초사옥 3층 그대로이지만,

3층에 있는 가장 넓은 대강의장에서 진행하려 합니다.

총 백여명이 들어갈 수 있는 공간입니다.




사진 촬영 : 박문경 연구원님


물론 공간이 넓어진 만큼 부담스러운 마음도 생기긴 합니다.

좁은 곳에서 10명은 왠지 가득차 보이지만,

넓은 곳에서 10명은 굉장히 휑해보일테니까요;

그래서 공간을 넓히는 것에 대한 상당한 부담감이 있지만,

장소가 모자라는 것보다는 남는게 차라리 나을테니,

공간이 휑해서 오는 심리적 압박은 준비하는 쪽에서 스스로 이겨내기로 했습니다.


온오프믹스에 추가로 참가신청을 받을 수 있도록 인원을 늘려놓았습니다.

애초에 계획했던 50명에서 100명으로 2배 늘렸는데요,

50명이 가득차서 헛걸음 하셨던 분들은 다시 신청해주세요.



2차 추가모집으로 등록된 사람은 '15. 12. 25 기준으로 78명입니다.

참석자 100명에 추가 대기자 50명으로 설정해두었습니다.

만약 참석예정자 100명이 꽉찬다면 대기자로 등록해주세요.

참석예정자분들께 전화/문자로 참석여부를 확인한 후 대기자 분들을 추가로 확정할 예정입니다.

그러니 연락가능한 전화번호를 꼭 남겨주세요 :)

참석신청은 여기에서 하실 수 있습니다.

그리고 각종 문의는 TT 공식사이트에서 하실 수 있습니다.

https://www.facebook.com/groups/tizentalks/


끝으로 TT 행사 댓글을 하나 언급하고 싶습니다.

황보진원님께서 "(생략)... 가능성을 보고서 울산에서 서울까지... 가려합니다. 기회가 주어진다면 직접 가능성을 보고 같은 가능성을 보는 이들과 교류하고 싶습니다. 기대하고 있습니다."라고 댓글을 남겨주셨습니다.

행사를 준비하는 입장에서 여러가지를 고민하게 만드는 댓글입니다.

먼길 오시는 만큼 헛된 걸음으로 돌아가시지 않도록 열심히 준비하겠습니다.


그럼 즐거운 하루 보내세요~

끝_



  1. 타이젠... 2015.12.27 15:14

    타이젠의 발전을 애타게 기다리는 분들도 많습니다. 저는 아니지만 타이젠폰 해외에서 직구했다가 램관리도 안되는 등 운영체제의 기본부터 개선해야 한다먀 다음 업데이트를 기다린다는 분도 있습니다.. 빨리 발전하길 바랍니다.

    • 안녕하세요? 의견 감사드립니다! 타이젠 모바일에 메모리 관련 정책은 매번 진화하고 있는 것으로 알고 있습니다. 그 사이에 불편을 느끼셨다니 여러가지로 송구스럽네요. 의견 주신 것을 소홀히 하지 않고 차기 버전에 반영할 수 있도록 하겠습니다. 감사합니다.



안녕하세요, 타이젠 개발자 윤진입니다.


드.디.어.

서울에서 타이젠 플랫폼 개발자들과 소통하는 자리를 마련하였습니다.

타이젠 플랫폼의 다양한 측면을 엿보실 수 있는 좋은 기회입니다.


박영주, Application, "타이젠을 말하다."

이세문, Application Framework, "Tizen Application Inside Out"

박춘언, UI Framework, "타이젠 UI앱의 필수, EFL 파헤치기"

우상정, Kernel / System Framework, "바닥부터 만들어보는 Tizen(Tizen from Scratch)"

문관경, Window system, "더 빠르고 더 유연한 윈도우 시스템(Wayland on Tizen 3.0)"

권오훈, Service Framework, "타이젠 서비스 개발 공통기능 파헤치기"

김기동, Security, "더 안전해진 개인정보 관리"

이승환, SDK Plugins, "Plugin을 추가하여 나만의 SDK를 만들기"

강석현, Web App, "Javascript Is Eating The World"

윤  진, Native App, "타이젠 오픈소스의 커미터가 되어보자! "


1회 TT(Tizen Talks)에서는 타이젠 플랫폼을 전체적으로 조망해보고,

2회, 3회... TT에서는 주요 Framework 별로 살펴볼 예정입니다.

타이젠 플랫폼에 관심있으신 분들의 많은 참여 부탁드립니다.


Tizen Talks 공식 그룹 : https://www.facebook.com/groups/tizentalks/

Tizen Talks 2016 in Seoul 등록하기 : http://onoffmix.com/event/59258


그럼 행사날 뵙겠습니다.

윤진 드림.

  1. YOhoho 2015.12.17 01:49

    우와아아아 기대됩니다 신청완료!

  2. 2015.12.19 08:17

    비밀댓글입니다


안녕하세요, 타이젠 개발자 윤진입니다.


Tizen 개발자 사이트에 방문해 보면 개발에 참고할만한 자료들이 많습니다.

말로만 좋다고 해봐야 입에 발린 소리를 하는 것으로 비춰질지도 모르니,

이번 포스팅은 철저히 Tizen 개발자 사이트의 자료를 이용하도록 하겠습니다.



여기에 들어가보시면 상기 그림과 같은 드럼앱 작성법이 나와 있습니다.

드럼을 치면 그에 맞는 소리가 플레이되는 간단한 앱입니다.

위의 그림만 봐도 드럼앱을 개발하고 싶은 욕구가 솟아나오시지요? :)


소리를 재생하려면 Player API를 사용합니다.

Player는 다수의 API로 구성되어 있는데,

그 중 라이프 사이클과 관련된 함수가 가장 중요합니다.

- player_create(), player_destroy()

- player_prepare(), player_unprepare()

- player_start(), player_stop(), player_pause()

위의 함수들로 Idle, Ready, Playing, Paused 상태를 관리합니다.


Player 상태 다이어그램


player_create()에서 재생을 위한 핸들을 생성해주면 Idle 상태로 진입합니다.

핸들을 이용하여 player_prepare()를 하면 비로소 재생할 준비를 합니다.

재생 준비가 되면 Ready 상태에 이르게 되는데요,

player_start()로 Playing 상태로 바뀌고,

player_pause()로는 Paused 상태로 바뀌며,

player_stop()을 실행하면 다시 ready 상태가 됩니다.


Player 상태 변이


위에서 언급한 상태 다이어그램을 함수 측면에서 살펴볼 수도 있습니다.

표에서는 각각의 함수를 실행하기 전에 수행해야할 pre-state를 확인할 수 있습니다.

대부분의 함수가 sync로 동작하기 때문에 절차적 프로그래밍을 하면 됩니다.

player_prepare_async()만이 async인데요, 드럼앱에서는 따로 사용하지 않았습니다.


우선, player 핸들을 생성하여 준비하는 단계를 살펴보겠습니다.

총 9개의 드럼이 있기 때문에 각각의 소리를 재생하기 위해서 9개의 player 핸들을 생성해야합니다.


static void init_base_player(app_data *ad)
{
player_create(&ad->player1);
player_set_uri(ad->player1, "/opt/usr/apps/org.tizen.drums/res/sounds/ride.wav");
player_prepare(ad->player1);

player_create(&ad->player2);
player_set_uri(ad->player2, "/opt/usr/apps/org.tizen.drums/res/sounds/crash.wav");
player_prepare(ad->player2);

player_create(&ad->player3);
player_set_uri(ad->player3, "/opt/usr/apps/org.tizen.drums/res/sounds/tom2.wav");
player_prepare(ad->player3);

player_create(&ad->player4);
player_set_uri(ad->player4, "/opt/usr/apps/org.tizen.drums/res/sounds/hihat2.wav");
player_prepare(ad->player4);

player_create(&ad->player5);
player_set_uri(ad->player5, "/opt/usr/apps/org.tizen.drums/res/sounds/hihat1.wav");
player_prepare(ad->player5);

player_create(&ad->player6);
player_set_uri(ad->player6, "/opt/usr/apps/org.tizen.drums/res/sounds/tom1.wav");
player_prepare(ad->player6);

player_create(&ad->player7);
player_set_uri(ad->player7, "/opt/usr/apps/org.tizen.drums/res/sounds/floor.wav");
player_prepare(ad->player7);

player_create(&ad->player8);
player_set_uri(ad->player8, "/opt/usr/apps/org.tizen.drums/res/sounds/snare.wav");
player_prepare(ad->player8);

player_create(&ad->player9);
player_set_uri(ad->player9, "/opt/usr/apps/org.tizen.drums/res/sounds/bass.wav");
player_prepare(ad->player9);
}


위의 함수를 보시면, player_create()를 9번 수행한 것을 확인할 수 있습니다.

그리고 획득한 핸들로 player_set_uri()를 사용하여 재생할 파일 경로를 입력하였습니다.

"file://"와 같은 prefix를 넣지 않고 바로 절대경로를 입력하여도 동작합니다.

파일 경로까지 입력하였으니 이제 재생을 위한 준비를 할 차례입니다.

player_prepare()함수를 사용하여 sync로 재생 준비를 마칩니다.


void play_audio(player_h player)
{
player_state_e player_state;
player_get_state(player, &player_state);
if (player_state == PLAYER_STATE_PLAYING) {
player_stop(player);
}
player_start(player);
}


이제 드럼을 터치하면 재생을 할 차례입니다.

재생을 하기에 앞서 현재 재생 중인지 여부를 확인합니다.

player_get_state() 함수를 사용하여 현재 상태를 확인할 수 있습니다.



함수를 통해 총 5가지 상태 중 하나의 값을 얻어옵니다.

만약 이미 플레이 중이라면,

player_get_stop()으로 플레이를 멈춥니다.

그리고 다시 player_start()로 재실행을 합니다.


드럼마다 이벤트 영역을 설정하여 play_audio() 함수를 실행하도록 합니다.

총 9개의 드럼이 제각각의 소리를 내는 것을 확인할 수 있습니다.

9개의 이벤트 영역을 설정하는 방법도 흥미로우니,

시간이 허락한다면 한 번 소스를 살펴보는 것도 좋습니다.


player를 위해 할당받은 자원을 정리할 차례입니다.

9개의 핸들에 대해 아래 두 함수를 이용하여 정리작업을 합니다.


    player_unprepare(app->player1);
    player_destroy(app->player1);


이상 아주 간단한 player 사용법이었습니다.

player에는 이외에도 굉장히 다양한 기능이 있습니다.

시간이 허락한다면 좀 더 복잡한 앱의 소스를 분석해보는 시간을 가져보겠습니다.


그럼 좋은 하루 보내세요~

끝_



* References

https://developer.tizen.org/

https://developer.tizen.org/community/tip-tech/drums-tizen

https://developer.tizen.org/dev-guide/2.4.0/org.tizen.native.mobile.apireference/group__CAPI__MEDIA__PLAYER__MODULE.html


안녕하세요, 타이젠 개발자 윤진입니다.


타이젠 앱개발과 관련하여 자주 접하는 질문들을 하나씩 포스팅하기로 마음 먹었었는데요,

(마음만 먹었습니다;)

근데 워낙 많은 질문이 들어와서...

내년이 되어도 모든 답변을 포스팅할 수 있을지 모르겠습니다.


일단 이번 포스팅에서는,

화면이 꺼지면 안되는 앱이 필수로 사용하는 전원 API를 살펴보도록 하겠습니다.


전원 관련 API는 총 4개가 있습니다.

여기서 CPU와 Display의 전원은 request & release 함수를 이용하여 제어하지요.

하지만, 2.4부터는 보다 강력하면서 사용하기도 쉬운 API가 추가되었습니다.

그에 따라 request & release API는 deprecated 수순을 밟고 있습니다.


그 대신 efl_util에서 window screen mode를 설정할 수 있도록 API를 제공합니다.

함수 이름에 직접적으로 언급되어 있듯,

이 함수는 윈도우의 상태를 기준으로 파워를 제어하게 됩니다.

윈도우가 화면에 보이는 상태에서만 위의 함수로 지정한 상태로 진입하고,

화면에서 완전히 사라지면 n초 후 화면은 꺼지게 됩니다.


EFL_UTIL_SCREEN_MODE_DEFAULT는 시간이 경과하면 화면을 끄고,

EFL_UTIL_SCREEN_MODE_ALWAYS_ON은 화면이 켜져있는 상태를 유지합니다.


기존에는 앱의 라이프사이클인 pause / resume 콜백에서 device power 함수를 사용하여,

- 앱이 pause가 되면 상시 전원 on에서 사용시만 on으로 변경하고,

- 앱이 resume이 되면 상시 전원 on 상태로 유지하였었는데요,


이제는 윈도우의 상태에 따라,

- 윈도우가 사라지면(곧, 앱이 pause가 되면), ALWAYS_ON 상태가 자동으로 해제되어 화면이 꺼지도록 제어가 됩니다.

- 반대로 윈도우가 나타나면(곧, 앱이 resume이 되면), ALWAYS_ON이 다시 설정되게 됩니다.

그렇기에 앱의 라이프 사이클 대신 기능의 라이프 사이클에 맞춰 함수를 사용하면 됩니다.

간단하지요? :)


그럼 오늘도 좋은 하루 보내세요~

끝_


* References

https://developer.tizen.org/community/tip-tech/keeping-screen-awake-until-pressing-hold-button

https://developer.tizen.org/dev-guide/2.4.0/org.tizen.native.mobile.apireference/group__CAPI__SYSTEM__DEVICE__POWER__MODULE.html

https://developer.tizen.org/dev-guide/2.4.0/org.tizen.native.mobile.apireference/group__CAPI__EFL__UTIL__MODULE.html

  1. 2015.12.11 23:00

    비밀댓글입니다


안녕하세요, 타이젠 개발자 윤진입니다.


본 포스팅은 이틀에 걸쳐 졸음과 싸워가며 작성한 포스팅입니다.

오탈자가 있을 수 있으니 너그러운 맘으로 지적질(?) 부탁드립니다;


사실 이전 포스팅에서도 타이젠 개발환경의 핵심툴인 sdb를 언급한 적이 있습니다.

- sdb 설치하기 : [Tizen] 우분투에 타이젠 플랫폼 툴인 gbs & sdb 설치해보기

- sdb 사용하기 with Gear S2 : [Tizen/Gear S2] 타이젠 기어S2와 호스트 PC 연결하기


하지만 하루에도 수십차례 이용하는 sdb의 주요 기능에 대해 다룬 적이 없더군요.

어쩌면 지금 이 시간에도 수많은 타이젠 개발자들이 sdb를 이용하고 있을텐데요.

이 포스팅에서는 타이젠 개발자들이 주로 사용하는 sdb 기능을 설명하도록 하겠습니다.


sdb는 개발시스템과 디바이스(혹은 에뮬)을 연결하여 사용할 수 있도록 도와주는 툴입니다.

개발시스템과 에뮬 혹은 디바이스 혹은 에뮬과 디바이스를 동시에 연결할 수도 있지요.

파일을 주고 받고, 원격 쉘 접속을 위해 sdb를 사용하고 있습니다.


이런 sdb를 사용하기 위해서는 2가지 전제조건이 있습니다.


전제 1. 당연히, sdb를 설치하셔야겠지요.

sdb는 기본적으로 Tizen SDK와 함께 설치됩니다.

따라서 Tizen SDK를 설치하셨다면,

tizen-sdk/tools/sdb를 찾으실 수 있을겁니다.

만약 SDK 없이 sdb 툴만 리눅스환경에서 따로 받고 싶으시면 위에 언급한 포스팅을 참고해주세요.


전제 2. sdb로 붙이려는 디바이스의 debug 모드를 "On" 하셔야합니다.

디바이스에서 debug 모드를 켜놓지 않으면 sdb를 붙일 수 없지요.

타이젠 플랫폼에서는 Home > Settings > Device Info. > USB Debugging에서 설정하고,

타이젠 상품 Gear 시리즈에서는 Apps > Settings > Gear Info. > Debugging에서 설정하며,

타이젠 상품 Z1, Z3에서는 아래 포스팅을 참고해서 debug 모드를 설정하실 수 있습니다.

[Tizen] 타이젠 Z1에 개발자모드 메뉴가 숨겨져 있는 까닭은?


전제조건을 모두 만족하셨다면 이제 sdb 명령어를 살펴볼 차례입니다.

sdb 명령어는 도스나 리눅스 쉘에서 직접 사용할 수 있습니다.


sdb [option] <command> [parameters]


option에는 총 3가지 명령어가 있습니다.

옵션 1. "-d" 디바이스와 연결할 때 사용하는 명령어입니다.

개발시스템과 연결한 장치가 여러개 있을 경우,

그 중 USB와 직접 연결된 디바이스에 -d 옵션으로 접속할 수 있습니다.


옵션 2. "-e" 에뮬레이터와 연결할 때 사용하는 명령어입니다.

개발시스템과 연결한 장치가 여러개 있을 경우,

그 중 에뮬레이터에 -e 옵션으로 접속할 수 있습니다.

   

옵션 3. "-s" 시리얼넘버로 디바이스 혹은 에뮬에 접속할 수 있습니다.

시리얼 넘버는 sdb get-serialno 명령어로 얻을 수 있는데요,

앱개발할 때 사용한 경험이 거의 없군요 :)


위의 명령어 세가지는 말 그대로 옵션입니다.

개발시스템에 에뮬레이터와 디바이스가 모두 연결되어 있고,

둘 중 하나를 번걸아가며 접속할 때 유용하게 사용할 수 있습니다.

에뮬과 디바이스 중 하나만 접속이 되어 있다면,

옵션을 사용하지 않아도 접속된 에뮬 혹은 디바이스에 알아서 접속해줍니다.


command에는 다수의 유용한 명령어가 있습니다.

명령어 1. "root" <on | off>

root 명령어는 sdb로 에뮬 혹은 디바이스에 루트 권한으로 접속하게 해줍니다.

에뮬이나 플랫폼 바이너리가 탑재된 TM1 시료에서 사용할 수 있습니다.

Z1, Z3, Gear1, Gear2와 같은 상품에서는 root 권한을 얻을 수 없습니다.


명령어 2. "connect" <host>[:<port>]

connect는 Gear S2를 연결할 때 사용합니다.

이 명령어는 아래 포스팅을 참고해주세요.

[Tizen/Gear S2] 타이젠 기어S2와 호스트 PC 연결하기


명령어 3. "shell"

shell 명령어는 리모트쉘로 에뮬 혹은 디바이스에 접속할 수 있게 해줍니다.

쉘 명령어로 장치에 접속을 한뒤,

플랫폼에 설치된 다양한 명령어를 사용하여 장치의 상태를 확인할 수 있습니다.

top 혹은 ps를 사용하여 장치상태를 확인해보세요 :)


굳이 리모트 쉘에 접속할 필요없이,

쉘명령어만 한 번 사용하여 결과를 보고 싶다면,

sdb shell <명령어> 형식을 사용하면 됩니다.

예를 들어 ps 상황만 체크하고 싶다면,

sdb shell ps를 치면 쉘없이 ps 내용이 바로 출력됩니다.


명령어 4. "install" <pkg_path>

개발시스템에서 빌드한 패키지를 remote로 복사한 후 설치합니다.

패키지만 가지고 있는 경우,

sdb 명령어를 통해 쉽게 복사 & 설치할 수 있겠네요.


명령어 5. "uninstall" <pkg_id>

remote에서 패키지를 삭제할 때 사용할 수 있습니다.

이 때 pkg_id를 정확하게 알아야합니다.

자신이 삭제할 패키지의 ID는 정확히 알아야겠지요?


명령어 6. "push" <local> <remote>

개발시스템에서 빌드한 패키지를 에뮬 혹은 디바이스에 보낼 때 주로 사용합니다.

패키지 뿐만 아니라 각종 파일을 넘기는데 사용하지요.

<local>에는 개발시스템에서 보낼 파일을 기입합니다.

<remote>에는 파일을 받을 장소를 선택합니다.

만약 파일을 받을 디렉토리가 없다면 제대로 푸시되지 않을 수 있으니 미리 만들어주세요.

# sdb push file_to_push.txt /home/developer

위와 같이 file_to_push.txt 파일을 /home/developer 위치에 넣을 수 있습니다.


명령어 7. "pull" <remote> [<local>]

push와 상반되게 리모트 시스템에 있는 파일을 개발시스템으로 가져올 수 있습니다.

<remote>에는 리모트 시스템에 있는 파일을 절대경로로 적어주면 됩니다.

[<local>]을 적지 않으면 현재 디렉토리로 파일을 가져옵니다.


명령어 8. "kill-server" & "start-server"

sdb로 제대로 접속이 안될 경우,

sdb server를 죽였다가 다시 살립니다.

개발시스템과 에뮬 혹은 디바이스가 대부분 제대로 잘 붙는데요,

아주 간헐적으로 알 수 없는 이유 때문에 잘 안붙을 때가 있습니다.

그럴때 서버를 죽였다가 살려보세요. :)


명령어 9. "get-serialno" & "devices"

현재 접속된 디바이스 혹은 에뮬에 대한 시리얼 넘버를 알려줍니다.

여기서 얻은 값을 보고 위에서 설명드린 -s 옵션과 함께 사용하면 됩니다.


명령어 10. "dlog" [<filter_spec>]

개발시스템에 접속한 리모트장치의 상태를 dlog를 통해 엿볼 수 있습니다.

# sdb dlog

위의 명령어로 쉽게 로그를 출력할 수 있지요 :)


이상과 같이 간단하게 sdb의 명령어를 살펴봤습니다.

그럼 오늘도 즐거운 개발하시길... :)


끝_


안녕하세요, 타이젠 개발자 윤진입니다.


올초에 Tizen 2.3 기반의 모바일 기기가 서남아에서 출시되었었는데요,

3분기가 흐른 10월, 두번째 모바일 기기가 인도 시장에 다시 출시되었습니다.

Tizen 플랫폼은 버전을 하나 더 올려서 2.4가 되었습니다.


지난 10월 21일에 출시된 직후,

네이버 삼성 타이젠 카페를 통해 공동구매로 Z3를 구매하였습니다.

그리고 정확히 8일 후에 저희 집에 도착하였습니다.



멀리서 오는 만큼 박스 전체에 테이프로 꼼꼼하게 감쌌습니다.

테이프 위에 덧붙여진 송신인란에는 델리라는 글자가 선명하게 보입니다.

내용물에는 Gift라고 적혀 있네요.

제가 저한테 주는 선물이라 그런가 보군요;



우체국 국제 특송(EMS)으로 이용하여 델리에서 서울로 택배를 보내주었네요.

배송료는 16,000원 정도.



박스에 칭칭 감긴 테이프를 뜯어내어 박스를 개봉하니,

아주 믿음직스럽게 에어캡이 잔뜩 채워져있었습니다.

보기에는 안좋을지 모르겠지만요. :)



에어캡을 꺼내니 에어캡으로 다시 한 번 감싸진 박스가 나오네요.

척 봐도 Z3 본체박스입니다.



박스에 돌돌 말려져 있는 에어캡을 걷어내고 박스 전면을 찍었습니다.

검은색 Z3를 주문했는데 금색 Z3가 보여서 당황했습니다.

주문한 색상과 상관없이 박스 모델은 금색인가 봅니다.



박스 뒷면을 찍어보았습니다.

"Samsung Z3 powered by TIZEN OS"

제일 위에 타이젠 플랫폼이 탑재되어 있다고 명시해놓았네요.

플랫폼 버전은 생략된 것으로 보아,

플랫폼 버전은 개발자에게나 관심있지 소비자에게는 노출할 필요가 없는 정보인가 보네요.


그 아래로 세가지 주요한 특징이 나열되어 있습니다.

- Ultra Data Saving Mode

- 8MP + 5MP Camera

- Ultra Power Saving Mode

 인도시장에서는 데이터/파워를 절약할 수 있는 기능이 중요한 것으로 보입니다.


1.3GHz 쿼드코어 / HD sAMOLED / 8GB 메모리

주요 스펙은 이미 공지된 것과 똑같습니다.



"Do not accept if seal is broken"

봉인스티커가 파손되어 있는지 확인해보았습니다.

당연히 이상없더군요.



봉인스티커를 제거하고 본케이스를 꺼내보았습니다.

Z1(480x800)보다 커진 사이즈의 Z3(720x1280)가 위용을 드러내고 있네요.



박스안 구성요소는 스마트폰 살 때 으레 따라오는 녀석들입니다.

USB 케이블, 이어폰, 전원익스텐션, 충전지.



검은색 Z3의 정면모습입니다.

갤럭시보다 사각에 가깝지만 모서리는 라운드처리가 되어 있습니다.

손으로 움켜쥐었을때 그립감은 좋았고,

배터리를 탑재해도 상당히 가볍다는 느낌이 들었습니다.



체 왼편으로 여느 갤럭시 스마트폰과 마찬가지로 볼륨 상/하 버튼이 있습니다.

상/하 버튼은 두 키가 충분히 구분이 가도록 2Cm 남짓으로 만들었습니다.



뒷면에는 플라스틱커버가 씌워져 있습니다.

상단에 플래시, 카메라, 스피커구멍이 놓여져 있네요.

그리고 그 바로 밑에 'SAMSUNG'이라고 쓰여 있습니다.



하단에는 USB 케이블을 연결할 수 있는 포트가 있습니다.

박스에 있는 케이블을 포트에 꼽아 충전을 시키면 됩니다.



상단에는 이어폰을 꼽을 수 있는 이어잭이 있습니다.

가장자리는 전면에 비해 후면이 작게 디자인되도록 경사를 두었네요.



뒷면 커버를 빼어 2600 mAh 배터리를 꼽았습니다.

배터리 윗 편으로 심을 꼽을 수 있는 슬롯이 2개 보입니다.

Z1과 마찬가지로 Z3에는 심카드를 2개 꼽을 수 있습니다.


기기 전면 오른편에 위치한 파워키를 롱프레스하여 전원을 켰습니다.

시작하자마다 모델명 Z3가 표시되고 그 아래로 타이젠이 표시됩니다.



그리고 삼성 애니메이션이 나옵니다.

삼성 애니메이션이 나오고 10여초가 지나면 부팅이 완료됩니다.



첫 부팅 직후에 나온 웰컴화면입니다.

하단에 언어선택 버튼이 나와있습니다.

초기설정은 영어인데 버튼을 눌러 다른 언어로 변경할 수 있습니다.



서남아 시장에 출시되어 그런지 낯선 언어들이 상당히 많이 보입니다.

언어선택화면에서 해독이 가능한 언어는 영어와 한국어 뿐입니다.

한국어를 선택해보도록 하겠습니다.



영어로 표시되었던 웰컴화면이 한글로 변경되었습니다.

언어선택버튼도 '한국어'로 바뀌었습니다.

화면 하단의 화살표 모양으로 슬라이드업하면 다음 설적을 할 수 있는 화면이 올라옵니다.



이용약관을 읽어보고 '동의합니다'에 체크를 하였습니다.

데이터 제공에 대한 동의도 '예'를 눌렀습니다.



그리고 바로 와이파이를 연결하니 한국시간이 바뀌었습니다.

삼성계정은 필수항목이라 기존에 가입한 아이디로 로그인을 하였습니다.

아이디가 없으신 분들은 계정을 생성하시면 됩니다.



계정 로그인이 완료되면,

삼성계정으로 백업된 데이터를 복원할 수 있습니다.

"삼성 계정을 사용하여 데이터를 백업하고 복원할 수 있습니다. 계정에 백업해 둔 데이터가 있는 경우, 해당 데이터를 이 디바이스에 복원할 수 있습니다"

기존에 삼성계정에 백업해둔 데이터가 없으므로 복원을 진행하진 않았습니다만,

차후에 삼성디바이스간 데이터를 교환하기 위한 수단으로 사용하면 되겠네요.



구글 계정으로 로그인도 하였습니다.

구글에서 제공하는 서비스도 사용할 수 있군요.

지메일/구글캘린더/유투브 등의 서비스를 이용할 수 있다는 설명이 나옵니다.



초기설정을 마치면 드디어 홈화면이 나옵니다.

홈화면의 기본적인 구조는 Z1과 동일합니다.

하단에 Favorite 아이콘이 두 줄로 나와있고,

하단 영역을 슬라이드업하면 설치된 앱들이 나열된 메뉴화면이 나옵니다.



메뉴화면의 상단에 Favorite 두 줄이 표기되어 있고,

그 아래로 설치된 앱들이 나타납니다.

설치된 앱들은 두 페이지에 걸쳐 있습니다.

인도 시장에 특화된 Galaxy와 같은 앱이 보입니다.



필수앱 폴더를 열어보니 페이스북/페이스북메신져/위쳇/왓스앱 등의 앱이 보입니다.

국내 유명메신져가 올라가 있진 않지만,

해외에서는 페이스북 메신져가 많이 사용되고 있기 때문에 유용해보입니다.




화면 상단에서 하단으로 패널을 내렸습니다.

소프트웨어 업데이트 항목이 나타나 있습니다.

업데이트항목을 눌러 바로 업데이트를 진행해보도록 하겠습니다.



플랫폼에 전면적인 업데이트라기 보다는 버그픽스로 보이네요.

업데이트를 위해 3.7MB의 소프트웨어를 다운로드 받으면 됩니다.

업데이트 정보에도 안정성을 개선하였다는 문구 정도만 노출되어 있습니다.



다운로드 용량이 얼마 안되어 바로 설치가 완료되었습니다.

소프트웨어 업데이트 후 재부팅하니 락화면이 나오네요.



우측 하단에 카메라 버튼을 드래그하여 카메라앱을 바로 띄울 수 있습니다.

카메라 버튼을 누르면 흰색 선이 원형으로 확대되고,

손으로 드래그를 해야 카메라앱이 실행됩니다.



심카드를 꼽고 부팅을 2번 하니 바로 사용이 가능해지네요.

화면 상단의 인디케이터바에 첫번째심이 꼽혀 있음을 알려주는 아이콘이 떴습니다.

그리고 KT에서 개통되었다는 안내문자를 여러개 보내주었습니다.



세팅앱에 들어가서 디바이스정보를 열어보았습니다.

모델번호는 SM-Z300H입니다.

타이젠버전은 2.4.0.1입니다.

Tizen 2.4의 새로운 기능을 사용하여 앱을 개발하셨다면 Z3에 올려 테스트하실 수 있습니다.



비디오 플레이어에서 영상을 보다가,

영상을 터치하여 시계방향으로 돌리면 영상을 다음으로 빨리넘길 수 있습니다.

반시계방향으로 돌리면 이전으로 돌아갑니다.

영상을 볼때 막대바를 선택해서 이전/다음으로 넘어가기가 힘들었었는데,

반시계방향/시계방향으로 정밀하게 넘기는 기능은 정말 편하더군요.



뮤직플레이어에 음악을 들으면서 바로 내 목소리를 '녹음'할 수 있는 기능도 있습니다.

위의 캡쳐이미지는 음악을 재생하고 있는 화면인데요,

중간에 '녹음'이라는 버튼이 보이시죠?

녹음 버튼을 누르면 다시 0초부터 재생이 시작되고 동시에 녹음도 됩니다.



위의 이미지를 보시면,

재생과 녹음 모두 00:02를 가리키고 있는 것을 확인하실 수 있습니다.

노래 연습이 필요할 때 사용하면 되겠네요.



아스팔트앱이 설치되어 있길래 실행해보았습니다.

앱 로딩이 상당히 가볍게 진행되어 좀 놀랐습니다.

앱단에서도 충분히 최적화가 진행된 것으로 보입니다.



데모플레이 버튼을 눌러 레이싱도 즐길 수 있습니다.

게임 중에 프레임이 드랍된다거나 움직임이 끊기는 현상은 전혀 발견하지 못했습니다.

다만, 제가 모바일 게임을 정말 못한다는 것을 다시 한 번 확인할 수 있는 시간이었습니다.



타이젠 스토어 앱을 열어보았습니다.

타이젠은 타플랫폼에 비해 아직 앱이 많이 부족합니다.

타이젠 플랫폼에서 구동할 수 있는 앱이 많이 늘어야 사용자들이 타이젠을 더 찾게되고,

사용자들이 많아져야 앱들도 더 늘어날텐데요.

아직은 그런 선순환을 타고 있진 않습니다.


타이젠 스토어에서 인스타그램과 유틸리티앱을 몇개 받았습니다.

원하는 앱이 다 있진 않지만 앱이 조금씩 늘고 있다는 사실에 안도가 됩니다.

현재는 앱 수익금 100%를 개발자에게 주고 있기 때문에,

이미 포화상태에 이른 다른 플랫폼에 비해 수익을 창출하는게 쉬울지도 모르겠습니다.

특히 개인개발자들에게 기회가 더 많지 않을까 싶습니다.



테마스토어도 개장했습니다.

테마스토어에서 디자이너들이 올린 테마를 다운로드 받아 바로 적용할 수 있습니다.



무료로 제공되고 있는 테마입니다.

SRIB에서 제작한 테마입니다.

배경/아이콘이 모두 변경되는 것을 스크린샷으로 확인할 수 있습니다.



사막 배경과 단촐한 아이콘이 맘에 들어서 Desert 테마를 다운로드 받았습니다.

SIDIA에서 제작한 테마이군요.

사이즈도 1.01MB 밖에 안되어서 다운로드는 금방 받았습니다.


설치 직후 바로 적용하였습니다.

스크린샷에 나와있는 대로 배경화면/배경색과 아이콘이 모두 변경되었습니다. :)



전체 색상톤도 바꿀 수 있습니다.

바꿀 수 있는 색상이 아주 많습니다.

위의 캡쳐이미지는 붉은 계열의 색상입니다.



전 마지막에 나와있는 그레이로 색상을 설정해놨습니다.

검은색 Z3 기기엔 역시 그레이죠...?

색상은 개인의 취향으로 고르시면 됩니다.

색상선택 기능은 Z1 때도 있었지만, Z3 색상이 좀 더 진화했습니다.


그 외에 흥미로운 기능들도 많이 있네요.

- 락스크린의 진화된 패턴인식

- 투명 키보드

- 계산서 분할기능

- 배터리/데이터 사용량 등을 한 눈에 볼 수 있는 스마트 매니져


당분간 타이젠 폰만 가지고 다녀봐야겠습니다.

몇 가지 앱을 사용할 수 없어서 불편하긴 하겠지만 익숙해지겠죠? :)


이상으로 간단한 Z3 리뷰를 마치겠습니다.

  1. 코코콩 2015.11.04 14:20 신고

    리뷰 잘보았습니다! 저는 실버를 기다리는 와중에... 유럽쪽에서도 출시예정(혹여 LTE버전이 나올까)이라는 기사를보고 대기중인데요...
    빨리 사고싶네요! 우선은 기어S2를 지르긴했지만... 배송이안되네요ㅋㅋㅋ
    아 그리고 타이젠 웨어러블 개발 관련하여 참고할 페이지나 도서 있으시면 추천좀 부탁드릴게요( _ _ )

    • 코코콩 2015.11.04 14:26 신고

      앗 찾아보니 서영진이 ebook으로 내신게 있네요 !!

    • 안녕하세요, 코코콩님~
      Z3가 유럽에서 출시될거라는건 이미 기사화가 되었는데요. 실제로 나올지, 나온다면 언제가 될지는 모르겠네요. 일개 개발자는 큰 전략을 알 수가 없어서요, 히히. (모르는게 자랑;)
      웹앱으로 개발하는건 서영진 작가님 책을 보시면 됩니다. 웨어러블 네이티브는 아직 참고할만한 책이 없지만... 조만간 나오지 않을까 생각합니다 :)

  2. 지나가던사람 ㅋ 2015.11.06 01:52

    최적화 좋다고 해서 검색해봤는데 엄청 디테일한 리뷰가 있었네요 ㅎ

    • 안녕하세요~! 다른 플랫폼에 올라가 있는 무거운 앱도 올려 비교해보고 싶어지네요. 앱스토어가 보다 활성화되길 바랍니다 :)

  3. shgud1234 2016.05.05 20:57

    네이버 타이젠 까페에서는 공동구매가 종료되었다고 하는데 다른 방법으로 구할 방법은 없을까요?

    • Z3는 서남아시장에만 출시되어서 국내에서 신제품을 구하긴 힘들 것 같습니다. 중고품이라도 알아보는게 어떨까요?
      원하시는 답변이 아닐 것 같네요... 죄송합니다... ㅠ_ㅜ

+ Recent posts