사실 설치형 블로그로 별도의 가상서버에서 운영하고자 하는 계획은 예전부터 있었지만.. 


티스토리의 매력때문에 이동하지 못하고있었습니다. 


해당 블로그에서 이제 http://blog.kazikai.net/ 로 이전 했습니다. 

소소한 개발 이야기를 올릴 생각입니다. 


'포스팅' 카테고리의 다른 글

블로그 이전  (0) 2015.11.24
facebook이 native app으로 전환 하게 된 이유?  (0) 2012.10.08
synergy 설치  (0) 2012.09.13
국가스텐-비트리올  (0) 2010.10.22
삼성 전자 , 갤럭시 Q 연말 출시 예정!!  (0) 2010.06.21
커피 종류에 따른 알기 쉬운 그림  (0) 2010.05.17
by kazikai kazikai 2015.11.24 22:23



최근에 Facebook 이 iOS 에서 고수하던 Application 을 Hybrid App 에서 Native App 으로 변경 하였다.

아래는 그 이유에 대해 분석해본 자료다.  팀장님께 분석하여 보낸 메일을 내 블로그에 포스팅 하기 쉽게 바꿨다. 


1. Web 기술로 ( HTML5 )  App 개발시에 성능 문제가 존재 하는지?

현재 HTML5  에서는 Webapp 개발시 성능 문제를 해결 하고자 로컬에 파일을 미리 저장해놓는  여러가지 기술을 사용 하고 있음 

그중 localStorage /applicationCache 와 같은 기능 들도 존재 한다. 이런 기능들은 Web App 을 Offline 에서도 잘 활용 하수 있게 지원 해주는 HTML5 의 Offline application 관련 기능들이다.  

(여기서 localStorage는 객체형태의 공간에 해당 DB를 저장해놓고 사용 하는 방법이며 

ApplicationCache 의 경우는 미리 지정해놓은 파일들은 처음 다운 받은 후에 재접속 후에 해당 파일을 네트워크에서 다시 전송 받지 않고 활용 하는 기법 . )

해당 기술은 Google의 경우 Gmail 에서 이미 많이 사용 중이며 application  형태로 제작된 web contents들은 모두 이런 기술을 사용 하고 있다. . 


2. 그렇다면 Facebook 은  그런 성능 문제를 개선 하기 위해  web  기술을 사용 하였는지??

daum의 윤석찬 팀장의 블로그에서  http://blog.creation.net/531  밝혔듯이  Facebook의 경우는 web app에 이런 기술을 사용 하고 있지 않는다고 나와있다.

해당 분석 소스는 hybrid app을 직접  살펴본것이 아니라 hybrid app의 모태가 되는 m.facebook.com 의 소스를 살펴 본것으로 확인 되며 해당 소스를 분석 해본결과 

위에 말한  application 형태로 제작될때 활용될 기술들이 하나도 사용 되어있지 않았다고 한다.( 정말??/)  즉 Facebook의 HTML5 는 HTML5 를 사용 하지 않았다고 표현 하고 있다. 


3. 그렇다면 왜 Native App 으로 변경을 하였는지? 

위 블로그에서 확인해보면 이유가 나와있지만 본인의 생각은 다르다. 현재 facebook의 공식 입장은 단 2가지 입니다. Speed 와 efficiency  라고 한다. 

현재 native app 으로 업데이트 하면서 속도는 확실히 좋아졌고 native  app이 가지고 있는 부드러운  UI/UX로 조금더 좋은 평가를 받고 있는데  facebook이  native app으로 전환하면서 얻었다고 하는 공식적인  Speed 의 장점 3가지가 다음과 같다.  


Speed의 장점

1. 랙이 없어짐

2. 스크롤링이 더 부드러워짐 

3. 사진이 즉시 업로드 된다. 


Speed가 Web service 특성상 얼마나 중요한지에 대한 자료는 얼마전 NHN 에서 열렸던  Deview 에서 잘 언급 되고있는데  해당 컨퍼런스에서 웹서비스 빠를수록 좋다 : NHN 김일환

섹션에서 발표된 내용을 살펴 보자면 웹 서비스가 1초 느려지면 매출이 3% 떨어진다는 MicroSoft의 통계도 있으며 웹서비스는 0.1초라도 빠를수록 좋다고 나와있다. 

(네이버 기준으로 로딩시간 2,3 초 를 기준으로 1인당 PV 가 낮아지기 시작 해 5초 이상 걸리면 PV가 절반 이하로 떨어진다고 하는데 얼마나 웹에서 속도가 중요한지 알 수 있다. )  


Efficiency 의 장점 

효율성에 있어서는  현재 iOS 에서 Native 개발시에 Xcode   라는  개발툴을 사용 합니다. 이 개발툴의 경우 개발도구가 상당히 잘되어있어 개발 할경우 HTML5 개발 보다 훨씬 용이하게 

개발을 할 수 있었다고 한다.  예를들어 Scrolling 을 smooth  하게 표현 하기 위해서는 HTML5 에서는 숙련된 개발자가 필요 하지만  iOS 에서 Native  로 개발 할 경우 이런 고민을 할 필요가 없다고 한다. 


그렇다면 HTML5 로도 위의 개발 과정을 충분히 가능 한데 왜 Native로 굳이  Rebuild하였는지 ? 

현재 HTML5 개발의 경우  safari 도 여러가지 개발자 도구를 지원 하고 있고 ( 원격 디버깅,)( UA Code 변경) 구글의  Chrome도 여러가지 개발도구를 지원 하고있다. 

또한 속도 문제 또한 HTML5 의 모든 스펙을 충분히 동원 하면 Native 대비 어느정도 성능은 얻을 수 있을것이라고 한다. 


그렇다면 과연 무슨 이유 일까? 나는 facebook과 apple 간에 모종의 거래가 있지 않을까 예상해본다. 

관련 징후는 다음과 같다. 


  1. iOS6.0으로 업데이트 되면서 facebook이 default 가 되었음 
  2. facebook이 작년 부터 활발히 진행하던  spartan project  가 아무런 언급이없음..(사라진 프로젝트..) 
  3. 또한 spartan project 시에 활발히 개발 되었던 web app 들이 현재 Facebook appcenter 에서 검색이 불가능 
  4. facebook에서 검색 한 app의 경우 모두 애플 의 Appstore로 이동 하였고 이전에는  꽤 완성도 있는 web app도 올라왔었는데 이  app 또한  native app으로 대체 


해당 주장을 좀더 뒷받침 해줄 기사가 있어 링크 한다. 


http://www.readwriteweb.com/mobile/2012/08/how-facebook-ditched-the-mobile-web-went-native-with-its-new-ios-app.php



아래는 facebook의 개발자가 밝힌 HTML5 개발 의 문제점 이다. facebook 의 메일링 리스트를 번역 하였다. 


1.  Tooling / Developer APIs 

모바일 브라우저에서  개발에 적합한 툴이 없다.  단말에서 issue 발생시  dig down 하는것이  매우 어렵다 . 

그중 가장 큰 문제는 memory  에 관련 된 것들이였음 ,  드물게  컨텐츠 사이즈가 하드웨어의 허용 범위를 초과하였을 경우 

오류가 발생할경우  해당 문제의 원인을 정확히 파악 하기 힘들었음 : GPU  버퍼가 초과 되었는지  

  • 그렇다면 무엇이 없었는지 ? 
    • 개발툴은 원격으로 쉽게 접근 가능해야 함 
  • Down memory lane : 
    • heap size
    • object count 
    • GC cycles 
    • GPU buffer size 
    • resource limits 
  • 링크드인의 경우  개발 할때 UA String 을 바꾸는 방법으로 개발 하는방법을 사용중
  • FPS
    • Testing 하는데  FPS를 측정 하는 것은 필수임
    • 페이지 안에 스크롤링을 얼만큼 포함 할것인지 아니면 infinite scrolling 을 적용 할것인지 여부는 H/W 레벨에 따라 결정 되어야 함   

2. Scrolling Performance

  • 스크롤링 성능은 가장 중요한 이슈중에 하나로 현재 W3C Web Performace WG 에서 공유 되고 있는 문제임 
    전형적으로 뉴스피드 / 타임라인 등에서는 Infinite Scrolling 을 사용 하고 있는데 많은 양의  컨텐츠가  로딩 될 수 밖에 없음 
    현실적으로 자바스크립트를 사용 해서 스크롤링의 모 든것을 해결 하였는데 충분히 빨라지지 않았음 
  • QOI 이슈들 
    • 일치하지 않는 프레임 레이트 들 / UI 쓰레드 부족 
    • 이미지와 컨텐츠 크기로 인한 GPU 버퍼 소진 
    • Native에서 사용 하는  스크롤링 ( 가속 스크롤링을 말하는듯 ) 은 각 OS에 최적화 되어있어 서로 다른 느낌을 준다. 하지만  스크롤링을 JS  로 개발하면 한개의 느낌만 줌 
    • 안드로이드 기기에서 터치 이벤트  성능 문제 존재  ( 지연, 충분하지 못한 이벤트 ) ( JS  로는 너무 힘들다 ) 
  • Requirements 
    • 스크롤링은 반드시 빠르고 부드러워야 함
    • 여러개의 이벤트들이  트리거 되어야 함 , 복잡하고 중첩된 유저 스크롤이  컨텐츠에 반영되어야 함 
    • 무조건 백그라운드에서 계산 및 I/O 가 허용 되어야함 
    • 스크롤링 동안에 메인 컨텐츠에 새로운 컨텐츠가 추가 되는것이 허용 되어야함 
    • 많은 양의 컨텐츠 및 이미지가 있어도 안정적으로 스크롤링이 동작 해야 함 
    • 스크롤링 동안에 Touch 이벤트를 캐취 할수 있어야 함
  • New API Suggetstions 
    • Browser 에서 스크롤링 할때 표준 방법 확립 
    • onScroll 이벤트가 스크롤링 할때도  trigger 되어야함
    • Structured cloning of rootless document fragments : (shadow dom이랑 비슷한 놈)
    • Pull to refresh 를 구현하기 쉬운 방법  


3. GPU

  • 현재 GPU  는 black box 인 상태 : 하드웨어 가속을 사용 하는데  디바이스가 소모하는 컨텐츠의 양 및, GPU 버퍼 사이즈  등 을 알수가 없음 

4. Other 

  • 더 나은 터치 트래킹 지원, ( 특히 안드로이드에서 ) 
  • 부드러운 Animation  이 항상 보장되어야 함 
  • 더 좋은 caching 
  • appCache는 사용하기 너무 어려움 

'포스팅' 카테고리의 다른 글

블로그 이전  (0) 2015.11.24
facebook이 native app으로 전환 하게 된 이유?  (0) 2012.10.08
synergy 설치  (0) 2012.09.13
국가스텐-비트리올  (0) 2010.10.22
삼성 전자 , 갤럭시 Q 연말 출시 예정!!  (0) 2010.06.21
커피 종류에 따른 알기 쉬운 그림  (0) 2010.05.17
by kazikai kazikai 2012.10.08 17:28

최근 시너지를 사용 하면서 여러 가지 에러가 많이 났다. 


synergy error : FATAL:Init failed: system setting not enabled: "Enabled access for assistive device "


이 해결은 




시스템 환경설정 > 손쉬운 사용 > 키보드 > 보조 장비에 대한 접근 활성화 체크


System Preferences > Universal Access > Keyboard > Check "Enable access for assistive devices"



위 2가지를 해결 하면 된다~~!!

대박~ 시너지 

'포스팅' 카테고리의 다른 글

블로그 이전  (0) 2015.11.24
facebook이 native app으로 전환 하게 된 이유?  (0) 2012.10.08
synergy 설치  (0) 2012.09.13
국가스텐-비트리올  (0) 2010.10.22
삼성 전자 , 갤럭시 Q 연말 출시 예정!!  (0) 2010.06.21
커피 종류에 따른 알기 쉬운 그림  (0) 2010.05.17
by kazikai kazikai 2012.09.13 23:40


우왕!! 

진짜 좋다!! ㅋㅋㅋ

'포스팅' 카테고리의 다른 글

facebook이 native app으로 전환 하게 된 이유?  (0) 2012.10.08
synergy 설치  (0) 2012.09.13
국가스텐-비트리올  (0) 2010.10.22
삼성 전자 , 갤럭시 Q 연말 출시 예정!!  (0) 2010.06.21
커피 종류에 따른 알기 쉬운 그림  (0) 2010.05.17
윈도우 7 구매!!  (1) 2010.02.22
by kazikai kazikai 2010.10.22 14:44
삼성 전자에서 

연말에 RIM의 블랙 베리를 타겟으로 갤럭시 Q를 출시 한다고 한다

아이폰4의 대항마로 갤럭시 S를 출시 하듯이 

라인업을 다양하게 하여 RIM사의 블랙 베리의 대항마로 출시 하는것 같다. 

개인적으로 갤럭시 S보다 이게 끌린다!! 


'포스팅' 카테고리의 다른 글

synergy 설치  (0) 2012.09.13
국가스텐-비트리올  (0) 2010.10.22
삼성 전자 , 갤럭시 Q 연말 출시 예정!!  (0) 2010.06.21
커피 종류에 따른 알기 쉬운 그림  (0) 2010.05.17
윈도우 7 구매!!  (1) 2010.02.22
ubuntu에서 gstreamer 컴파일 과 설치  (0) 2010.02.18
by kazikai kazikai 2010.06.21 13:34
커피를 무진장 좋아하는 나로썬 

가끔 커피 명칭이 헷갈리때가 있다

아메리카노, 꼰빠냐 , 에스프레소 , 등등은 가장 쉬운거니 알지만

이것저것 헷갈린다. 

알기쉬운 그림이 있어서 

찾아서 올린다 

출처는 

기억이 안난다 -_- 
by kazikai kazikai 2010.05.17 20:02
아침에 연구실에와서 뉴스 기사를 보다가 

윈도우7도 정품 아닐 경우 바탕화면 검게 변한다




라는 기사를 보게 되었다.

물론 XP도 그런 패치가 MS에서 내놓은 경우도 있었지만 

계속 추가 업데이트로 비인증 사용자를 잡는 다는 기사에 


윈도우 7 대학생 패키지를 질렀다.!!

뭐 개인적으로 소장 하는걸 무척이나 좋아하는 지라 

DVD 백업본 까지 

다운로드 비용: (39900원)
백업본: (12200원)
세금: (3990원) (젠장..세금)
총 : 56090원  이 들었다. 



OS 란것을 처음 사봐서 (물론 그동안 쓰고있는 OS는 노트북이나 PC에 포함된 라이센스

뭔가 뿌듯하기도 하다

(RTM버전으로 인증 크랙을 사용 해도 되지만 이제 그런게 좀 귀찮다 -_- )

배송이 오면 사진 찍어서 올려야지 ~ ㅎ

by kazikai kazikai 2010.02.22 13:24
  • kazikai kazikai 2010.02.23 00:54 신고 ADDR EDIT/DEL REPLY

    참고로 32비트 버전도 사용 가능
    단 1pc 1라이센스 밖에 인증이 안되니 주의 해서 사용해야 할것

삼성 과제로 인한 

adaptive http streaming 

client 단의 플레이어를  mplayer, vlc플레이어 등등 여러가지를 고려했지만

최종적으로는 gstreamer로 결정 하게 되었다.

gstreamer (http://www.gstreamer.net/) 란  단순한 동영상 플레이어가 아닌 여러가지

플러그인이라는 프레임 워크들을 이용 ( 이것들에 코덱이나 다양한 기능들이 포함 되어있다.)

하는 즉 Multimedia Application 을 만들수 있는 환경을 제공하는 프레임 워크라고 한다.

윈도우에서 컴파일을 해보려고 했지만.. 윈도우 버전은 공개가 제한되어있어서

(리눅스)우분투 9.10 버전에서 컴파일을 해서 간단한 http 웹서버를 통한 플레이를 시도 해보았다.

일단 리눅스로 컴파일 하는것 조차 어려웠고 여러가지 컴파일 하는데 하루종일 걸렸다!!..

무작정 컴파일을 시도했다가.. 부딫힌 각종 에러로 인해 

http://blog.daum.net/basetechnology/6998023 ← 다음 블로그를 참조 해서 

컴파일을 시도 했다. (우분투의 경우에  조금씩 추가 되어야 할 부분은 있는것 같다)






밑에는 최종 테스트 샷 ↓

by kazikai kazikai 2010.02.18 11:05
연구실 진현이가 MVC가 필요 하다고 교수님께 요청

교수님이 나한테 다시 알아 보라고 함 

이런식으로 

JMVM을 찾아 보게 되었다.

찾아 본 결과 생각 보다는 어렵지 않게 찾았다


 



아래는 결과 화면 ↓

자 그럼 이제 아까 지정한 디렉토리에 파일이 다운 받아 진것을 확인 할수 있다. 

JSVM을 얻으려면 Modulename에 jsvm또는 jsvm_red 를 입력 하면된다. 
(참고로 jsvm_red는 jsvm reduce버전이다.)

암튼 생각 보다 빨리 끝났다



향후에는  ffmpeg 소스 얻는 방법도 정리 해야겠다. 
by kazikai kazikai 2010.02.03 10:52

그렇게 컴퓨터에 관심이 조금이라도 있는 사람들이 기대 하고 극찬 하던 

윈도우 7 이 발매 되었다. 

사진은 윈도우 7 내 바탕 화면 캡쳐 ↓


사실 난 대학원에 진학 하고 나서 컴퓨터 잡지도 자주 못 사보고 컴퓨터 관련 사이트도 많이 안들어가봐서

윈도우 7을 처음 접해본 상태였다.(사실 예전에 비스타가 나오자 마자 기대 엄청 하고 일주일 썼다가

호환성 문제&속도&각종 에러 때문에 윈도우 7 도 비슷하겠지.. 라는 생각을 하고있었다.)

그러다가 랩실 태영이형이 설치 하는 모습에 나도 덩달아 내 노트북에 윈도우 7을 설치 하게 되었다.

일단 설치 하는 과정은 아주 쉬웠다.

1. 일단 노트북 드라이버인데도 많은 부분을 안잡아줘도 알아서 잡아 줬고

2.무선랜 관련 인터페이스가 정말 편하게 바뀌었다.

3.그래픽 또한 정말 화려함

4.속도가 정말 빠르다. xp보다 빠른 경우도 종종 있는것 같다(체감상)

5. 설치 과정또한 너무 빠르다.

이렇게 총 장점만 있는 것 같다. (물론 단점도 있겠지만 지금 그점은 못느끼겠다.)

지금 현재 설치 한 버전은 RTM 버전이지만 

조만간 정품을 구입해  데탑해 64 비트를 설치 해봐야겠다!!

OS에 이렇게 컴퓨터 분위기가 바뀔줄은 몰랐다. ㅎ


by kazikai kazikai 2009.10.29 23:59
| 1 2 |