BlackBerry Playbook은 왜 한국개발자들에게 외면 받았는가

작년초에 열린 Adobe Refresh 2011 에서는 BlackBerry사의 Playbook이 소개되었다.

한국 시장에는 아직 팔고 있지 않다. 아마 여러분이 한국에서 이 제품을 제일 처음 보게 될 것이다. 라는 소개로 시작된 플레이북 소개는 꽤 흥미로웠다. 커널 수준에서의 Adobe AIR의 지원, RIM과 Adobe의 협력, 커널 수준에서 AIR의 지원으로 인해 상당한 속도를 구현할 수 있다는 점 등.

AIR는 느려터졌다는 느낌을 지울 수 없던 나도 플레이북 시연을 보고는 정말 놀랐다. AIR가 저렇게 부드럽게 돌아가다니. 아마 나뿐만이 아니라 그 자리에 있던 다른 플래시 개발자들도 마찬가지였을 것이다.

그날 이후 일주일 정도가 지난 후 난 Playbook Developer 사이트에 접속해보았다. 이미 깨끗하게 준비가 되어있었다. (안타깝게도 한국개발자들을 위한 준비는 전혀 없었던 것 같다.) 이 웹사이트에서는 플레이북 SDK와 시뮬레이터 등에 대한 안내를 하고 있었고 다운로드 받을 수 있게 친절하게 준비되어있었다. 허나 안타깝게도 한국어로는 전혀 준비되어있지 않았다. RIM의 한국지사가 있는지도 모르겠지만 한국지사가 있었다면 개발자들을 조금이라도 도와주려는 노력이 있었다면 어땠을까?

플레이북의 시뮬레이터는 VMWare를 이용하여 사용할 수 있는 ISO 형식의 가상이미지 파일이었는데 맥에서 자기네 기기 테스트를 위하여 가상머신을 이용한 시뮬레이터를 제공하는 것은 상당히 괜찮은 생각 같았다. VMWare라는 시스템에 대해서 난 거부감이 거의 없었고 사용방법도 매우 편리했다. 적어도 아이폰의 SDK와 시뮬레이터에 비해서는 말이다.

어찌됐던 그렇게 Playbook에서 돌아갈만한 간단한 프로그램을 만들었고 블랙베리에 앱을 등록하러 갔다. 그런데 등록과정이 너무 복잡했다.

한국어 페이지까지는 기대하지 않았지만 인증서를 발급받고 등록하고… 프로그램을 업로드하고… 하는 과정을 수십번 반복하면서 난 지쳐갔다. 프로그램 하나 만드는게 왜 이렇게 어렵던지…

결국에는 수십번의 시도와 수십일간의 시간낭비 끝에 그만두었다. 차라리 아이폰SDK 같은 경우는 도움말이라도 많이 찾을 수 있어서 다행인데 플레이북쪽에는 아무도 아는 사람도 없고 인터넷에서 정보를 찾기도 어려웠다. 물론 플레이북의 고객지원도 그다지 좋지 못했다.

QNX 운영체제(일부 사람들은 플레이북인 안드로이드를 사용하는줄 아나보다.)의 장점을 제대로 살리지 못한 것 같기도하고… 아무래도 우리나라에는 조금 생소한 QNX라는 운영체제에 대해서도 더 많이 홍보했어야하지 않나 싶다.

플레이북 개발을 포기하게 만들었던 또 하나의 이유는 RIM에서 우리나라에 블랙베리 정식유통을 포기했다. 따라서 내가 어플리케이션을 만든다하더래도 어차피 외국인만을 대상으로 해야할 것이고 내가 만들 수 있는, 만들어야 할 어플리케이션은 결국 계속 줄어든다. 그럴바에는 차라리 사람들이 많이 쓰는 아이폰쪽으로 가는게 낫겠지?

개발자들도 기기를 구할 수 없는… 그리고 언제 우리나라에 정식발매될지도 모를 이런 상황들이 한국개발자들에게 외면 받은 것 같다.

지금 네이버를 살펴보니 플레이북 16기가가 이 대략 15만원~25만원 선에 팔리고 있다. 25만원 정도면 미개봉도 구할 수 있다. 이제 플레이북은 결국 ‘싸구려 잉여타블렛’ 정도의 이미지 밖에 되지 않을 것이고 아이패드나 안드로이드 타블렛들과는 경쟁도 안될 것 같다. 따라서 개발자들도 더이상 이 플랫폼에는 관심을 가질 이유가 없어졌다.

우리나라가 아이패드에 대부분 점령 당했지만 그래도 꾸준히 진출해봤으면 어떨까 싶었다. 그래도 내가 보기엔 플레이북도 나쁘지 않았고 가격적인 메리트도 있었으니.

blackberry developer

지금 BlackBerry Developer 사이트를 가보니 내가 이 사이트를 처음 만났던 1년전에 비해 많이 바뀌었네. C++, 웹워크, AIR, 자바 모든 환경을 다 지원한다. 과연 이런 플랫폼 위에서 개발하던 사람들이 얼마나 블랙베리쪽으로 올지는 모르겠지만…

여튼 플레이북이 우리나라에서 잘 되길 바라던 마음이 있었는데 이제 망해버려서 아쉬운 마음도 있다. RIM은 그냥 우리나라에서 철수해도 될듯…

플래시에서 콤보박스 폰트 변경

플래시에서 ComboBox 컴포넌트를 사용했는데 클라이언트측의 요구로 콤보박스의 폰트를 변경해달라는 부탁이 왔다.

플래시 레퍼런스에는 이러한 내용들에 대해 기술된 것이 없어서 고민하다가 구글을 찾아보니 이미 외국에서 나와 똑같은 고민을 했던 사람이 있었다.

http://www.designscripting.com/2011/06/as3-combobox-font-embedding-problem-flash-cs5/

var arial:Font = new ArialFont();

var myFormatBlack:TextFormat = new TextFormat();
myFormatBlack.font = arial.fontName;
myFormatBlack.size = 18;
myFormatBlack.color = 0x000000;

myComboBox.textField.setStyle("embedFonts", true);
myComboBox.textField.setStyle("textFormat", myFormatBlack);
myComboBox.dropdown.setRendererStyle("embedFonts", true);
myComboBox.dropdown.setRendererStyle("textFormat", myFormatBlack);
myComboBox.setStyle("embedFonts", true);
myComboBox.setStyle("textFormat", myFormatBlack);
myComboBox.prompt = "Select State";
myComboBox.width = 248;
myComboBox.height = 25;
myComboBox.x = 100
myComboBox.y = 100
myComboBox.setStyle("textPadding", 1);

위의 코드를 참조하여 콤보박스의 폰트를 바꿀 수 있었다. 중요한 것은 라이브러리에서 폰트를 미리 등록해놔야 한다.

사용할 폰트를 임베디드 한 후 라이브러리에서 폰트를 선택한 후 properties를 선택해서 액션스크립트에서 사용할 수 있도록 체크하고 이름을 지정한다. 내 경우에는 윤고딕 같은 폰트는 알아보기 쉽게 ‘Yoon’이라는 이름으로 사용했다. 위의 코드에서는 폰트명을 ‘ArialFont’라고 지정하고 있다. 이것이 되지 않으면 저 코드도 아무 소용이 없다.

폰트를 임베디드했으면 콤보박스의 각 부위에 setStyle과 setRendererStyle 메서드를 이용하여 적용한다.

이 두가지만 잘 이해했다면 콤보박스에 폰트를 적용하는 것은 어렵지 않을 것 같다.

XML에서 캐리지리턴(엔터) 문제

플래시에서 다음과 같은 코드를 입력했을 때 캐리지리턴(=엔터)가 한번이 아닌 두번이 입력되는 현상이 발생한다.

var xml:XML =

test11
줄바꿈


trace("=========================================");
trace(xml.child("title"));
trace("=========================================");
trace(xml.child("title").split("r").join(""));
trace("=========================================");

원래 XML의 내용대로라면 한줄 내려서 입력되어야하지만 실제적으로는 빈 행이 두줄이 입력된다는 것. 어도비의 레퍼런스에서 XML, XMLList 부분을 아무리 찾아봐도 이에 대한 내용이 없다. 플래시의 버그인가..? 하는 생각을 하면서 구글신에게 물어본 결과 다음과 같은 글을 찾았다.

http://stackoverflow.com/questions/570656/as3-xml-and-line-spacing-problem

글 내용인 즉슨, line break에서 Carriage Return과 Line Feed가 같이 입력되므로 rn 이렇게 입력된다는 것이었다. 그러므로 r로 입력된 부분을 찾아서 지우라는 말. String 클래스의 split 메서드를 써서 했다길래 나도 split 메서드로 해결 완료. 잘 된다. split 보다는 replace 메서드를 쓰는게 더 나을듯하다.

밑에 리플들을 보면 아마 서버 플랫폼에 따라 차이가 있다는 것 같은데 이것은 내가 윈도우서버를 가지고 있지 않으므로 패쓰.

Eclipse 3.6 Helios Error

플래시 빌더를 4.5 버전으로 새로깔고 이것저것 플러그인을 설치하던 중 예상치 못한 에러를 만났다.

Redmine-connector를 인스톨하다가 난 오류인데 도저히 이 메시지를 보고 해결을 못하겠다. glassfish, jms라는 플러그인을 검색해봤으나 실패….

An error occurred while collecting items to be installed
session context was:(profile=epp.package.java, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
No repository found containing: osgi.bundle,javax.mail.glassfish,1.4.1.v201005082020
No repository found containing: osgi.bundle,org.eclipse.equinox.log,1.2.100.v20100503
No repository found containing: osgi.bundle,org.eclipse.net4j.jms.api,3.0.0.v20110215-1551

도대체 이 오류가 뭔질 모르겠다. 다른 플러그인을 깔면서도 오류 때문에 깔리질 않아서 Subclipse를 빼고는 제대로 플러그인을 쓸수가 없는 상태. 이클립스 3.6 헬리오스 버전이 문제가 좀 많은 것 같다. 구글링을 해보며 이런 저런 메시지들을 검색해본 결과 헬리오스 버전의 버그인 것도 있고… 하여간 골치 아프다.

Flash Builder 4.5 / Flash CS5.5 출시

기다리고 기다리던 Flash Builder 4.5가 출시되었다. Flash CS5.5도. 한국 어도비 웹사이트는 아직도 트라이얼 버전 링크가 없어서 미국 어도비 사이트 가서 트라이얼 다운로드 버튼을 눌러더니 다운로더프로그램을 깔랜다. 이 프로그램도 AIR로 만들어졌구나. 여튼 다운로드 시작.

무려 6.15기가의 설치 프로그램을 다운로드. 외국서버에서 받는거라 그런가 무진장 느리지만 꾹꾹 참고 다운로드 완료.

설치프로그램을 실행해봤더니 역시나 CS5 패키지와 달라진게 없다. 쩝… 아무리 5.5 마이너 업데이트라고 하지만 설치프로그램이라도 좀 다르게 해주지.

플래시빌더가 4에서 4.5로 업데이트되면서 바뀐 것은 아무래도 모바일인듯 싶다. 프로젝트 타입에 모바일 프로젝트들이 추가되었고 모바일 디바이스에 대한 지원도 대폭 강화되었다. 실제로 Flash Builder Buritto 버전을 미리 써보면서 블렉베리 플레이북용 소프트웨어를 만들어보며 모바일 프로젝트를 만들어서 사용해봤는데 꽤 괜찮은 기능인 것 같다. 모바일 작업에 필요한 기능들 특히나 프로그램 인증에 대한 까다로운 설정들과 테스트 디바이스 연결에 대한 부분이 지원되는 것은 정말 좋은 것 같았다. 실제 가지고 있는 디바이스를 연결해서 테스트해볼 수도 있으며 나처럼 블렉베리 에뮬레이터를 이용하는 사람들도 디바이스 연결 기능으로 만든 프로그램을 미리 테스트해볼 수 있더라.

이번 업데이트에서 좀 신기한건 Flash Builder 4.5 for PHP (http://www.adobe.com/kr/products/flash-builder_php.html)가 생겨났다는 것? PHP야 원래 이클립스에서 PDT라는 프로젝트로 이미 지원하고 있던 기능인데 뭐하러 for PHP라는 거창한 단어를 들어가면서까지 만들었을까..? 설마 서버사이드 언어로 모바일 프로젝트를 만들라는 얘기도 아닌거 같고… PDT보다 더 강력하게 PHP를 지원하는지는 일단 써봐야 알것 같은데 난 개인적으로는 저걸 써보고 싶은 마음이 없으므로 그냥 Flash Builder 4.5로만 써야할 것 같다. 이미 PHP는 더이상 많이 배우고 싶은 마음은 없고 이미 자바쪽으로 마음을 돌렸기도 하거니와… (자바는 이클립스에서 잘 지원하니 더이상 말이 필요 없고) 저게 PDT보다 더 강력할 것 같지가 않다. (오픈소스 만세!!!) 게다가 이미 PHP는 에디트플러스(사실상 우리나라 PHP 개발자들의 표준? ㅎㅎ) 같은 툴들이 많이 있기에.

내가 바라는건 Actionscript Project와 Java Project를 동시에 쓸수 있는 것이었는데 이건 여전히 안되려나? JSP로 페이지 만들거나 자바 클래스를 짜고 액션스크립트로 플래시 프로그램 만들어서 둘다 동시에 컴파일해서 톰캣으로 돌려줬으면 좋겠는데 이런건 언제 되려나 모르겠다. 웹사이트는 자바 프로젝트로 만들고 있고 플래시는 액션스크립트 프로젝트로 만들고 있는 이 불편하고 귀찮음을 어도비도 좀 알아줬으면 좋으련만.

지금 다운받은 Master Collection을 설치 중인데 꽤나 걸리는구나. 그나마 노트북이 SSD로 되어있어서 좀 나은 것 같다. 빨리 확장된 기능들을 더 써보고 싶당~~

Adobe Refresh 2011

얼마전 Adobe Refresh 2011 행사를 다녀왔다. 후기라고 하기에도 뭐하고… 그냥 잊지 않기 위해 써놓는 포스트.

이 포스트는 쓸 내용이 많아 차차 내용을 정리해가며 업데이트해야 할 것 같다.

코엑스에서 열린 이 행사를 위해 아침 일찍 차를 끌고 출발. 시간에 맞춰 적당히 도착했다. 탄천주차장에 차를 대고 코엑스까지 걸어갔다. 행사장 앞에서 등록을 하고 통역장비와 투표장비를 받아서 자리에 앉았다. 생각보다 사람은 많았다.

세션은 여섯가지 정도되었다. 전체적으로 보면 어도비는 모바일 플랫폼에 주력하려한다는 느낌이 강했다. 사실 이번 행사도 결국은 모바일에 대한 내용이 거의 주를 이뤘다해도 과언이 아닐것 같다.

세션이 진행되기전 간단한 키노트 시간이 있었다. 세션 발표자들에 대한 소개와 간단한 인삿말 정도였다.

첫번째 세션에서는 멀티디바이스 스크린 즉, 모바일 디바이스에 대한 내용이었다. 지금의 모바일시장에 대한 전망, 그에 대한 어도비의 대처 등에 대한 내용으로 이뤄졌다. 흔히들 아이폰, 안드로이드쪽만 생각하는데 타블렛 디바이스, 스마트TV 등도 고려해야 할 것 같다. 어도비는 다양한 기기들을 지원하기 위해 Flash 플랫폼과 AIR 플랫폼을 지원하고 있고 이 두가지 기술로 대부분의 디바이스들을 지원할 수 있다는 말이었다.

두번째 세션에서는 플래시의 미래에 대한 내용이었다.

세번째 세션은 HTML5와 Open Web에 대한 내용이어다.

네번째 세션은 어도비 타운홀 시간이었다.

다섯번째 세션은 어도비 디지털 퍼블리싱 솔루션에 대한 내용이었다.

여섯번째 세션은 플래시빌더의 미래에 대한 내용이었다.

일곱번째 세션은 예고편시간으로 어도비가 개발하고 있는 기술들에 대한 내용이었다. 어도비의 개발자들이 만든 새로운 기술들에 대한 약간의 맛배기 타임이랄까?

이것은 타블렛 디바이스에서 사용하기 위한 솔루션이었다. 컴퓨터와 타블렛을 동시에 가지고 있을 때 타블렛 화면을 컴퓨터의 화면에서 더 확장시키는 거보다는 차라리 다른 용도로 쓰이는게 낫다고 생각했다고 한다. 사실 나도 여기에는 동의. 두 디바이스가 있을 때 화면을 확장하는 식으로 쓴다는건 너무 비효율적이고 낭비니까. 화면은 단지 모니터를 업그레이드하는 것만으로도 충분하다. 새 디바이스가 있다면 그 기능을 활용하는게 더 낫다고 본다. 어찌됐던 이 프로그램은 일종의 ‘디지털 팔레트’라고 보면 될것 같다. 인터페이스는 마치 Alias/Wavefront의 SketchBook을 생각나게 한다. Sketchbook에서 이미 한번 놀래서 그런지 신선하다고 생각하진 않았는데 붓을 물에 빠는 장면이 재미있었다. 어도비가 디지털 기기에서 아날로그적 느낌을 제일 잘 해석한 부분인거 같다.

Redmine Eclipse 연동 삽질기

서버에 redmine을 정말 어렵게 어렵게… 진짜 며칠간 개삽질해가며 설치하고… 생각해보니 trac은 이클립스 플러그인이 있어서 좀 나았는데 레드마인은 없었나 한번 찾아봤다. 역시나 있다. 참조한 글은 http://rcnboys.blog.me/20119875598 이 글이다. 플래시빌더를 켜고 Install New Software 클릭. 저장소를 추가하고 경로는  http://redmin-mylyncon.sourceforge.net/update-site/N/ 로 입력한다. 하나 웃긴건 레드마인은 redmine 이라고 쓰던데 저 URL 보면 왜 remin 이라고 써놨을래나….

여튼 저장소를 추가하니 Pending 과정을 거치고 소프트웨어 선택이 나온다. 뭐 레드마인 커넥터 딱 하나 밖에 없으니 걍 선택하고 인스톨 시도.

안된다. ㅡㅡ;;

무슨 eclipse의 core runtime이 없다고 나온다. 다시 이클립스 갈릴레오쪽 저장소를 보니 이건 뭐 너무 많다. 프로그램이 한두개도 아니고… type filter에 ‘core’로 검색하니 Programming Tools 카테고리에 Core 어쩌구 들어간게 있어서 일단 이거 설치. (이 과정은 스크린샷으로 못 남김;;)

설치가 다 되었길래 부푼 맘을 안고! 다시 시도했다.

안된다.

에러 메시지를 읽어보니 MyLyn Connector가 없다고 한다. subversion 저장소에서 찾아 MyLyn 커넥터를 설치했다.

자 이제 다 깔았으니 다 되겠지~~~ 다시 시도했다.

안된다..

에러 메시지는…

Cannot complete the install because one or more required items could not be found.

Software being installed: Mylyn Connector: Redmine 0.1.0.201101130831 (net.sf.redmine_mylyn.feature.feature.group 0.1.0.201101130831)

Missing requirement: Mylyn Connector: Redmine 0.1.0.201101130831 (net.sf.redmine_mylyn.feature.feature.group 0.1.0.201101130831) requires ‘org.eclipse.core.runtime 3.6.0’ but it could not be found

subversion 에 있는 MyLyn 커넥터 얘기하는게 아니었나보다… 다시 인터넷을 뒤져서 MyLyn 커넥터 위치를 찾아봤다.

http://download.eclipse.org/tools/mylyn/update/e3.4

입력하고 찾아보면 MyLyn Intergration이 없다고 한다….

 

2011년 01월 24일 추가.
위에 쓴거 말고도 벼르이 별 삽질을 다 해봤는데 안되길래 마지막으로 kldp.org에 질문글을 올렸다.
결론은… 이클립스 3.5 버전에서는 불가능하다는거다. 3.6 이상에서만 된다고 한다. (플래시빌더는 이클립스 3.5 버전)
이클립스 3.5에서 설치하려면 옛날 버전 레드마인커넥터를 써야하는데 이건 또 최신 레드마인을 지원 안하고 0.9까지만 지원한덴다. (내 서버에 깔린 레드마인은 1.1대 버전)

결론은… 못.쓴.다. ㅡㅡ;; 며칠간의 삽질을 했다. 에휴…

그냥 다시 트랙으로 돌아갈까? 라는 생각도 들고 Nforge를 써볼까 하는 생각도 들었는데 그래도 레드마인을 더 유지해보기로 했다.

 

StageDisplayState.FULL_SCREEN이 먹지 않을 때

잘 동작하던 플래시 파일에서 화면 최대화 버튼이 먹질 않았다.

stage.displayState = StageDisplayState.FULL_SCREEN;

이 코드가 먹지 않는 경우.

플래시를 임베디드 하는 object나 embed 태그에 다음 설정을 추가해줘야한다.

<param name=”allowFullScreen” value=”true” />

이에 대한 내용.

To enable full-screen mode, developers must add a new <object> and <embed> tag parameter, allowFullScreen, to their HTML. This parameter defaults to false, or not allowing full screen. To allow full-screen, developers must set allowFullScreen to true in their <object>/<embed> tags.

어도비의 문서 http://www.adobe.com/devnet/flashplayer/articles/full_screen_mode.html 를 읽어보면 된다.

Flash Builder 4에서 ANT 설치하기

플래시 작업을 하면 테스트 서버에 올리고 실제 서버에 올리고 파일 갱신 URL을 호출하고 서비스 URL을 열고…. 이 많은 노가다를 하기 싫어서 자동화하기 위해 Flash Builder 4에서 ANT를 쓰고 싶어 여기저기 검색해봤다.

결론은 Flash Builder 4에는 ANT가 기본적으로 포함되어 있지 않더라. 이클립스 기본툴인디… 어도비는 반성해야함. ㅡㅡ+

JDT를 설치하면 된다길래 여기저기 검색.

검쉰님의 블로그에 있는 글을 참조로 따라서 설치해봤다.

검쉰님이 쓰신 것처럼 초기 스타트 화면이 바뀌어버리더라. 물론 그 글에 있는 리플처럼 인터페이스가 아예 한글로 바뀌어버리는 사태가;;; 끙…;;

결국은 Flash Builder 4를 다 지워버리고 새로 깔았다;;

그리고 다시 나혼자 여기저기 검색해가며 설치.

이렇게 하면 ANT만 살포시 설치 가능하다.

1. 소프트웨어 업데이트에서 http://download.eclipse.org/releases/galileo 입력하고 레포지토리 추가.


2. 리스트중 Programming Language에서 Eclipse Java Development Tools를 선택


3. 다운로드 & 설치 과정 진행. (다행히도 다른 프로그램을 또 설치하라는 의존성 에러는 나오지 않았다.)
4. 이클립스 재시작.

이렇게 하고 나면…


메뉴에서 Windows -> Other View를 실행하면 ANT가 설치되어 있다.

휴. 겨우 깔았다. 이 다음번은 RSE 플러그인을 설치하면 될듯. 다음은 ANT 스크립트 작성해서 테스트해봐야겠다.

이런 노가다 안하게 어도비는 다음부터 ANT 같은 툴은 좀 기본으로 포함해주시길. 젭알.

추가.

이 과정을 거치고 나니 RSE도 제대로 깔린다. ㅡㅡ;; CDT라는 프로그램을 먼저 깔라고 난리쳤던 RSE가 그냥 깔려버렸다. 참 허무하네… 이제 이클립스에서도 FTP에 바로 접속 가능한건가… 더 테스트해봐야겠다.

 

최근에 C를 배우며 느낀 점들

이제 개발자 4년차…

어떻게 어떻게 하다보니 아이폰개발쪽으로 공부하게 되었다.
학원 커리큘럼상 C를 한달 수강하고 Objective-C를 수강하게 되어있어서 지금은 C 수업을 열심히 듣는 중.
이제 2주 정도 C를 배웠는데 아직은 어렵지 않다. 처음이라 그런지 프로그래밍의 기초부분만 설명하고 있는데 문법만 약간 다를뿐 기초개념상으로는 액션스크립트와 맥락을 같이하는 부분이 대부분이다.
여튼 느끼는건…
C는 참 재미없다. 플래시는 태생적으로 그래픽적인 면을 강조했었기에 뭔가를 조금만 작업해도 화면이 확 변하고 예쁘고 아름답게 뭔가가 눈에 들어온다는 점이 좋았다. 그런데 C는 아무리 열심히 짜도 화면에 텍스트로만 출력되니 너무 답답하다. 뭔가 코드를 짜도 화면상에 변화가 적으니…
역시 옛날 언어라는 생각이 든다. 나온지 수십년이 지났으니 너무 당연하겠지만 편한 환경에서 코드를 짜던 내 입장에서는 이건 뭐 원시 시대로 돌아간 느낌. 컴파일러 수준에서 당연히 해줘야할 부분들… 예를 들면, 변수 선언시 자동초기화 같은 것들이 안되어 있으니 일일히 수동으로 다 해줘야된다. PHP, 자바스크립트도 좀 해봤는데 이러한 언어들도 지원하는 기능을 C가 지원하지 않는다니… 좀 놀라웠다.
게다가 학원에서는 Visual C 6.0으로 하는데 정말 컴퓨터 부셔버리고 싶을만큼 답답하다. 플래시 IDE의 에디터에서도 코드힌트 같은 어느정도의 편리성은 제공하는데 이건 뭐 에디터상으로 지원되는 기능이 너무 없다. Flash Builder(= 이클립스IDE)에서 지원되는 코드힌트, 자동완성, Code Snippet 같은게 있다면 얼마나 좋을까 싶다. 특정 메서드를 쓰면 관련 클래스파일을 자동임포트 해주는 것처럼 헤더파일을 자동입력해주면 좋겠는데 이런 기능도 없다. 최근에 나오는 Visual C는 어느정도 편의기능을 제공하는지 모르겠지만 여튼 Visual C 6.0은 정말 답답하다.
메모리의 접근이라는 새로운 화두가 던져지니 신기하기도 하고 불편하기도하고 그렇다. 이 역시 플래시에서는 컴파일러 차원에서 해결해주던 것을 심각하게 고민하며 코드를 짜야된다. 지금이야 커맨드라인에서 돌아가는 프로그램을 짜니 메모리에 대해 그럭저럭 잘 이해하는데 GUI 환경에서는 메모리에 대해 어떻게 관리하고 접근하는지 너무 궁금하다.
포인터라는 개념이 정말 어렵고 이에 대해 공부하다 포기하는 사람도 많다고해서 얼마나 어려운지 궁금했는데 들어보니 초기개념상으로는 생각보다 어렵지 않다. 일반 변수/함수는 ‘직접 참조’이고 포인터는 ‘간접 참조’라는 개념인데 이 대상이 ‘메모리 영역’이라는 점일뿐. 직간접 참조에 대한 이해와 사용은 그동안 코드에서도 써오던 개념들인데 그 대상이 눈에 안보이는 메모리 영역이라는 것이어서 좀더 생각을 해야하는 것 같다.
아직은 쉬운 코드만 보고 있어서 그런지 포인터의 효율성에 대해 이해가 잘 안된다. 좀더 복잡한 프로그램을 보며 그때 이해해야할 것 같다.
여튼 얼마간 C를 배워보니 다른 언어의 세계도 재미있고 생각만큼 그리 어렵게 생각할 필요도 없다는걸 알았다. 앞으로 더 재미있는 코드를 많이 연습해봐야될 것 같다.