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


얼마 전에 출시된 타이젠 스튜디오 2.0을 설치하여 실행할때,

아래 사진처럼 "Decoration Calculation" 에러가 나실 때 해결방법입니다.



Tizen Studio > Window > Preferences > General > Appearance > Label Decorations

위의 메뉴에 진입하여,

"Javascript Function Override Indicator" 항목의 체크를 해제해주면 됩니다.



위의 에러는 이클립스 관련 에러로서 아래 스택오버플로우에서 보고된 내용입니다.

https://stackoverflow.com/questions/27373824/eclipse-an-internal-error-occurred-during-decoration-calculation-java-lang


본 포스트에 대한 기본내용은 타이젠 SDK팀에서 제공해주셨습니다.


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


지난 1월 23일(토)에 열린 < Tizen Talks 2016 in Seoul >의 발표자료를 공유합니다.

1월 29일(금) 현재 총 다섯개 세션의 발표자료가 공개되었습니다.

여섯번째 세션의 발표자료는 준비되는대로 덧붙이겠습니다.


이세문 연구원, "Tizen Application Inside Out"

http://www.slideshare.net/silverlee2/tizen-application-inside-out


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

http://www.slideshare.net/silverlee2/tizen-uifw-efl


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

http://www.slideshare.net/silverlee2/tizen-window-system


우상정 연구원, "바닥부터 만들어보는 Tizen"

http://www.slideshare.net/again4you/tizen-talk-2016-in-seoul


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

http://www.slideshare.net/silverlee2/how-to-be-a-tizen-committer


이승환 연구원, "Tizen SDK를 이용한 Tizen Platform 개발"

< 준비중 >


발표자료를 참고하시다가 의문이 생기면 Tizen Talks 공식그룹에 문의해주세요.

제 발표자료 중에 궁금하신게 있으면 공식그룹 혹은 여기에 문의하시면 됩니다.

최대한 빠른 시간 안에 궁금증을 해결해드리겠습니다.


다만, 플랫폼 개발자들이기 때문에 회사의 상품화 전략&계획은 모릅니다.

궁금증을 해소해드리고 싶지만 대답 못해드리는 점 양해바랍니다.


이번 행사에서는 동영상 촬영을 하지 않았습니다,

차기 행사에서 촬영하는 것을 적극 고민해보겠습니다.

발표자들도 자기 발표를 반추할 수 있고,

행사에 참석하지 못하신 분들도 참고할 수 있을 만한 자료가 필요하단 생각이 듭니다. :)


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

끝_

  1. 코코콩 2016.02.01 16:57 신고

    감사합니다~ 잘받았습니다

    • 코코콩님~ 안녕하세요~
      발표자료만으로는 모든 내용을 이해하는데 부족하겠지만...
      재미있게 봐주세요~ 히히;

  2. 질문있습니다. 2016.02.03 23:28

    안녕하세요!

    몇가지 질문이 있습니다.

    1. 타이젠 전체소스코드를 다운받고

    빌드 후 결과물로 iso파일을 생성해 낼 수 있을까요!?


    2. 타이젠을 qemu에뮬레이터환경에서 작동시킬수 있는지 궁금합니다.

    • 안녕하세요~
      질문하신 내용은 TT 그룹에서 하시면 더 정확한 답변을 얻으실 수 있습니다.
      https://www.facebook.com/groups/tizentalks/

      제가 아는 내용으로 답변을 드리면,
      1. 전체 소스를 다운로드 받는 것은 가능합니다.
      다만 어느 용도로 사용할 것인지에 따라 필요한 소스를 추려야 합니다.
      모바일인지 웨어러블인지에 따라 필요한 드라이버나 사용하는 오픈소스 그리고 프레임워크가 다릅니다.
      필요한 패키지를 모아 이미지 파일을 만들 수 있습니다.
      https://source.tizen.org/documentation/reference/mic-image-creator
      관련 문서들은 여러가지가 있긴 한데요,
      최근에 직접 이미지를 만들지 않아서요.
      직접 해보시면 약간의 시행착오가 있을 수 있습니다.
      막히는 부분이 있으면 말씀해주세요~

      2. 위에서 만든 이미지 파일을 타이젠 에뮬레이터에 올릴 수 있습니다.
      qemu에서도 올릴 수 있습니다.
      https://wiki.tizen.org/wiki/Emulator
      위의 문서가 좋은 출발점이 될 것으로 생각합니다.

      그럼 좋은 하루 보내세요~!


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


2016년 1월 23일 토요일 오전 10시,

강남에 있는 삼성전자 서초사옥에서 Tizen Talks 행사가 열렸습니다.




현업에서 개발을 하고 있는 개발자들이 나서서 만든 첫번째 행사였는데요,

타이젠 개발자들이 외부 개발자와 호흡할 수 있는 값진 시간이었습니다.

외부 개발자 분들께서 얻어가신 것만큼,

타이젠 개발자들도 많은 고민거리를 얻었습니다.




이번 행사에서는 타이젠 개발자들이 일방적으로 발표하는 형식을 취했지만,

장차 개발자 상호간 자유롭게 소통하며 생각을 공유할 수 있는 장이 되리라 기대합니다.

영역을 세분화하여 그때그때 화두가 되는 이야기를 게릴라 성으로 진행하는 것도 재미있겠네요.



오프닝 중에 뒤에서 촬영한 사진


행사 장소가 협소하지만 무려 90여분께서 참석해주셨습니다.

개인적으로 진심 50명만 와도 대성공이라고 생각했었는데요,

그보다 더 많은 분들이 겨울의 한복판에 서초사옥까지 와주셨습니다.


사내 세미나를 진행할 만한 협소한 장소,

다소 불편한 의자,

그리고 와이파이도 없고,

전원케이블도 모자랐습니다.


저희 개발자들이 저희들 넋두리만 풀어놓을 생각에 미쳐 준비하지 못했습니다.

다음 행사때에는 참여해주시는 분들의 편의를 위해 더욱 고민하겠습니다.

불편을 끝까지 감수하고 자리를 빛내주신 분들께 진심으로 감사드립니다.



오프닝 중인 박영주 연구원님


행사의 시작과 끝은 박영주 연구원님께서 진행해주셨습니다.

이번 행사를 총기획하시며 꿈을 현실로 만들어주셨습니다.

오프닝 세션 중에 박영주 연구원님께서 이 자리를 기념하고 싶다며 객석을 촬영하셨는데요,

그 때 찍은 사진을 입수하였습니다.


박영주 연구원님이 촬영한 사진


오프닝 중에는 대략 60여분이 계셨는데요,

토요일 아침부터 와주셔서 감사합니다.

이 감사한 마음을 어떻게 표현해야 전달될까요?




두 번째 세션은 이세문 연구원께서 발표해주셨습니다.

"Tizen Application Inside Out"을 주제였는데요,

타이젠 플랫폼을 전체적으로 훑어보고 Application 작성에 대한 큰그림을 보여주셨습니다.

발표 후 푸시 등 여러가지 질문이 인상적이었고 답변에서 내공이 느껴졌습니다.




세번째 세션은 정우현 연구원께서 "타이젠 UI앱의 필수, EFL 파헤치기"에 대해 발표하셨습니다.

아들 사진을 예제로 사용하셨는데 굉장히 인상적이었습니다.

개인적으로는 이번에 처음으로 정우현 연구원님의 발표를 들었는데요,

앞으로도 계속 거래(?)하길 희망합니다.




네번째 세션은 문관경 연구원께서 진행하셨습니다.

점심 전 마지막 세션으로 "더 빠르고 더 유연한 윈도우 시스템(Wayland on Tizen 3.0)" 주제로 진행하였는데요,

윈도우 시스템 전체를 훑어보고 나아가 Wayland까지 흥미진진한 이야기가 펼쳐졌습니다.


개인 발표 외에 전체 발표를 유기적으로 연결하기 위해 힘써주셨는데요,

다시 한 번 감사드립니다.




점심 후 첫 세션은 우상정 연구원께서 진행해주셨습니다.

"바닥부터 만들어보는 Tizen"이란 주제로 중간중간 동영상도 보여주셨는데요,

여러 유명한 책의 저자인 만큼 내공이 상당하셨습니다.

이 세션은 차후에 실습세션으로 재탄생하길 희망합니다.




점심 후 두번째 세션은 제가 진행하였습니다.

"타이젠 오픈소스의 커미터가 되어보자!"란 무척이나 재미있는 주제를 맡았는데요;

개인적으로는 참여자분들께서 많이 호응해주셔서 너무 즐거웠습니다.


발표 중간에 3930의 의미를 묻는 문제가 있었는데요,

3월 9일 3.0으로 해석해주신 분,

집에와서도 계속 생각날 정도로 기발한 답변이었습니다.

혹시 이 글을 보시면 댓글 좀 남겨주세요;

우리 친해지죠.

(3930의 의미는 참석자들만 아는 것으로... 비밀 하나씩 갖고 가는걸로... 히히)


그 외에도 활발히 질문에 응해주시고 C++에 대한 답변자료를 주신 서주영님께 감사의 말씀을 전하고 싶습니다.

다음에는 TT 발표자로도 모시고 싶다고 백번쯤 얘기했으니 내년에 그의 발표를 볼 수 있을지도 모릅니다.




마지막 세션은 이승환 연구원께서 진행하셨습니다.

"Tizen SDK를 이용한 Tizen Platform 개발"에 대한 내용이었는데요,

SDK는 외부개발자가 타이젠을 접하는 시작점인 만큼 큰 관심이 모아졌습니다.

제게도 SDK에 대한 문의가 많이 들어왔는데요,

이번 세션과 이번 인연을 통해 궁극적으로 SDK가 더욱 진화하리라 확신합니다.


TT는 작년 9월 외부 발표를 마치고 나서부터 밑그림을 그려나가기 시작하였습니다.

그 와중에 많은 분들께서 아낌없이 조언을 해주셨습니다.

이민석 교수님께서는 현실적이면서 명쾌한 이야기를 해주셨습니다.

그런 조언들로 더 진중하게 고민하며 행사를 치룰 수 있었습니다.

TT를 준비하며 유우영님께서 진행하신 행사에도 갔었는데요,

타이젠 토크의 미래를 상상할 수 있도록 도와주셨습니다.

역시 대단하세요!


지난 두달동안 발표자료를 만들었고,

지난 2~3주 동안 세션간 유기적인 호흡을 위해 수차례 리허설을 진행하였습니다.

(저는 비록 리허설 자리에는 없었지만... 고생하신 점 잘 알고 있습니다)


평소에는 개발자로서의 삶을 살다가,

어제 오랜만에 발표자로서의 하루를 보내셨을 발표자분들 다시 한 번 감사합니다.


매 세션마다 어디서도 듣지못한 내용이 들어 있던데요,

직접 개발하는 사람만이 알 수 있는 디테일,

기발한 아이디어들 모두 너무 좋았습니다.


발표자 외에 행사를 위해 애써주신 분들의 이름을 남깁니다.

이은영 연구원님, 박문경 연구원님, 손보연 연구원님, 이근선 연구원님, 김수필 연구원님, 한준규 연구원님 고생 많으셨습니다.

그리고 임지혜 책임님의 행사진행조율, 조은비 책임님과 UX팀의 포스터는 정말 큰 도움이 되었습니다. 

마지막으로 이효건 부사장님, 김두일 상무님 아낌없는 지원 감사합니다.


TT는 개발자들끼리 개발을 함께 즐길 수 있는 놀이터로 나아가길 희망합니다.


감사합니다.

끝_

  1. 2016.01.24 20:01

    비밀댓글입니다

    • 안녕하세요, Heracy님.
      이렇게 빨리 3930님(?)을 찾을 수 있을지 몰랐습니다.
      멀리서 오셨는데 가치있는 시간이었다고 하셔서 얼마나 다행인지 모릅니다. :)
      차후에 또 만나게 되면 꼭 같이 인사나누고 싶어요.
      얼굴이 얼핏 기억나긴 하지만 꼭 먼저 아는척 해주세요!
      기회가 되면 여러가지 많은 이야기를 나누는 것도 좋겠네요.
      그럼 열심히 공부하시고 남은 방학 알차게 보내세요~

      감사합니다.
      윤진 드림.

  2. 2016.01.25 02:35

    비밀댓글입니다

    • 안녕하세요? 디씨님. 저와 같은 곳에서 일하시나 보군요! 더더 반갑습니다. 소프트웨어 회사는 정말 모든면에서 다르더군요. 요즘 가장 많이 드는 생각은 역시 사람이 제일 중요하다... 입니다. 대체할 수 없더라구요. 방문해주셔서 감사합니다!

  3. 2016.01.25 03:24

    비밀댓글입니다

    • 안녕하세요, Hoyuo님. 행사에 참여해주셔서 감사합니다. 언제나 듣고 싶은 세션 위주로 들으시면 됩니다. 히히. 어떤게 제일 유익하셨는지요? 다음 행사때 참고하여 준비하도록 하겠습니다. 감사합니다~

  4. YOhoho 2016.01.26 22:12

    고생하셨습니다!!!!!!!
    오후에 진행 되었던 플랫폼 관련 섹션이 재밌었네요
    이런 행사 더 자주 해주세요~~~~~~~~~~

    • 안녕하세요~ YOhoho님.
      무언가 재미난 세션이 있었다고 하시니 정말 다행입니다. 히히;
      다음에는 더 재미난 세션을 준비하도록 하겠습니다!
      즐거운 하루 보내세요~


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


타이젠 관련 행사를 진행하면 으레 받는 질문 중에 하나가 '인증'과 관련된 부분입니다.

타이젠 SDK로 소스를 빌드한 후,

패키지를 에뮬 혹은 타겟에 설치하고자 할 때 인증관련 에러를 접하게 되는데요,

알고나면 별거 아니지만 문제를 해결하기까지 시행착오를 겪는 경우가 아주 많지요.

따라서 그런 시행착오를 조금이나마 줄이고자,

타이젠 사이트에 정리되어있는 내용에 살 좀 붙여서 공유하고자 합니다.

한국어 보다 영어가 편리하신 분은 여기에서 참고하셔도 됩니다.

(위의 자료는 오픈소스그룹의 조재민 책임연구원께서 준비한 것으로 추정됩니다.)


SDK와 Z1 간에 개발자/디바이스 인증을 받는 법은 이미 포스팅한바 있습니다.

[Tizen] 타이젠 SDK와 Z1 연결이 되나요? 인증은 필수!

위의 포스팅은 전체적인 인증절차를 살피고자 문제없이 진행된다는 가정하에 쓰여졌었는데요,

처음 인증을 받고자 하는 분들은 위의 포스팅을 참고하시고,

문제가 생겼을 때 본 포스팅으로 도움을 얻으셨으면 좋겠네요.



* 인증을 위한 첫걸음, SDK Extension 설치하기

타이젠 플랫폼이 탑재된 상품은 견고한 보안을 갖추고자 다각도로 노력하고 있습니다.

따라서 Z1, Z3와 같은 모바일 상품이나,

Gear 시리즈와 같은 웨어러블 상품에서는 해킹위협을 원천차단하고자 합니다.

그 첫번째 단추가 검증되지 않은 앱을 설치하지 못하도록 막는 것입니다.

그렇기 때문에 복잡한 인증절차를 거칠 필요가 있습니다.

인증절차를 아직 밟지 않으셨다면 위에서 언급한 포스팅을 참고하여 인증을 받아주세요.

아래 링크를 참고하여 모바일 혹은 웨어러블 Extension을 설치하시면 됩니다.


- Mobile SDK Extension

http://developer.samsung.com/samsung-z


- Wearable SDK Extension

http://developer.samsung.com/technical-doc/view.do?v=T000000248



* Active secure profile is not set.
  Please check the signing configurations at Preferences > Security Profiles.

위의 에러메시지는 저자 & 장치 인증을 받지 않았을때 나타납니다.

Extension SDK를 설치하시고 저자 & 장치 인증을 먼저 받으세요.

그리고 Connection explorer에서 연결된 디바이스를 클릭합니다.

마우스 오른쪽 버튼을 눌러 메뉴를 띄운 후,

"Permit to install applications"를 선택해주세요.

(그러면 device-profile.xml을 /home/developer 디렉토리에 설치가 되죠.)

위의 절차를 정확히 수행했다면 더 이상 이런 에러가 발생하지 않을겁니다.



* 'Launching TizenApp' has encountered a problem.
  Error code: SIGNATURE_INVALID

위의 에러메시지를 자세히 읽어보면 "Check author certificates"라는 부분이 있습니다.

저자인증이 제대로 진행되지 않아서 발생하는 에러겠지요.

이미 인증을 모두 진행하셨더라도 저자 인증을 다시 진행해야합니다.

제대로 인증을 완료한 후 Connection explorer에서 연결된 디바이스를 클릭합니다.

마우스 오른쪽 버튼을 눌러 메뉴를 띄운 후,

"Permit to install applications"를 선택해주세요.

(그러면 device-profile.xml을 /home/developer 디렉토리에 설치가 되죠.)

위의 절차를 정확히 수행했다면 더 이상 이런 에러가 발생하지 않을겁니다.



* 'Launching basic' has encountered a problem.
   Errors occurred during the build.

팝업의 하단을 잘 살펴보면 "Invalid password"라는 문구가 보입니다.

인증서를 등록하셨다면 저자인증 파일을 등록하면서 패스워드를 입력하셨을 겁니다.

바로 그 패스워드가 잘못되었을 경우 위와 같은 에러가 발생합니다.

Preferences > Tizen SDK > Security Profiles

위의 경로로 진입하셔서 Author 인증시 입력한 패스워드를 다시 잘 입력해보세요.

만약 패스워드가 기억이 안나신다면 Author 인증를 새로 해주세요.



* 'Launching basic' has encountered a problem.
  Error occurred while signing the widget.
  Both an author and a first distributor must be required.
  Please check your profile information.

팝업 내용을 살펴보면 저자인증 부분이 잘못된 것을 알 수 있습니다.

저자인증시 입력한 패스워드를 다시 한 번 확인해주세요.

만약 패스워드가 기억이 안나신다면 Author 인증를 새로 해주세요.



* Registration failed.
  Reason: java.lang.Exception: Generic Exception caught.
  Given final block not properly padded.

생소한 자바에러가 보이지만 '등록(Registration)'과 관련된 부분이란 것을 눈치챌 수 있습니다.

만약 Legacy certificate로 저자 & 장치 인증을 하셨다면,

Legacy certificate 파일이 잘못되었을 수 있습니다.

제대로 된 Legacy certificate으로 다시 인증을 받아보시길 권해드립니다.


그게 아니라 저자 & 장치 인증을 각각 받았다면,

저자인증 입력한 패스워드가 잘못되었을 수도 있습니다.

저자인증을 위한 암호를 다시 한 번 입력해보세요.

암호가 기억나지 않는다면 다시 저자인증을 하시길 추천해드립니다.



* There is no certificate for the selected device.
  Please update your certificate.

위의 팝업을 만나면 장치인증 파일에 문제가 있을 수 있습니다.

SDK와 연결된 장치와 장치인증을 받은 장치가 맞는지 확인해보세요.

device-profile.xml 파일을 열어서 <TestDevice>의 DUID와 SDK 연결된 장치의 DUID를 비교하시면 됩니다.

만약 DUID가 다르다면 연결된 장치로 장치인증을 다시 받으셔야 합니다.



* Certificate has not been installed to device yet.
  Please perform 'permit to install applications' of the context menu in Connection Explorer.
  For more information, refer to Help Contents: Certificates.

위의 에러메시지는 저자 & 장치 인증이 제대로 수행되지 않았을때 나타날 수 있습니다.

인증을 하지 않으셨다면,

Extension SDK를 설치하시고 저자 & 장치 인증을 먼저 받으세요.


(인증을 이미 하신 경우 포함) 인증절차를 완료한 후,

Connection explorer에서 연결된 디바이스를 클릭합니다.

마우스 오른쪽 버튼을 눌러 메뉴를 띄운 후,

"Permit to install applications"까지 선택을 해주셔야 합니다.

(그러면 device-profile.xml을 /home/developer 디렉토리에 설치가 되죠.)

위의 절차를 정확히 수행했다면 더 이상 이런 에러가 발생하지 않을겁니다.



* 'Launching nativetest - Debug' has encountered a problem.

  Cannot create package.

패키지를 생성하지 못했다는 경고문구입니다.

문구가 구체적이지 않기 때문에 수정포인트를 잡을 수가 없네요.

이 문구는 certificate가 잘못되었을 확률이 높습니다.

Preferences > Tizen SDK > Security Profile

위의 경로에 진입하여 저자 & 장치 인증부터 다시 진행해보세요.



* 'Launching test - Debug' has encountered a problem.
  Cannot install application.

위의 에러는 패키지를 설치할 때 발생하는 에러입니다.

유감스럽게도 'Error message: Success'라고 되어 있기 때문에 더 난해졌습니다.

에러메시지가 '성공'이라고 하네요. 하핫;

이럴 때 좌절하고 싶으실지는 모르겠지만 조금만 참아주세요.


문구가 난해하기 때문에 딱부러진 해결책도 없습니다.

저자 & 장치인증서를 처음부터 다시 받아보세요.

그리고 Connection explorer에서 연결된 디바이스를 클릭합니다.

마우스 오른쪽 버튼을 눌러 메뉴를 띄운 후,

"Permit to install applications"를 선택해주세요.

(그러면 device-profile.xml을 /home/developer 디렉토리에 설치가 되죠.)

위의 절차를 정확히 수행했다면 더 이상 이런 에러가 발생하지 않을겁니다.


이상으로 인증실패 총정리편을 마치겠습니다.

그 외의 에러팝업도 있을 수 있겠죠?

여기에 언급되어 있지 않은 에러팝업을 보신다면,

tizen.org의 Q&A 게시판에서 도움을 받으시는게 가장 빠른 방법입니다.

그게 부담되신다면 답글을 남겨주세요.

담당자분께 확인하여 답변해드리겠습니다.

(시간이 좀 더 걸리겠지요.)


그럼 좋은 하루 보내세요~

끝_


* References

http://developer.samsung.com/samsung-z

http://developer.samsung.com/technical-doc/view.do?v=T000000248

https://developer.tizen.org/community/tip-tech/trouble-shooting-certification

  1. 하수 2016.07.19 01:06

    안녕하세요 타이젠 연습해보려는 학생입니다!! 간단히 native로 만들고 실행해보는데
    'Launching fakekakaotalk - Debug(1)' has encountered a problem
    The program file specified in the launch configuration des not exist

    이러는데 어떻게 해결해야하나요?? 어려운것도 없엇는데 벌써이러네요....

    • 안녕하세요. 제가 지금 러시아 오지탐험 중이라 직접 확인해볼 수가 없는데요. 심지어 인터넷도 너무 느려서 이 댓글을 확인하는것만 오분 정도 걸렸습니다. 하하. 죄송하지만 페이스북에 Tizen talks 그룹이 운영되고 있는데 거기서 한번 물어보시겠어요?


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


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

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


사실 이전 포스팅에서도 타이젠 개발환경의 핵심툴인 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의 명령어를 살펴봤습니다.

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


끝_

혼자 개발하지 않는 이상,

팀원과 개발 중인 소스를 시시각각 공유해야할 필요가 있습니다.

타인과 데이터를 공유하는 수많은 방법이 있겠지만,

2015년 현재 가장 대중적으로 이용되는 git을 이용하여 소스를 공유하고자 합니다.


안녕하세요, Tizen 개발자 윤진입니다.


Tizen SDK 내에 git repository를 clone하거나 pull 받을 수 있는 기능은 없습니다.

Tizen SDK와 git은 서로 별개의 독립적인 모듈입니다.


따라서,

Tizen SDK에서 작업한 후,

git에서 수정사항을 push 하는 과정을 거쳐줘야 합니다.

vim에서 에디팅을 하고,

커맨드라인에서 git 명령어로 push 하는 것과 마찬가지의 절차입니다.


* 준비물

1. GIT Repository

2. Tizen SDK Project 

   (http://storycompiler.tistory.com/20 샘플앱 생성 참고)


위의 준비물은 미리 준비되어 있다고 가정하겠습니다.

Tizen SDK를 실행하여 git으로 공유하고자 하는 프로젝트를 엽니다.

그리고 File > Export 메뉴를 선택합니다.



Export 팝업창이 아래와 같이 뜹니다.

General > File System 메뉴를 선택합니다.



Next 버튼을 누르면,

SDK에 등록된 모든 프로젝트 리스트가 왼편에 나옵니다.

git repo.로 옮기고자하는 프로젝트를 선택합니다.

오른편 박스에는 해당 프로젝트에서 Export 하고자 하는 메타파일들이 나옵니다.

해당 파일들은 프로젝트를 위한 메타파일들이므로 모두 선택해야합니다.



To directory는 옮기고자 하는 git repo.의 루트 디렉토리 혹은 부모 디렉토리를 선택합니다.

- 루트 디렉토리 : git repo. 밑에 프로젝트명으로 디렉토리가 생성됩니다.

  git repo.에 다수의 프로젝트를 관리하고자 할때 효과적입니다.

  프로젝트 디렉토리 밑에 inc, src, res 와 같은 각종 디렉토리가 생성됩니다.

- 부모 디렉토리 : 프로젝트명과 git repo.명이 동일하게 설정된 경우,

  부모 디렉토리를 선택하면 git repo. 루트디렉토리에 바로 inc, src, res와 같은 디렉토리가 생성됩니다.

  한 git repo.에 하나의 프로젝트를 관리하고자 할때 사용하면 됩니다.


git repo.의 루트 디렉토리를 선택하여,

루트 디렉토리 밑에 프로젝트 디렉토리를 생성하였지만,

프로젝트 디렉토리만 없애고 루트디렉토리를 사용하길 원할 수도 있겠죠?

그럴 경우 프로젝트 디렉토리 안에 있는 모든 파일(숨김 파일 포함)을 루트 디렉토리로 복사하세요.


여기까지 진행하였다면,

git add / commit / push를 하세요.

팀원과 소스를 공유하기 위한 모든 준비가 끝났습니다.


팀원은 위에서 push한 커밋을 pull 받은 후,

Tizen SDK에서 File > Import 메뉴를 선택합니다.



Import 타입을 선택할 수 있는 팝업메뉴가 나타납니다.

General > Existing Projects into Workspace

위의 메뉴에 진입합니다.



Next 버튼을 눌러 다음으로 진행합니다.

Select root directory 라디오 버튼을 선택합니다.

그리고, Import 하고자 하는 git repo.의 루트 디렉토리를 기입하세요.



Finish 버튼을 누르면,

SDK 좌측에 좀 전에 Import한 프로젝트가 있는 것을 확인할 수 있습니다.


이제 SDK에서 코드를 마음껏 수정하고,

git 명령어를 통해 수정사항을 관리하면 됩니다.


팀원들과 합심하여 앱개발을 시작해보세요.


끝_

애초에 타이젠 앱을 짜려고 마음을 먹은 것은,

5월 5일 어린이날,

초딩러시를 피하기 위해 두문불출할 때였습니다.

(http://storycompiler.tistory.com/14)


그날 이후,

SDK를 설치하고(http://storycompiler.tistory.com/15),

타이젠 오픈소스를 다운로드 받고(http://storycompiler.tistory.com/16),

Z1을 구해 개발자+시료인증(http://storycompiler.tistory.com/20)까지 하니,

5월 25일 부처님 오신 날이 되었네요.


20일이 지나는 동안,

본격적인 코딩은 커녕 앱 아키텍쳐를 고민해보지도 않았다.

갈 길이 멀어요.


안녕하세요, Tizen 개발자 윤진입니다.


그렇다고 오늘 아키텍쳐를 고민하거나 코딩을 하겠다는 것은 아닙니다.

오늘은 템플릿 소스를 분석하여 타이젠 앱 디렉토리 구조를 살펴보겠습니다.


SDK를 런칭하여 템플릿 프로젝트를 만들어보죠.

File > New > Tizen Native Project

위의 메뉴로 진입하여 Native Project를 생성해보겠습니다.



Template > MOBILE-2.3 > UI Application > Basic UI Application (EDC)

차례대로 선택하여 기본앱을 위한 템플릿을 선택합니다.

하단의 Project name은 원하는 이름으로 지정합니다.

Package name은 Project name에 "org.tizen." 접두사가 붙습니다.

하지만, 원하는 대로 수정할 수 있습니다.

Finish를 눌러 프로젝트를 생성해보세요.



SDK 상에는 위의 디렉토리와 파일이 자동으로 생성됩니다.

앱의 root 디렉토리에 5개의 서브디렉토리와 1개의 메타파일이 생겼습니다.

위에 누락된 data 디렉토리를 추가하여 간단하게 설명하면 아래와 같습니다.



폴더명은 축약어와 풀네임을 혼용하였습니다.

inc, res, src, lib은 축약어로,

data와 shared는 풀네임으로 디렉토리 이름을 정했습니다.

최근 네이밍 트랜드로는 풀네임이 대세이지만,

inc, res, src, lib은 축약어로 오랜 기간 사랑을 받았기 때문에,

(오랜 고민과 토의 끝에) 축약어와 풀네임을 혼용하기로 결정된 것으로 보이네요.


- inc에는 앱 내부에서 정의하고 사용할 함수의 선언이 담긴 헤더파일을 넣습니다.

  대규모 프로젝트인 경우 inc 내에 디렉토리가 추가될 수 있습니다.

  디렉토리 내에 헤더파일이 각각의 의미에 맞게 배치되겠죠.


- src에는 SDK를 통하여 빌드될 소스파일들이 채워집니다.

  소스 디렉토리 내부에도 트리구조의 디렉토리를 추가할 수 있습니다.

  소스파일은 각각의 의미에 맞게 디렉토리에 배치합니다.


- res에는 앱 내에서만 사용할 리소스파일, edc 혹은 이미지 파일들을 넣습니다.

  edc 파일은 타이젠의 네이티브 UIFW인 EFL에서 사용하는 레이아웃을 위한 소스파일입니다.

  edc 파일은 빌드타입에 파싱되어 이미지파일까지 머금은 edj 파일로 변환이 됩니다.

  edj 파일은 c 파일 내부에서 edje_object prefix의 함수군으로 통제할 수 있습니다.

  따라서 기본적으로 생성되는 디렉토리 이름이 res/edje 입니다.


- lib은 빌드가 완료된 라이브러리 파일 자체가 놓이는 곳입니다.

  SDK로 빌드할 수 없어 외부에서 빌드했거나,

  소스없이 라이브러리만 사용할 수 있는 경우 lib 디렉토리에 라이브러리 파일을 위치시키죠.


- data는 앱내에서 읽고 쓰기가 가능한 xml이나 db파일을 저장하는 곳입니다.

  앱에서 사용하는 데이터 파일들을 초기화하기 위한 목적으로 사용합니다.


- shared는 아이콘처럼 다른 앱에서 접근할 수 있는 공간입니다.

  타이젠의 앱디렉토리 정책상 다른 앱의 디렉토리에는 앱권한의 프로세스가 접근할 수 없습니다.

  다만 역시 앱권한의 홈/메뉴/작업관리자 등의 앱에서 앱아이콘을 보여주어야 하기 때문에,

  앱 내의 shared 디렉토리에 위치한 아이콘에는 어느 앱이나 접근할 수 있게 허용하였습니다.


앱 소스 디렉토리 구조에는 군더더기가 없습니다.

SDK로 빌드를 진행하면,

패키지도 별도의 디렉토리 구조를 갖게 됩니다.

패키지 디렉토리 구조도 차후에 다시 설명할 기회가 있을 것입니다.


2015년에도 '월'요일에 공휴일을 만들어주신 부처님의 한 수에 감사드리며 포스팅을 끝마칩니다.


끝_


* References

https://developer.tizen.org/dev-guide/2.2.1/org.tizen.native.appprogramming/html/app_dev_process/project_files_and_folders.htm


일개 개발자로서 낯선 플랫폼에 한걸음 다가가기 위해서는,

플랫폼의 철학과 의지를 엿볼 수 있는 SDK를 설치해보아야 합니다.

개발자에게 제공되는 함수를 하나씩 음미하는 것으로,

플랫폼을 이끌어나가는 아키텍트의 판단과 프로그래머의 고민을 엿볼 수 있습니다.

타이젠을 만들고 있는 사람들의 가장 중요한 가치는 무엇일까요.

이 모든 궁금증을 풀기 이전에 오늘은 SDK부터 설치해보고자 합니다.


안녕하세요, Tizen 개발자 윤진입니다.


타이젠 SDK를 우분투에 설치하시려는 분은 아래 포스팅을 참고하세요.

[Tizen] 타이젠 SDK 우분투에 설치하기


타이젠 SDK는 공식 홈페이지(https://www.tizen.org)에서 다운로드 받을 수 있습니다.

위에 걸어놓은 링크를 통해 타이젠 홈페이지에 접속해보세요.


공식홈페이지 시작화면 하단을 보면,

"Download the SDK" 버튼을 찾을 수 있습니다.

현재(2015. 5월)까지 공개된 최신버전은 Tizen 2.3입니다.

버튼을 눌러 Tizen SDK 다운로드를 위한 페이지에 들어가보세요.




Tizen SDK로 개발할 수 있는 앱 타입은,

- Web application

- Native application

위의 두 가지라는 사실을 확인할 수 있습니다.

물론, 위의 두 가지 방식이 혼합된 Hybrid type의 앱도 개발할 수 있습니다.


그리고 여느 플랫폼이 제공하는 SDK처럼,

- 코드를 작성하는 Editor

- 컴파일하도록 도와주는 Toolchain

- 개발한 앱을 가상의 환경에서 돌려볼 수 있는 Emulator

- 개발자를 위한 샘플코드와 도큐먼트

위의 컴포넌트들로 구성되어 있습니다.


Tizen SDK는 윈도우, 우분투, 맥OS X에서 사용할 수 있습니다.

여기서는 윈도우 PC에 설치하도록 해보겠습니다.

(우분투나 맥OS X에서도 설치과정은 동일합니다)


Download Tizen 2.3 Rev2 SDK

위의 메뉴에 진입하면 mobile / wearable 앱을 개발할 수 있는 SDK를 설치할 수 있습니다.


Download Tizen SDK for Wearable 1.0.0

위의 버튼을 누르면 wearable 앱을 개발하기 위한 SDK를 설치할 수 있습니다.


여기서는 Tizen 2.3 Revision 2 SDK를 받아,

mobile & wearable 앱을 개발하기 위한 환경을 갖추고자 합니다.



Tizen 2.3 Rev2 SDK 페이지에는,

- Ubuntu 32 bits

- Ubuntu 64 bits

- Windows 7 32 bits

- Windows 7 64 bits

- Mac OS X(Intel)

- Mac OS X(Intel, CLI)

위의 운영체제에서 돌아가는 버전의 SDK를 다운로드 받게 되어있습니다.

자신에게 맞는 운영체제를 선택합니다.


우분투 환경에서는 설치하기 전에 다운로드 받은 파일에 실행권한을 추가해야합니다.

$ chmod +x tizen-sdk_2.3.63_ubuntu-32.bin
$ ./tizen-sdk_2.3.63_ubuntu-32.bin


다운로드 받은 파일을 설치하려고 하면,



위와 같은 팝업이 나타날 수도 있습니다.

위의 팝업은 Java runtime environment(JRE) version 6 이상 버전을 먼저 설치해야 된다는 알림입니다.

JRE를 설치해야 하는 이유는,

Tizen SDK에서 (자바개발자에게 너무나도 친숙한) Eclipse를 사용하기 때문입니다.

Eclipse가 Java로 개발되었기 때문에,

(아래 그림의 Written in Java 참조, wikipedia에서 더 자세한 내용을 볼 수 있습니다.)

Eclipse를 돌리기 위해서는 우선적으로 Java가 돌아갈 수 있는 환경을 구축해주어야 합니다.



이러한 불편함은 Tizen 만의 문제는 아니고,

Eclipse를 설치하고자 하는 모든 플랫폼/환경에서는 항상 발생하는 일입니다.


윈도우에서 JRE를 다운로드 받으려면 오라클 자바 페이지에 들어가야 합니다.

사이트에 접속하여 자신의 환경에 부합하는 Java SE Development Kit을 다운로드 받습니다.

여기서는,

Java SE Development Kit 8u45의 Windows x64(jdk-8u45-windows-x64.exe)를 다운로드 받습니다.

다운로드를 받고 설치를 시작해보세요.


Java SE Development Kit 8 Update 45를 설치한다는 문구를 확인할 수 있습니다.

Next를 눌러 다음으로 넘어갑니다.



그리고 설치를 시작합니다.

설치과정에 어려운 점은 전혀 없습니다.

설치를 완료한 후,

다시 tizen-sdk_2.3.63_windows_64.exe로 설치를 시도합니다.

그러면, 또 이상한 팝업이 하나 나옵니다.


위의 팝업은 자바를 설치한 직후,

자바를 사용하기 위한 환경변수를 설정해주지 않아서 나타났습니다.

환경변수(PATH)를 설정해주는 방법은 여기를 참고하면 됩니다.


윈도우 7의 경우는 아래처럼 하면 됩니다.

  1. 시작 메뉴에서 컴퓨터를 선택합니다.
  2. 상황에 맞는 메뉴에서 시스템 속성을 선택합니다.
  3. 고급 시스템 설정 > 고급 탭을 누릅니다.
  4. 시스템 변수 아래에서 환경 변수를 누른 다음 PATH를 찾아 누릅니다.
  5. 편집 창에서 PATH 값에 클래스 위치를 추가하여 PATH를 수정합니다. PATH 항목이 없으면 새 변수를 추가하고 이름으로 PATH를, 값으로 클래스 위치를 추가하도록 선택할 수도 있습니다.
  6. 명령 프롬프트 창을 다시 열고 Java 코드를 실행합니다

여기서는 PATH에 아래와 같은 경로를 추가해주었습니다.

C:\Program Files (x86)\IDM Computer Solutions\UltraEdit\;C:\Program Files\Java\jdk1.8.0_45\bin


이 단계까지 마쳤으면,

다시 tizen-sdk_2.3.63_windows_64.exe로 설치를 해봅니다.



아직 설치한 SDK가 없으므로 Uninstall 버튼은 비활성화되어있습니다.

Advanced 버튼을 누르면,

패키지를 다운로드 받을 수 있는 서버를 변경하거나 SDK Image로 직접 설치할 수 있는 메뉴가 나옵니다.

여기서는 따로 설정하지 않고 그냥 Install 버튼을 누르도록 합니다.



Mobile profile이나 Wearable profile을 선택할 수 있는 화면이 나옵니다.

여기서는 Custom에 아래처럼 진입하여 Mobile / Wearable / Other tools를 모두 설치합니다.

하지만, Mobile이나 Wearable만 개발하고자 한다면,

하나의 profile만 선택하여 인스톨해도 무방합니다.



Next를 눌러 다음 화면에 진입합니자.

소프트웨어 라이센스에 대한 설명이 나옵니다.



자세히 읽어보고...?

I agree를 눌러 다음으로 진행합니다.

그러면 무려 2.5기가 이상을 다운로드 받고 설치한다는 메시지가 나옵니다.



사이즈가 사이즈이니 만큼,

인스톨하는데 상당한 시간이 소요될 예정입니다.


인스톨 버튼을 눌러보세요.

인텔 CPU를 사용하는 컴퓨터에서는,

Intel Hardware Accelerated Execution Manager(HAXM)를 설치하라는 메시지가 나옵니다.

HAXM을 설치하면, 에뮬레이터를 보다 빠르게 구동할 수 있는 환경이 갖춰집니다.



HAXM 또한 Tizen만의 사항은 아니고,

다른 플랫폼 - 안드로이드 SDK에서도 에뮬레이터 성능 확보를 위해 설치를 제안합니다.


HAXM까지 설치를 마치면,

이제 본격적인 다운로드 & 인스톨의 과정을 거칩니다.



처음에는 멍하니 모니터를 바라보며 %가 올라가는 것을 바라보고 있다가,

그간 밀린 쓰레기 분리수거를 위해 1층에 내려갔다 왔습니다.

그래도 여전히 인스톨 중이네요.


한참을 기다리니 드디어 인스톨이 완료되었습니다.



자, 이제 정말 설치완료.


설치과정은 타 플랫폼과 대동소이해보였고,

특별히 어려운 점은 없었습니다.


자, 이제 SDK를 사용해보겠습니다.

일단 잠 좀 자고,

다음 시간에 계속 해보겠습니다.


끝_


* 타이젠 관련 블로깅

"Tizen Store 182개국 오픈"에 대한 각지 반응

"Tizen Store에 앱을 팔아보겠다는 의지" Tizen Store 계정 만들기

Tizen SDK 설치하기, "생각보다 쉽다"



+ Recent posts