반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형

이번주 튜토리얼은 Performance Optimizations 에 관한 내용입니다.

개발 할 때 항상 중요하게 생각해야 할 내용들이죠.


Coronasdk 에서 제공하는 글에서 여러번 강조된 내용이기도 합니다.

계속 강조하는 이유는 그만큼 중요하기 때문이겠죠.


10가지의 팁을 제공하고 있는데요.

시간 나는대로 정리해서 올릴께요.


몇번에 나눠서 글이 정리될지 모르겠네요.

제가 참여하는 프로젝트가 이번달 말로 끝나거든요.

다른 position 을 찾아봐야 되서 그렇게 여유가 없네요.



Posted on . Written by




오늘의 튜토리얼은 퍼포먼스 최적화와 관련된 내용입니다. 모든 개발자들이 항상 신경써야 할 주제죠. 이 중 어떤 팁들은 뻔한 내용일 수 있습니다. 프로그래밍을 하면서 코드를 최적화 하는 작업은 소요되는 시간그로 인해 얻는 이익을 저울질 해서 처리해야 할 문제 입니다.

어떤 최적화가 구식 디바이스에서 2%의 퍼포먼스 개선을 불러올 수 있는데 그 일을 하려면 50시간을 투자해야 한다면 그 작업을 해야 될 필요가 없을 수도 있습니다. 그리고 어떤 최적화는 10시간 정도 소요되는데 아주 많은 디바이스들에서 큰 성능 개선이 일어날 수 있다면 그 최적화는 10시간을 들이더라도 반드시 해야 되겠죠.

새로운 프로젝트들을 시작할 때 퍼포먼스가 크게 개선되고 앱 코드와 동작이 깨끗해지고 그래서 모든 디바이스들에서 user experience 가 아주 개선 된다면 그런 결과를 유도할 수 있는 performance trick들은 많이 사용하면 사용할 수록 좋을 겁니다.



“Time-Critical” Routines


대부분의 performance trick 들은 주로 “time-critical” routines 들을 위한 방법들이 제공될 겁니다. 앱이 버벅거려서 유저들이 사용하는데 불편을 느끼거나 하면 안되니까요. 예를 들어 액션게임을 하는데 new scene 이 로딩되는 시간이 너무 길거나 하면 불편해서 유저들이 잘 사용하지 않을 겁니다.


1. Localize, Localize


이것은 몇번을 강조해도 부족하지 않은 내용입니다. 글로벌 변수나 글로벌 함수를 가급적 사용하지 않는 것이 성능 향상에 아주 도움이 됩니다. 로컬 변수와 로컬 함수에 접근하는 것이 훨씬 빠르니까요. 특히 time-critical routines 에서는요.



이 이미지는 이 글 내용과 거의 관계가 없네요. ;; 왜 이 이미지가눈에 띄었을까?


Non-Local — Discouraged

CCX = display.contentCenterX  --global variable
for i = 1,100 do
   local image = display.newImage( "myImage" )
   image.x = CCX
end


Local — Recommended

local CCX = display.contentCenterX  --local variable
for i = 1,100 do
   local image = display.newImage( "myImage" )
   image.x = CCX
end


또한 이것은 math library 같은 core Lua 라이브러리에 적용됩니다. time-critical routines 에서 여러분은 항상 라이브러리 함수들을 localize 해야 합니다.


Non-Local — Discouraged

local function foo( x )
   for i = 1,100 do
      x = x + math.sin(i)
   end
   return x
end


“External” Local — Recommended

local sin = math.sin  --local reference to math.sin
local function foo(x)
   for i = 1,100 do
      x = x + sin(i)
   end
   return x
end

마지막으로 함수들은 가능하면 항상 localize 되어야 한다는 것을 기억하고 계세요. 물론 scoping 을 제대로 해야 하겠죠. 만약 Lua 초보자이시라면 링크 Understanding Scope for Beginners 를 참조하세요.


Non-Local — Discouraged

function func1()
   func2( "myValue" )
end

function func2( y )
   print( y )
end

func1()


Local — Recommended

--"func2" properly scoped above "func1" 
local function func2( y )
   print( y )
end

local function func1()
   func2( "myValue" ) 
end

func1()


오늘은 시간 관계상 1번 팁만 소개해 드립니다.

다음 글에선 좀 더 많은 팁들을 올릴께요.

원문은 저 위의 제목을 클릭하면 보실 수 있으니까 관심 있는 분들은 저 위의 제목을 클릭해서 보세요.


반응형


반응형
loadSoundLibrary: a quick way of structuring and loading your sound effects



Posted by BeyondtheTech, Posted on March 8, 2013




여러분 코드가 여러분이 로드해야 할 사운드 효과들로 조금 어지러워져 있다면 보다 적은 코딩으로 훨씬 더 쉽게 사운드를 로드 할 수 있는 정보를 이 글에서 보실 수 있으실 겁니다.

개발을 하다 보면 이미지 파일이나 lua 파일들과 더불어 사운드 파일들도 시간이 지날수록 숫자가 많이지게 될 겁니다. 그리고 그러한 파일들을 구분하려면 긴 디렉토리 이름을 찾아가느라고 힘들게 되구요. 이 글에서 보여드리는 예제는 그러한 부분들도 고려 된 겁니다. 좀 더 쉬운 방법으로 각각의 하위폴더를 관리할 수 있도록 해 드릴 겁니다.

예를 들어 여러분 코드가 이렇게 돼 있을 때...


sound_fx[ "meow" ] = audio.loadSound( "meow.caf" )
sound_fx[ "bark" ] = audio.loadSound( "bark.caf" )
sound_fx[ "explosion" ] = audio.loadSound( "explosion.caf" )
sound_fx[ "laugh" ] = audio.loadSound( "laugh.caf" )
sound_fx[ "cry" ] = audio.loadSound( "cry.caf" )
sound_fx[ "fart" ] = audio.loadSound( "fart.caf" )
sound_fx[ "belch" ] = audio.loadSound( "belch.caf" )
sound_fx[ "kiss" ] = audio.loadSound( "kiss.caf" )
sound_fx[ "slap" ] = audio.loadSound( "slap.caf" )
sound_fx[ "punch" ] = audio.loadSound( "punch.caf" )
sound_fx[ "boing" ] = audio.loadSound( "boing.caf" )
...


보시면 아시겠지만 라인별로 많은 부분이 반복됩니다.





저의 loadSoundLibrary 를 사용하시면 프로그래밍 하기 훨씬 더 쉬워지실 겁니다.


local function loadSoundLibrary( ... )
        -- quick-load a bunch of audio files, by Raphael Salgado aka BeyondtheTech, 2013
        if #arg < 2 then
                print( "Invalid number of arguments for loadSoundLibrary" )
        else
                local loadList, t, soundName
                local t2 = 0
                for t = 2, #arg do
                        soundName = arg [ t ]
                        if sound_fx[ soundName ] ~= nil then
                                print( "Warning - Sound name element " .. soundName .. " already exists, skipping" )
                        else
                                sound_fx[ soundName ] = audio.loadSound( arg[ 1 ] .. "/" .. soundName .. ".caf" )
                                -- check, did it load successfully?
                                if sound_fx[ soundName ] ~= nil then t2 = t2 + 1 end
                        end
                end
                print( "Loaded " .. t2 .. " out of " .. #arg - 1 .. " " .. arg[ 1 ] .. " sounds" )
        end
end


이제 같은 오디오 파일 세트를 불러오기 위해서 아래 한줄만 추가하시면 됩니다.

loadSoundLibrary( "SFXstuff", "meow","bark","explosion","laugh","cry","fart","belch","kiss","slap","punch","boing" )


물론 SFXstuff라는 서브폴더를 생성해서 .caf 파일들을 그곳에 넣어야 겠죠.

이 함수의 첫번째 인수는 폴더 이름 입니다.  그 다음은 모두 테이블에 들어갈 sound element 들이구요. 즉 확장자가 없는 sound 파일들이죠.
일단 정확한 argument들의 숫자를 전달했는지 체크하구요. sound 이름을 잘 못 사용했다면 warning 도 해 줍니다.


이 정보가 여러분 코딩을 좀 더 쉽고 빠르게 하는데 도움이 되기를 바랍니다.


==> 이번 글은 BeyondtheTech 라는 곳에서 공유한 팁 입니다. 원문은 저 위의 제목을 클릭하면 보실 수 있습니다.

반응형


반응형

아침에 우연히 시내에서 St. Patrick's Day Parade를 한다는 기사를 읽게되서 한번 나가 봤어요.


뉴저지 살 때 맨하튼에서 하는 퍼레이드를 봤었는데 아주 인상적이었었는데.


모두들 녹색으로 치장을 하고 옛날 유럽스러운 복장들을 하고 행진하는 모습들이..


St. Patrick's Day 는 아일랜드의 큰 명절이라고 하는데요.


그 내용은 자세히 몰라도 퍼레이드는 볼만 하더라구요.


옛날에 아일랜드 사람들이 성격이 급하고 다혈질이고 뭐 그런게 유럽인 중에서는 그나마 성격 급한 한국인이랑 비슷하다는 소리를 들은거 같기도 하고...


영국 옆에 있어서 오랜 기간 영국의 식민지를 지내기도 했고 한국도 정말 큰 나라 중국옆에 있어서 괴롭힘을 많이 당하고 일본 식민지 였기도 하고 해서 웬지 우리나라랑 비슷한 역사가 있는 거 같아서 나 혼자서만 친근하다는 생각도 하고 그랬었어요.


지금 일하는 데도 아일랜드출신 애들도 있고 또 아일랜드 팀이랑 자주 미팅하고 연락하고 하는데요..


뭐 다혈질이고 성격 급하고 그런건 못 느꼈어요..


그냥 여느 백인들처럼 여유 있는거 같고.. 뭐... 그냥...



행렬중에 저렇게 '영국은 아일랜드에서 물러나라' 는 배너를 보면서 강대국 옆에 살면서 많은 설움을 받고 있나부다.. 라는 생각도 한번 더 하게 되고....



예전에 어렸을 때 TV에서 봤던 멋있는 백파이프 연주 악단도 보고...

남자들이 치마입고 백파이프 연주하는게 재밌었어요.

치마하고 백파이프는 스코틀랜드 전통으로만 알고 있었는데.. 아일랜드에서도 저랬었나 봐요.



이번에 찍었던 동영상중에 아주 맘에 드는 영상이예요.

요즘 군복과 옛날 군복 행렬도 볼 수 있고...


예전에 영국하고 전쟁할 때 여자들도 나라를 지키기 위해 참전했는지 여자 군악대도 보이고...



Rock 밴드 나오고 여자 Marching Band 도 나오고 또 괴물들도 나오는 이 동영상도 아주 맘에 드는거긴 한데..


찍다가 전화기 용량이 다 차서 중간에 그쳤어요.


아쉽긴 하지만... 재밌는 장면이 담겨서 좋아요.. ^^


반응형