Flash 자체에서 액션스크립트 코딩을 줄창해오다가 어느 순간부터인가 코드양이 점점 많아지면서부터 힘들어졌었다.
그래서 바꾸게 된 것이 바로 Flash Develop
Flash Develop으로 잘 써왔었고 무료임에도 정말 좋은 프로그램이라고 생각함. 하지만 기능적으로 아주 약간씩 부족한게 있었고(특히나 나한테는 Subversion과 연동하는 기능이 필요했는데 이게 안되는게 너무 불편했다.) 그럴때마다 플러그인이 있나 없나 찾아헤메야하는등의 불편함도 있었고 더불어 플래시와 연동하면서 작업할 수 있긴하지만 뭔가 좀 부족한 느낌?
그러다가 최근에 다른 툴을 찾아봤는데 물망에 오른게 Adobe의 Flash Builder 4와 PowerFlasher의 FDT3 두개였다. FB4의 경우에는 플래시 작업자들 사이에서 상당히 실망스럽다는 반응이 많았고 FDT3쪽은 상당히 괜찮다는 평이 많았다.
그래서 FDT3를 선택하고 다운로드... 해서 써보니 이런... 이클립스 인터페이스에 적응이 안된다. 더군다나 가격도 프로버전은 60만원선. 음... 게다가 FDT3는 코드작업에는 좋은 기능이 많았지만 정작 플래시와 연동이 안되어서 코딩 따로 컴파일 따로 하면서 봐야하는 귀찮음이 있을 것 같았다.
그래서 지우고 다시 Flash Builder 4를 설치.
역시나 이클립스 기반이어서 인터페이스에 적응이 잘 안되더라. 아 그냥 다시 FlashDevelop에서 작업하고 싶다...라는 생각이 자꾸 들었지만 꾹 참고 현재까지 2주일 넘게 사용 중... 이제 살짝씩 적응된다.
FlashDevelop에 비해서는 아무래도 에디터 자체적으로는 좀더 불편한 것 같다. 예를 들어 자동완성 기능이 너무 부족하게 느껴졌다. 'private function test():void'라는 문장을 입력해야할 경우에 FlashDevelop의 경우에는 'pri'만 입력해도 private를 입력할 것이냐고 물어보고 'fu'만 입력해도 function을 입력할 것이냐고 물어본다. 근데 FB4에서는 이게 안된다. ㅡㅡ;; 무지 불편하다.
물론 이클립스 기반 툴에서 저정도야 설정만 해주면 될것 같지만 문제는 FlashDevelop은 아무런 설정 없이 설치한 그대로도 저 기능으 지원하고 FB4는 사용자가 다시 만져줘야한다는 점.
그리고 코드 컬러링도 FlashDevelop이 좀더 나은 것 같다.
여튼 몇몇가지 불편함이 있긴했다.
장점은... 수많은 플러그인 시스템. 특히나 내가 원하던 SVN 플러그인이 있어서 좋다. 파일을 수정하고 SVN에 올리려고 할때 귀찮은 윈도우탐색기를 켜서 거북이SVN으로 올릴 필요가 없이 FB4 안에서 다 된다
또.. 플래시와의 연계 기능. FB4의 예전 버전인 Adobe Flex Builder 3에는 이러한 기능이 없어서 Flex Builder에서 코드를 작성하고 Flash에 와서 컴파일하는 수고를 해야했는데 이번에는 FB4에서 자체적으로 지원한다. FB4에서 파일을 수정하고 플래시에서 컴파일할 수 있도록 미리 버튼이 준비되어있음. 그리고 플래시에서 액션스크립트 파일을 수정하려고 하면 FB4에서 열겠냐고 물어봐준다. 이 기능 참 편리한듯. FlashDevelop에서도 연계하며 쓸수 있긴하지만 이정도로 연계가 되진 않기 때문이다.
잠깐 테스트를 해본 결과 FB4로 바꾸는게 좋을 것 같다는 것이 내 판단. 아직도 FB4에 대해서는 모르는 부분이 더 많은데 음....... 전체적으로 놓고 봤을 때 FlashDevelop은 '가볍고 빠르고 간단함. 단 연계플레이나 고난도 작업을 하기에는 힘들어보임'이 내 결정.
이클립스 IDE에 잘 적응이 안되지만 그래도 처음 접할 때보다는 많이 나아진 것 같다. 좀더 쓰다보면 더 적응 되겠지. 그런데 아직도 FB4에서의 'Project'라는 개념을 잘 이해 못하겠다. 휴....
애초 설계부터 GET 방식과 달리 데이터 전송에 더 목적이 있었기 때문에 여러가지 정보를 파라미터로 보낼 수 있다.
단, 이럴 때 LoadVars 객체를 두번 써야하는 번거로움이 생겨난다.
var data_1:LoadVars = new LoadVars(); // 객체 생성 var post_data:LoadVars = new LoadVars(); // 객체 생성
post_data.onLoad = function(success:Boolean) { if (success) { if (post_data.result == 1) { // 돌아온 데이터의 result 값이 1일 때 처리 } else if (post_data.result == 2) { // 돌아온 데이터의 result 값이 2 일 때 처리 } else { // 돌아온 데이터의 result 값이 그 이외일 때 처리 } } else { // 데이터를 보내고 다시 되돌아온 수신이 오류일 경우 처리 루틴 } };
data_1.param1 = text1; // 넘길 데이터 data_2.param2 = test2; // 넘길 데이터 data_1.sendAndLoad("/post_data_test/test.jsp", post_data, 'POST'); // POST로 전송시작
GET 방식에 비해 LoadVars 객체를 한번 더 생성해야하는지라 코드가 약간 더 길어진다.
파라미터로 계속 지정해나가면 되서 데이터를 정렬하고 관리하는게 좀더 쉬워진다는 장점이 있고 GET과는 다르게 sendAndLoad 명령어를 쓴다는 점 정도만 기억하면 될듯.
특별히 어려운건 없지만 번거롭고 코드가 조금이라도 길어짐과 LoadVars를 두번 쓰다가 헷갈릴 수가 있어 난 사용을 잘 안하지만 프로그래머가 POST 데이터로 받고 싶다고 우긴다면 해줘야하므로 이 방법 역시 알고는 있어야할듯.
가끔 개발자들과 연동 작업을 하다보면 플래시에서 어떻게 데이터를 넘겨달라고 지정해줄때가 많은데 그중 GET 방식과 POST 방식이 제일 흔하다.
GET 방식은 쉽게 설명해서 URL에 데이터를 넣어서 보내는 방식. POST방식은 그렇지 않은;; 방식이다.
GET 방식으로 보내고 받을 때. LoadVars를 이용해 새 객체를 만들고 OBJECT.load(url) 형식으로 부르면 된다.
var object_name = new LoadVars(); object_name.onLoad = function(success:Boolean) { if (success) { // 로드가 성공했다면 수행할 동작 trace(object_name.test_data) } else { // 로드가 실패했다면 수행할 동작 trace("Faild") } } object_name.load("경로/파일명?변수명1=변수1&변수명2=변수2&..........')
GET 방식은 굉장히 유용하게 쓰이고 있다. 일단 URL 뒤에 변수명=변수 식으로만 계속 이어붙여주면 되기 떄문에 다루기도 쉽다. onLoad 명령은 통신을 한후 그 결과를 봐서 제대로 통신했는지를 알수 있다. 'object_name.변수명'을 이용해서 리턴된 값을 이용해 어떠한 다른 처리를 나누어 할 수도 있다.
GET 방식은 애초부터 간단한 정보들만 넘기도록 만들어진 것이라 많은 정보를 처리할 때는 POST로 처리함이 옳지만 URL에 뒤에 변수명=변수 식으로 계속 붙이기만 하면 되니 사용하기가 편해서 굉장히 많이 쓰인다.
URL에 데이터들이 들어가므로 보안상 문제가 좀 있다. 아무리 플래시 내부에서 처리한다하지만 HTTP 패킷을 캡쳐하면 내용이 보인다. (하긴 그건 POST 방식도 매한가지이긴하지만.)
Adobe Flash Media Server (이하 FMS) 설치 절차. 누군가가 필요할까봐 그리고 내가 까먹지 않기 위해 적어놔야겠다.
일단 Adobe 홈페이지(http://www.adobe.com)에서 프로그램을 다운 받는다.(다운로드 링크는 계속 바뀌지만 현재는 여기에서 다운로드 가능) 가입과정이 있어야하며 대충 300~400메가 정도의 파일을 다운 받을 수 있다. 윈도우용/리눅스용이 제공된다.
플래시 미디어 서버는 라이센스 없이 사용할 경우, 기능상으로는 동일하지만 동시접속 10명으로 제한되는 Developer Server 버전으로 설치되게 된다. 라이센스 구입비용은 나도 잘 모름. ^^;
여튼 리눅스용 파일을 다운로드 받으면 ZIP으로 압축되어있고 이것을 서버에 올린후 압축을 풀면 FMS_3_5_1_r516 이라는 디렉토리가 생성된다.
(참고로 내 서버는 1프로세서에 램1기가, CentOS 5.3이다. 플래시미디어서버의 권장사양보다 좀 떨어지지만 그래도 설치는 잘 된다.)
이제부터 설치 시작.
./installFMS
설치 명령을 내린다.
To install Adobe Flash Media Server now, press ENTER. To cancel the installation at any time, press Control-C.
프로그램을 설치할꺼면 엔터 중간에 취소 시키고 싶으면 언제나 Control-C를 누르라고 한다.
사용권 읽는 화면이 나온다. 아무키나 누르고 있으면 밑으로 쭉 내려간다. 다 읽어야만 설치 시작가능.
Do you agree with the license agreement? (y/n):
라이센스를 다 읽어봤냐는 질문. 안 읽어봤지만 그냥 y 입력.
Please enter your Flash Media Server 3.5.1 serial number.
시리얼키 입력하라는 메시지. 없다면 그냥 엔터 누르면 패쓰된다. 난 구입하지 않았으므로 그냥 엔터.
You have not entered a serial number. Falling back to the Adobe Flash Media Development Server!
Would you like to try again? y/n: Default [n]:
시리얼키 입력 안해서 디벨롭먼트서버로 설치된다는 것. 다시 키 입력을 시도하겠냐고 묻는다. n 입력.
The installer will install Adobe Flash Media Server 3.5.1 in the following directory Default [/opt/adobe/fms]: /usr/local/fms
설치 위치를 묻는다. 난 그냥 프로그램들은 /usr/local/에 설치하는 버릇이 있어서 /usr/local/fms 를 입력하고 엔터.
The Adobe Flash Media Server communicates on the IANA-assigned port of 1935, which is the port most Flash applications expect, and can also communicate on port 80, both for tunneling Flash over HTTP, and for proxying HTTP to a webserver.
Please enter the Adobe Flash Media Server port(s), comma-separated Default [1935,80]:
포트에 대한 설명과 바꿀려면 입력하라는 메시지. 귀찮으므로 그냥 엔터쳐서 디폴트로.
Please enter the port to use for the Admin service. You can only specify one admin port. Default [1111]:
관리자 서비스를 위한 포트 지정. 나중에 관리자 API 등에서 접속할 때 필요하다. 귀찮으므로 역시 디폴트 설정하기 위해 엔터.
The administrative user name and password you provide here is required to use the Adobe Flash Media Server Management Console for administration, monitoring, and debugging.
Please enter the administrative username: admin
관리자 이름 입력. 난 admin 으로 입력.
Please enter the administrative password: Confirm password:
관리자 암호 입력. 그리고 다시 한번 확인 입력.
Please enter the user that the Adobe Flash Media Server service will run as Default user [nobody]:
Please enter a valid user group for the "nobody" user: Default group [nobody]:
서비스가 실행될 유저와 그룹을 지정하는 부분. 그냥 엔터 엔터.
Do you want to install apache? (y/n) Default [y]: n
아파치를 설치하겠냐고 묻는다. 플래시 미디어서버 설치프로그램에 아파치 2.2를 기본으로 탑재하고 있는데 이미 깔려있기도 하거니와 굳이 이걸 깔 필요가 없다.
Do you want the Adobe Flash Media Server service to run as a daemon? (y/n) Default [y]: y
데몬으로 실행하겠냐는 질문. 당연하지!!!
Do you want to start the Adobe Flash Media Server after the installation is done? (y/n) Default [y]: y
설치다하고 자동으로 실행하겠냐는 질문. 당연하지.
여기까지 질문에 답하고 나면 Install Action Summary가 나타나며 y를 누를시 설치가 시작된다. 설치는 1분도 채 안 걸린다;;; 엄청 빨리 설치됨;;;