본문 바로가기

전체 글

(219)
퍼포먼스 최적화의 기본 (2편) [본 글은 Naver 맥부기 Cafe의 리겔님의 글을 정리한 것입니다.] void FlipImage(img_type * pDst, img_type * pSrc) { unsigned int x, y; pDst->width = pSrc->height; pDst->height = pSrc->width; for (y = 0; y height; ++y) { for (x = 0; x width; ++x) { pDst->imgBuf[x*pSrc->height + y] = pSrc->imgBuf[x + y*pSrc->width]; } } } ========================================================================== 위 함수가 받는 ..
퍼포먼스 최적화의 기본 (1편) [본 글은 Naver 맥부기 Cafe의 리겔님의 글을 정리한 것입니다.] 아이폰/아이팟 터치는 ARM코어를 기반으로 한 CPU를 탑재하고 있다. 개발자 입장에서 볼 때 ARM의 가장 큰 특징은 RISC 방식이라는 것이다. 컴퓨터는 CPU가 CISC 방식일 때 보급되기 시작하였고, 이에 따라 현재까지도 대부분의 컴퓨터 서적들이 RISC CPU의 특성을 전혀 고려 하지 않은 예제들만 제시한다. 간단한 예제를 통하여 이러한 "일반적인" 프로그래밍 방식의 문제점들을 짚어보도록 하겠다. ===================================================== 다음과 같은 이미지 데이터 타입이 있다., typedef struct { unsigned short height; unsigned s..
ARM 아키텍처와 RISC ARM(Advanced RISC Machine) 아키텍쳐는 임베디드 기기에 많이 사용되는 32-BIT RISC 프로세서 이다. 저전력을 사용하도록 설계하여 ARM CPU는 모바일 시장에서 뚜렷한 강세를 보인다. RISC(Reduced instruction set computer)는 CPU의 명령어의 개수를 줄여 하드웨어 구조를 좀 더 간단하게 만드는 방식으로, 마이크로프로세서를 설계하는 방법 가운데 하나이며, SPARC, MIPS 등의 아키텍처에서 사용된다. = IBM 6000기종과 Mac에서 쓰이고 있음 = CISC(Complex instruction set computer) 복잡한 명령어들의 집합 컴퓨터(많은 명령어 처리 가능), 즉 명령어의 갯수가 많다는 단점이 있는 반면 프로그램의 길이가 짧다. ..
KGC2010에서 앵그리버드 개발자의 강연 내용 [개발적인면] 1. 친숙하고 아기자기한 표현으로 눈을 즐겁게 했다. 2. 한눈에 봐도 쉽고 이해하기 쉬워서 본능적으로 게임을 할수 있게 했다. 3. 쉬운면도 있지만 별3개를 따기는 어렵게 만들어서 하드코어 유저도 만족 시킨다. 4. 쉽고 반복적인 리듬으로 만들었다 왜?? 통역자가 놓친건지 내가 놓친건지 이유는 못 들었네요. 5. 한판이 쉬우니 다음판까지만 이라는 생각이 들게 레벨링해서 중독성이 있다. 6. 처음에는 60판정도 있었지만 점점 업데이트를 해서 지금은 200판정도까지 늘었다. 7. 루아를 사용해서 밸런스 작업을 하였기 때문에 프로그래머가 코딩에 집중할 수 있게되서 시간단축이 많이 됐다. [운영적인면] 1. 0.99달라라는 저비용에 비해 플레이타임이 길고 만족감이 높다. 가격을 올렸더니 다운수가..
멀티스레딩 <NSThread> 멀티스레딩은 한 앱의 내부에서 돌고있는 스레드가 다수인 경우를 뜻한다. 하나의 앱은 하나의 프로세스가 돌고 있습니다. 그리고 프로세스 안에는 여러개의 스레드가 돌고있는 구조이다. 스레드는 프로세스보다 낮은 작업 단위이다. 스레드는 코드를 실행하는 흐름이라고 볼 수도 있다. 멀티스레드라 하면 흐름이 여러개라고 보면 되겠다. 앱에는 최소 한개 이상의 스레드가 돌고 있다. 스레드가 없다면 그것은 프로그램으로서 성립이 안된다. 최초의 첫 스레드를 메인 스레드라고 한다. 메인 스레드에서는 많은 일을 한다. 기본적인 앱 내부의 이벤트 처리나 화면 처리를 하기 때문에 메인 스레드가 멈추거나 일시적으로 어는 현상이 있어서는 안된다. = NSThread.h = + (NSThread *) currentThread; 클래스..
메모리 관리 <Objective-C?> 이글은 Naver "맥부기 Cafe의 문씨님의 강좌에서 퍼온글 입니다." Objective-C는 C++과 마찬가지로 C에서 파생된 언어이다. 다만 구조적 특징을 보면 C++보다 Objective-C가 좀더 C에 가깝다. C++은 C에서 메모리 관리를 직접하는 포인터 개념에 충실한 반면 Objective-C는 메모리 관리를 어느정도 대신 해주는 개념을 가지고 있다. 언어를 대체적으로 C나, C++, Objective-C로 세분류로 나누고 보면 일단 C나 C++은 개발하기가 어렵다. 하지만 메모리 관리를 직접할수 있기 때문에 고수가 개발한다면 정말 강력한 앱을 만들수도 있다. Java는 메모리 관리를 신경 안쓰는 언어이다. 덕분에 개발은 편하다. 하지만 메모리 관리하는 가비지컬렉션 대문에 모바일 환경에서는 ..
[jQuery] - Study(2) Link 분류 이름 설명 홈페이지 주소 날짜 & 시간 jQuery Datepicker 입력 필드에 팝업 달력을 부착 또는 개별 날짜, 날짜 범위를 선택한 인라인 달력을 보여줌 http://keith-wood.name/datepick.html jQuery Calendars 다양한 국가의 달력은 나타냄 http://keith-wood.name/calendars.html jQuery Time Entry 시간을 버튼 체크로 조절 할 수 있음 http://keith-wood.name/timeEntry.html jQuery Date Entry 날짜를 버튼 체크로 조절 할 수 있음 http://keith-wood.name/dateEntry.html jQuery Date/Time Entry 시간, 날짜를 버튼 체크로 조절 할 ..
[jQuery] - Study(1) Link 이름 설명 홈페이지 주소 jQuery Datepicker 입력 필드에 팝업 달력을 부착 또는 개별 날짜, 날짜 범위를 선택한 인라인 달력을 보여줌 http://keith-wood.name/datepick.html jQuery Calendars 다양한 국가의 달력은 나타냄 http://keith-wood.name/calendars.html jQuery Time Entry 시간을 버튼 체크로 조절 할 수 있음 http://keith-wood.name/timeEntry.html jQuery Date Entry 날짜를 버튼 체크로 조절 할 수 있음 http://keith-wood.name/dateEntry.html jQuery Date/Time Entry 시간, 날짜를 버튼 체크로 조절 할 수 있음 http:/..