모바일 프로그래밍이라면 무엇을 말씀하시는지 모르겠지만
핸드폰에 올라가는 app를 말씀하시는 거라면.. 가장 큰 차이는 자원량에 차이가 있다고 할 수 있겠습니다.
자바나 씨나 씨++ 이나 코드 사이즈와 리소스 메모리 할당량이 일정 크기 이상을 넘어갈 수 없습니다. 메모리 할당을 받지 못하므로 죽습니다. -_- PC 에서는 경험할 수 없는 일이죠. (PC 에서는 스와핑을 해서 메모리를 확보하니까요)
또한 씨나 씨++은 가비지 컬렉터가 없기 때문에 직접 메모리 해제를 해줘야 하는데, 제대로 해제해주지 않으면 메모리 릭이 발생해서 핸드폰에는 치명적이 됩니다. 몇 번 쌓이면 할당받을 수 있는 메모리가 없어져서 핸드폰이 죽습니다. 그에 비해 PC는 좀 흘려줘도 괜찮죠. -_- (상용프로그램은 이래서는 안되겠죠)
게임 프로그래밍을 할 때에는 폰의 경우 보통 x ms 마다 한번씩 타이머를 불러 화면과 게임 플레이 내용을 갱신합니다. (초당 4~5번 정도 밖에 안됩니다. )화면 갱신할 때에는 변화된 부분만 새로 그려줘야 합니다. LCD 속도가 느려 페이지 플리핑, 더블 버퍼링, 하드웨어 스크롤 (지원도 안되지만 -_-) 쓸 수 없습니다. 이에 반해 PC 는 초당 수십번의 렌더링과 주기적인 타이머 호출로 내용을 업데이트 해주죠.
그리고 보통 PC의 경우 윈도우 플래폼, 리눅스 플래폼 등 -_- 플래폼의 제한이 몇가지 없는 것에 비해 핸드폰은 정해진 표준이 많아 (통신사 별로도 몇가지씩 -_-) midp, gvm, brew, wipi (통신사별 -_- ) 등등 다양한 플래폼으로 작성해야 됩니다.
음.. 그리고 -_- 폰은 기종마다 성능 차이가 많이 나고, LCD 사이즈가 다르기 때문에 될 수 있으면 낮은 사양에서 돌아갈 수 있는 프로그램을 만들고 종류별 다양한 LCD를 지원해야 다운 받을 수 있는 폰 범위가 늘어나겠죠.
모바일은 임베디드 시스템 프로그래밍에 비하면 좀 나은 편이지만 그래도 PC 에 비하면 꽤 열악한 편입니다. -_-
PC는 낮은 사양 때문에 고생해야 되는 것은 그나마 좀 적은 편이지만 그렇더라도 전혀 고려해야 할 점이 없는 건 아닙니다. -_-
리소스의 양이 많아지다 보니 메모리 관리에 더 신경을 써야하고, 프로그램이 커지다 보니 커다란 여러명이서 같이 프로그래밍해야 하므로, 프로젝트 관리 능력이 필요합니다. 효율적으로 렌더링하기 위해 GPU 계통 구조를 알아둘 필요가 있고요. CPU와 달리 그래픽 카드는 낮은 사양부터 고 사양까지 다양하므로 이들을 고려해 줘야 합니다.
엔진이라도 좀 만들려고 하면 3d 이론은 수십년 전의 기초 이론부터 현재의 최신 기술까지 몇년 동안 공부해야 제대로 이해하고 만들 수 있다고 생각하고요 (물론 인터넷에 돌아다니는 훌륭하신 분들이 만드신
것들 갖다 끼우면 적당히 돌아가는 건 만들 수 있겠지만 -_- 그런걸 얘기하는 건 아닙니다. )
뭐.. 그렇습니다. 꽤 차이가 많아요. 그렇지만 -_- 무엇이나 다 어렵다는 것은 똑같습니다.
2006.05.17 09:43:34 (*.179.124.242)
능구렁이
PC와 모바일 프로그램의 큰 차이는 메모리에 직접 접근하는 코드를 쓰느냐 아니냐 이옵니다.
모바일기기에서 메모리에 잘못 접근했다간 폰이 맛가는 경우가 있어서
C나 C++가 환영 못받는 분야 이옵니다.
모바일 쪽으로 하실려면 자바를
wipi쓰는 업체는 거의 없을 것으로 사료되옵니다.
2006.05.17 10:51:01 (*.74.211.204)
Neo
능구렁이//
모바일쪽에서 C나 C++가 환영 못받는다는 소리는 금시초문이군요.
이통사 플랫폼 중에 C나 C++를 기반으로 한 것들이 꽤 많은데 어째서 C나 C++가 환영을 받지 못할까요?
오히려 가장 큰 시장을 가지고 있다고 판단되는 SK같은 경우 자바 보다는 C에 기반한 플랫폼이 더 많이 보급되어있는데 이건 어떻게 생각하시나요?
그리고 3D 모바일 게임 같은 경우 Wipi3D를 많이들 사용하고 있습니다.
사료되는것이나 부정확한 추측말고 사실에 입각한 정보를 제공하시는게 어떨지요?
2006.05.17 11:20:43 (*.232.96.120)
1ststory
C와 C++은 속도와 용량 절약을 위한 선택이죠 ㅇㅅㅇ;
모바일은 역시 용량과 속도에 많은 제약을 받고, 개발 환경자체도 다르다 보니, (모바일시스템이라도 개발은 PC쪽에서 대부분 이루어 질텐데, 그 환경과 모바일환경은 천만배 이상 차이가 나다보니 특수한 툴들이 많이 사용되겠죠?) 여러가지 압축이라던지, 속도와 메모리에 걸리는 상황도 많이 연출되지요.
2006.05.17 11:26:57 (*.179.124.242)
능구렁이
Neo //
제가 그쪽으로 취직 하기 위해 상당히 알아본적이있습니다.
C나 C++은 아주 특별한 경우를 제외하곤
통신사에서 허락을 해주지 않는다고 합니다.
이유는 앞의 리플에 있사옵니다.
그래서 개발사에선 자바를 하는 사람을 더 원한다고 하였사옵니다.
wipi도 자바기반wipi 였다면 좋았을 것이라고 답변을 받았사옵니다.
저에게 정보를준 실무자가 거짓말을 한것이라면 어쩔 수 없지만
구지 저에게 거짓말했을 이유가 있을까요?
2006.05.17 11:37:37 (*.179.124.242)
능구렁이
기획안의 결정방식에도 차이가 있는것으로 알고 있사옵니다
PC게임은 회사내에서 결정 할 수 있겠지만
모바일은 기획안이 통신사로 한번 넘어갔다 온다고 하옵니다.
기획안이 통과되면 통신사로 부터 허용 용량과 기타 제반 사항이 결정되어 내려 온다고 하옵니다.
2006.05.17 12:52:59 (*.78.64.79)
음..
-_- BREW 는 c, c++ 기반입니다. 요즘 쓰지 않는 gvm 도 일단은 생긴게 c 처럼 생긴 녀석이고요.
통신사에 허락을 받아 java 나 c, c++ 을 사용하는 것이 아니라 통신사에서 지원하는 플래폼에 맞춰서 언어를 선택하는 것입니다.
다만 wipi의 경우는 wipi-c의 사용을 권장하지 않고 사용하길 원한다면 허락 받아야 사용할 수 있는데, 이는 wipi-c가 불안정하기 때문이지 자바가 씨보다 좋아서 자바만 쓰게 하는 것은 절대 아닙니다.
그리고 기획안의 결정 방식은 언어에 영향을 거의 받지 않습니다. 언어에 영향을 받는다면 BREW쪽을 염두에 두고 기획한 게임은 wipi 용으로는 절대 못나오겠군요.
기획안이 통신사로 넘어갔다가 오는 것은 맞지만 허용 용량은 경우 그 쪽에서 기본적으로 제안하는 용량으로도 어느 정도 게임을 만들 수 있고, 더 큰 용량이 필요하다면 신청을 해서 변경할 수 있는데, 그다지 어려운 작업은 아닙니다. (까다롭기는 하지만..)
모바일 분야는 씨와 씨++이 환영받지 못하는 분야는 아닙니다. 임베디드에서는 오히려 씨를 선호하는 걸요.. 모바일 분야도 처음부터 플래폼 표준 규약을 만들었으면 씨가 대세였을 수도 있을 겁니다.
2006.05.17 13:53:12 (*.143.85.254)
제리
요새 모바일 게임은 위피 브루 전용 그런거 제한두지 않습니다. 맘만 먹으면 거진 동시 발매 '3') 돈 벌어야죠.
2006.05.18 05:10:14 (*.72.101.186)
Dreamer7
C나 C++가 환영 못받는 분야 이옵니다.
이말은 저도 금시초문이네요..
2006.05.18 13:53:44 (*.75.27.197)
처음처럼
온라인을 거쳐 모바일 업계에 있습니다 ^^;;
위피C, 위피 자바 모두 있고요. 둘다 사용됩니다.
GNEX, GVM 등등도 물론 있고요.
짧은 생각에 위피가 점점 영역을 넓혀갈 것으로 보입니다. 뭐 정통부가 미니까.. 아무래도.. 아니려나? ^^;
휴대폰에서도 기계어급을 사용하지 않는 이상 C가 가장 빠른 실행 속도를 보여줍니다. 당연히 게임 등의 분야에서는 많이 사용 되겠지요?
뭐 각 통신사의 정책이 조금씩 상이한 것이 좀 문제가 되고 있긴 하지만..
핸드폰에 올라가는 app를 말씀하시는 거라면.. 가장 큰 차이는 자원량에 차이가 있다고 할 수 있겠습니다.
자바나 씨나 씨++ 이나 코드 사이즈와 리소스 메모리 할당량이 일정 크기 이상을 넘어갈 수 없습니다. 메모리 할당을 받지 못하므로 죽습니다. -_- PC 에서는 경험할 수 없는 일이죠. (PC 에서는 스와핑을 해서 메모리를 확보하니까요)
또한 씨나 씨++은 가비지 컬렉터가 없기 때문에 직접 메모리 해제를 해줘야 하는데, 제대로 해제해주지 않으면 메모리 릭이 발생해서 핸드폰에는 치명적이 됩니다. 몇 번 쌓이면 할당받을 수 있는 메모리가 없어져서 핸드폰이 죽습니다. 그에 비해 PC는 좀 흘려줘도 괜찮죠. -_- (상용프로그램은 이래서는 안되겠죠)
게임 프로그래밍을 할 때에는 폰의 경우 보통 x ms 마다 한번씩 타이머를 불러 화면과 게임 플레이 내용을 갱신합니다. (초당 4~5번 정도 밖에 안됩니다. )화면 갱신할 때에는 변화된 부분만 새로 그려줘야 합니다. LCD 속도가 느려 페이지 플리핑, 더블 버퍼링, 하드웨어 스크롤 (지원도 안되지만 -_-) 쓸 수 없습니다. 이에 반해 PC 는 초당 수십번의 렌더링과 주기적인 타이머 호출로 내용을 업데이트 해주죠.
그리고 보통 PC의 경우 윈도우 플래폼, 리눅스 플래폼 등 -_- 플래폼의 제한이 몇가지 없는 것에 비해 핸드폰은 정해진 표준이 많아 (통신사 별로도 몇가지씩 -_-) midp, gvm, brew, wipi (통신사별 -_- ) 등등 다양한 플래폼으로 작성해야 됩니다.
음.. 그리고 -_- 폰은 기종마다 성능 차이가 많이 나고, LCD 사이즈가 다르기 때문에 될 수 있으면 낮은 사양에서 돌아갈 수 있는 프로그램을 만들고 종류별 다양한 LCD를 지원해야 다운 받을 수 있는 폰 범위가 늘어나겠죠.
모바일은 임베디드 시스템 프로그래밍에 비하면 좀 나은 편이지만 그래도 PC 에 비하면 꽤 열악한 편입니다. -_-
PC는 낮은 사양 때문에 고생해야 되는 것은 그나마 좀 적은 편이지만 그렇더라도 전혀 고려해야 할 점이 없는 건 아닙니다. -_-
리소스의 양이 많아지다 보니 메모리 관리에 더 신경을 써야하고, 프로그램이 커지다 보니 커다란 여러명이서 같이 프로그래밍해야 하므로, 프로젝트 관리 능력이 필요합니다. 효율적으로 렌더링하기 위해 GPU 계통 구조를 알아둘 필요가 있고요. CPU와 달리 그래픽 카드는 낮은 사양부터 고 사양까지 다양하므로 이들을 고려해 줘야 합니다.
엔진이라도 좀 만들려고 하면 3d 이론은 수십년 전의 기초 이론부터 현재의 최신 기술까지 몇년 동안 공부해야 제대로 이해하고 만들 수 있다고 생각하고요 (물론 인터넷에 돌아다니는 훌륭하신 분들이 만드신
것들 갖다 끼우면 적당히 돌아가는 건 만들 수 있겠지만 -_- 그런걸 얘기하는 건 아닙니다. )
뭐.. 그렇습니다. 꽤 차이가 많아요. 그렇지만 -_- 무엇이나 다 어렵다는 것은 똑같습니다.