과정1)

OSX에서 mysqlutf-8로 변경하기 전에 먼저 확인해야할 것이있다.

root 비밀번호를 설정한적이 없다면, 먼저 root 비밀번호를 설정해줘야 한다.

(참고로 글쓴이는 이 부분을 생략해서 삽질했음)

터미널을 열고서,

sudo -s 를 입력 후 엔터 입력하고 나서 password에는 현재 사용하는 비번을 입력한다.

위의 그림과 같은 코드가 나오는데 아래 처럼 붉은색으로 칠한 부분을 입력하도록 한다.

bash-3.2# passwd root 입력후 엔터키

New password : 새로운비밀번호

Retype new password : 새로운비밀번호 확인

exit를 입력하고 터미널을 빠져나온다.


과정2)

다시 터미널을 열고 다음과 같이 입력한다.

su - root로 입력하고 나서 비밀번호를 넣은 후

vi /etc/my.cnf를 입력한다.

파일이 열리면 다음의 코드를 붙여 넣는다.


[mysqld]

character-set-server=utf8

collation-server=utf8_general_ci

init_connect=SET collation_connection=utf8_general_ci

init_connect=SET NAMES utf8

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8


위의 코드를 붙여 넣었으면

1)  esc 버튼을 누른다.

2)  :버튼을 누른다.

3)  wq버튼을 누르고 엔터

*만약 어떤 오류 메시지가 뜬다면 root권한으로  접속하지 않아서 일것이다.

위에 적어둔 '과정1)' 부분을 따라하고 나서 다시 '과정2)' 부분을 시도해본다.


4) mysql 재시작 (꼭 해주도록한다)



과정3)

mysql에 접속하고나서 status를 입력해보자.

다음과 같이 utf-8로 수정되어져야 한다.



과정4)

그래도 안되는 경우 테이블charset 변경을 변경한다.

alter table 테이블명 convert to charset utf8;


Mac OSX에서 JSP 기본 개발환경 구축하기.


step1) JDK 설치
    mac에는 JDK가 기본적으로 설치되어 있으므로 1단계는 과정은 생략한다.


step2) 톰캣 설치, 이클립스 설치, 이클립스 설정
    http://hoyanet.pe.kr/1940


step3) MySQL 설치
   http://hoyanet.pe.kr/1942


step4) MySQL 설정(한글문제, 실행, root비번)
   http://baepro.tistory.com/4

    http://mirwebma.tistory.com/5


step5) 이클립스에 MySQL JDBC 라이버 설정하기
    http://mirwebma.tistory.com/6





2010.12.17~19에 일본에 다녀왔습니다.

다녀온지 꽤 시간이 지났지만 며칠전에 또 일본을 다녀오게 되어서, 블로그질 하고 싶은 생각이 들었습니다.

개인적으로 일본의 동일본보다는 서일본이 더 끌리더군요. 



헤이안신궁 입구


헤이안 신궁



키요미즈테라




코토의 어떤 길에서 찰칵 ㅋ



오사카성



츠텐카쿠에도 갔습니다.



츠텐카쿠에서 바라본 오사카 야경





1)
우선 다음과 같은 경로에 접근하여 en_US 폴더를 압축을 해둔다.(압축 안해도 되지만 혹시 잘못될 경우 돌려 놓기 위해서)
C:\Documents and Settings\User\Local Settings\Application Data\Adobe\Flash CS5.5\

※ 참고로 윈도우7에서는 ↑위와 같은 경로를 가기 위해서는 폴더 접근 권한등으로 접근이 불가능하므로 
폴더 권한 설정을 해줘야한다. 다음의 링크를 참고하도록 한다.
windows7에서 Documents and Settings를 엑세스 하는 방법 

1-1)
mac 유저는 다음과 같은 경로로 접근하여 en_US 폴더를 압축을 해둔다.(압축 안해도 되지만 혹시 잘못될 경우 돌려 놓기 위해서)
MacHDD > user> 라이브러리 > Application Support > Adobe > Flash CS5.5 
※ 라이브러리 폴더가 보이지 않으면 숨김 파일 표시하기로 폴더 상태를 변경해야 한다. 다음의 링크를 참고한다.
맥에서 숨긴 파일 파인더로 보기
 

2)
progression 홈에서 다운 받은 Progression4-ja-CS5.zxp 를 더블 클릭하여 설치한다.


3)
C:\Documents and Settings\Joh\Local Settings\Application Data\Adobe\Flash CS5.5 
(맥 유저는 MacHDD > user> 라이브러리 > Application Support > Adobe > Flash CS5.5 ) 

의 다음과 같은 경로를 보면
en_US  (원래 있던 폴더)
ko_KR  (새로 만들어진 폴더)
ja_JP  (새로 만들어진 폴더)
라는 폴더가 보일것이다.


4)
ja_JP\ Configuration 폴더안의 내용을 모두 복사한 다음 en_US\Configuration 폴더 내에 덮어 씌운다.


5)
ja_JP 폴더는 이제 삭제하도록 한다. (내용을 모두 en_US로 복사 해줬기 때문에 존재할 이유가 없다)


6)
flash CS5 또는 CS5.5를 실행하고 플래시 상단 메뉴에 
Windows > other panels와 
Windows > Components에 
progression관련 항목이 나타나 있으면 설치가 정상적으로 된 것이다.





'Programming > Flash AIR' 카테고리의 다른 글

parent에 관해서  (0) 2012.02.02
LocalConnection 팁  (0) 2012.02.02
플래시 최적화 링크  (0) 2012.01.22
모바일 AIR 최적화  (0) 2012.01.12
[AS3.0] try catch 초간단 예문  (0) 2011.09.15

parent 속성은 MovieClip의 속성이 아니라 DisplayContainer의 속성이다.

parent를 이용하여 부모 또는 부모의 다른 자식인스턴스(다른 포함관계객체)에 접근하기 위해서는
타입 캐스팅을 해주고 접근해야한다.

예1) MovieClip(parent).gotoAndStop(1);
예2) MovieClip(parent).brother.x = 100;

parent에 관해서 자세한 설명은  http://ufx.kr/blog/404 을 참고한다.
 

'Programming > Flash AIR' 카테고리의 다른 글

영문 Flash CS5에서 progression4 일어버전 Extension 설치하기  (0) 2012.02.03
LocalConnection 팁  (0) 2012.02.02
플래시 최적화 링크  (0) 2012.01.22
모바일 AIR 최적화  (0) 2012.01.12
[AS3.0] try catch 초간단 예문  (0) 2011.09.15

swf간에 런타임 상에서 서로의 함수를 당겨야 하는 상황이 생기기 마련이다.
이 때, localConnection 객체를 사용하면 swf간 쉽게 동적으로 통신이 가능하다.

불려들여질 (불러들임을 당하는) swf 측에서 보통 다음과 같이 작성하게 된다.
var  lcChannerl:String = "_myChannel";
var   _receiver: LocalConnection;
_receiver = new LocalConnection();
_receiver.connect(lcChannerl);
_receiver.client = this;
 

문제가 되는 케이스는 계속해서 같은 swf를 반복적으로 로드해야 하는 상황이다.
2회이상 같은 swf 파일을 로드하면  이미 localConnetion 객체가 연결 되어 있다는 런타임 에러가 발생하는데..
이는 이전의 swf와 불러들이는 swf간에 채널이 연결되어 있어서 생기는 문제다.
따라서 문제를 해결하려면 다음과 같이 채널을 임의의 랜덤 값과 결합시킨다.
그리고나서, 크로스스크립팅을 통해 불러들인 swf content의 public 인스턴스변수 또는 속성에  접근하여 
랜덤하게 만들어진 채널 값을 넣어준다.

var ran:Number = Math.random();
var lcChannerl:String = "_eChannerl"+String(ran); // 랜덤한 수를 만들고 문자열과 결합한 임의의 채널을 만든다.
e.target.content.lcChannerls = lcChannerl;  // 불러들인 swf에 크로스스크립팅을 통해변수 또는 속성에
                                                          // 값을 넣고 채널로 활용한다.
_receiver = new LocalConnection();
_receiver.connect(lcChannerl);
_receiver.client = this;



 

'Programming > Flash AIR' 카테고리의 다른 글

영문 Flash CS5에서 progression4 일어버전 Extension 설치하기  (0) 2012.02.03
parent에 관해서  (0) 2012.02.02
플래시 최적화 링크  (0) 2012.01.22
모바일 AIR 최적화  (0) 2012.01.12
[AS3.0] try catch 초간단 예문  (0) 2011.09.15

Flash에서 버리기 십상인 16 개의 잘못된 사용
http://clockmaker.jp/blog/2009/01/using_flash/

 

'Programming > Flash AIR' 카테고리의 다른 글

parent에 관해서  (0) 2012.02.02
LocalConnection 팁  (0) 2012.02.02
모바일 AIR 최적화  (0) 2012.01.12
[AS3.0] try catch 초간단 예문  (0) 2011.09.15
티스토리로 블로그 이전  (0) 2011.04.19
* 플래시 안드로이드 프로그래밍 (위키북스)의 내용 중 최적화에 해당하는 부분만 요약하여 작성했습니다.
  책 내용 중 많은 부분에서 최적화 부분을 많이 강조하고 있더군요.



스크립트 최적화
 

- 가급적 지역변수를 사용하는 편이 속도도 빠르고 메모리 관리상으로도 좋다.

- 불필요하게 클래스를 너무 많이 만들거나 하나의 클래스를 너무 크게 만드는 것은 바람직하지 않다.

- static으로 선언하면 편리하지만 무분별하게 사용하면 메모리 낭비가 심하다. 꼭 필요한 경우에만 사용한다.

- 모바일에서 상속은 성능상의 문제로 그다지 권장하지 않는다.

- Math 클래스는 모바일 콘텐츠를 제작할 때는 사용을 권장하지 않는다. CPU자원을 많이 차지하기 때문에 Math클래스를 이용해     직접 연산하기 보다는 연산결과를 변수나 배열 등에 미리 넣어서 사용하는 방법을 권장한다. 속도를 위한 어쩔수 없는 선택이다.

- 무비클립을 스테이지에 배치할 때 무비클립 클래스를 이용해 객체를 생성하는 방법보다는 스테이지에 무비클립을 
  미리 놔두는 방법이 속도를 고려할 때 좋은 방법이다. 모든 무비클립(디스플레이 오브젝트)을 이런 방법으로 처리한다는 것은
  아니다. 자주 사용하는 오브젝트를 그렇게 처리하면 속도면에서 효과가 있다.

- 스테이지에 필요한 오브젝트를 미리 만들어 두고, 사용할 때는 화면에 보이게 하고 사용하지 않을 때에는 안 보이게 처리한다.
  alpha, visible, Stage.width 이 중 alpha를 이용하여 스테이지에 보이지 않게하는 방법은 추천하지 않는다.
  alpha는 보이지 않아도 렌더링되기 때문이다.
  필요한 무비클립을 스테이지에 미리 배치해둔다. 라이브러리에 두고 가변적으로 배치했다 제거했다 하면 속도가 느려지기
  때문이다. 하지만 첫 프레임에 모든 요소를 배치해두면 swf의 초기 로딩 속도가 느려질 수도 있기 때문에 콘텐츠 내의 화면을
  적절하게 키프레임으로 구분해서 초기로딩 속도를 확보하는 방법도 필요하다.

- 텍스트를 표현할 때는 동적 텍스트필드 보다는 정적 텍스트필드나 비트맵 이미지를 사용하기를 권장한다.
   렌더링 시간을 빠르게 하고 싶다면 텍스트 필드보다는 비트맵 이미지를 표현하는 것을 권장한다.

- 조건문에서는 경우의 수가 가장 높은 조건을 먼저 고려한다.
   당장 그리 큰 차이가 없지만 이런 코딩 습관이 쌓이다 보면 전체적으로 콘텐츠 품질이 향상되는 것을 느낄 수 있을 것이다.

- 배열을 사용하는 것보다 직접 입력하는 것이 좋다.
   for문을 돌면서 배열의 특정값을 참조하는 것보다 변수안에 해당 값을 넣고 직접 참조하는 방식이 더 빠르다.

- Adobe문서에 때르면 flash Lite에서는 가비지 컬렉션이 60초마다 한 번씩, 또는 메모리 사용량이 20%이상 갑자기 늘어날 때마다
  실행된다고 한다. 객체가 단 하나라도 참조되고 있으면 절대로 가비지 대상이 되지 않는다. 따라서 객체를 생성하고
  삭제하지 않으면 메모리 누수가 된다. 객체가 필요 없어지면 객체에 delete문이나 null값을 넣어 꼭 참조를 끊어 줄것.

- 여러 번 생성되는 객체는 재사용한다.
  자주사요하는 객체는 지웠다가 다시 생성을 반복하지 말고 재사용하도록 한다.

- 반복문 안에서 임시로 객체를 생성하거나 변수를 선언하지 않도록한다. 임시로 쓸 변수를 반복문 밖에서 선언한 후 사용하는
  것이 좋다.

- 이벤트 리스너 구문을 사용한 이후에는 이벤트 리스너를 제거한다.
  이벤트가 종료된 후에는 removeListner()를 호출해서 이벤트 리스너를 제거해누도록 한다.

- String은 콘텐츠를 제작할 때 꼭 필요한 객체지만 String이 메모리를 많이 낭비한다는 사실은 알고 있어야한다. 
  String은 원시 데이터가 아니라 객체로서, 원시데이터에 비해 메모리를 많이 차자한다.
  txt.text += "\n" + "test code";  이렇게 +=를 이용하면 메모리가 해제되지 않고 계속 늘어나서 문제가 생길 수 있다
  이런 코드를 사용하여 문자열을 늘리지 말것.

- trace문은 제거해 주도록 한다.

- static (클래스 메서드, 클래스 변수) 사용을 자제한다. 객체를 생성하지 않아도 되는 장점이 있으나 static으로 선언하면
  콘텐츠가 종료될 때까지 메모리에 계속 상주하는 문제가 있다.



렌더링 최적화 
- 텍스트를 표현할 때는 정적 텍스트필드나 비트맵 이미지를 사용하기를 권장한다.
  렌더링 시간을 더 빠르게 하고 싶다면 텍스트필드 보다는 비트맵 이미지로 표현하기를 권장한다.

- 콘텐츠가 무척 느린경우
  - 드래깅하는 시점에서 스테이지에 오브젝트 수가 많은지 확인해 본다. 특히 텍스트필드의 개수가 많을 경우 놐텐츠가 느려짐.
  - 렌더링 영역이 넓을수록 CPU의 점유율이 높아진다. 즉, 갱신해야 하는 영역을 가급적 최소화한다.
  - 이미지는 되도록 비트맵 이미지를 사용한다. publish 환경설정에서 GPU가속 기능을 사용한다. 단, GPU 가속을 사용하면
    속도는 빨리지지만 베터리 소모량이 늘어나는 단점이 있다.
  - 드래깅하는 과정에서 불필요한 스크립트를 줄인다. 예를들어 드래깅하는 과정에서 이미지를 로딩하거나 복잡한 연산을
    수행한다면 드래깅이 끝난 후 이를 처리할 수 있는지 검토할 것.

- 하드웨어 가속사용
  하드웨어 가속을 효율적으로 적용하면 아주 부드럽고 빠르게 동작하는 앱을 구현할 수 있다.
  사용하는 디스플레이 오브젝트의 display 속성을 casheAsBitmap이나 casheAsSurface로 설정한다.
  properties 속성창의 display항목을 보면 무비클립이나 비트맵등에 casheAsBitmap로 설정하는 부분이 나온다 그것을 체크할것.
  텍스트필드의 경우 하드웨어 가속을 사용하지 않는편이 좋다.
  가급적 벡터보다는 비트맵 이미지를 이용해 무비클립이나 sprte를 만든다.
  스테이지에서 사용하지 않는 오브젝트는 스테이지 영역 밖으로 빼는 것이 좋다. 스테이지 영역 안에 있으면 렌더링할 때 같이
  계산되기 때문이다.




그래픽 최적화 

- 로컬에서 보는 텍스트 필드의 폰트가 모바일 디바이스에 올려진 폰트와 다르게 보인다. 이것은 디바이스에서 텍스트를 화면에
  표시하는 폰트 렌더링 엔진에서 폰트의 모습과 종류를 결정하기 때문이다. 그래서 콘텐츠를 제작할 때 반드시 디바이스에서
  확인을 해봐야한다. 따라서 동적 텍스트 필드의 폰트 속성을 설정할 때는 Use device fonts로 설정해주는 것이 좋다.
  폰트를 콘텐츠에 포함하면 용향이 너무 커지므로 권장하지 않는다.

- 텍스트필드의 좌표는 항상 정수로 설정하도록한다.
  x=10.3 이렇게 실수를 사용하면 텍스트가 선명하지 않고 번져 보여 문제가 생길 수 있다. 따라서 x = 10이렇게 정수를
  사용하도록 하고 디바이스에서 폰트를 표현할 때 권장하는 크기인 12, 14, 16, 18과 같이 짝수로 설정하는 것이 좋다.

- 디바이스에서 비트맵 이미지가 흐리게 보이거나 깨져 보이는 경우가 있다. 이럴 경우 몇 가지 확인해볼 사항이 있다.
  x, y좌표가 정수인지 확인할 것, 모든 무비클립의 좌표를 확인해 본다. 좌표가 소수점이면 간혹 비트맵이나 폰트가
  일그러지는 문제가 발생 함.

- 이미지는 무손실 PNG로 설정한다.
  라이브러리에 있는 Properties 속성에서 Compression 항목을 Lossless(PNG/GIF)로 설정한다. 이와 같이 비트맵을 무손실
  포맷으로 설정하면 swf의 용량은 커지지만 콘텐츠에서 사용하는 속도는 더 빨라진다. 이미지를 로딩할 때 비트맵 압축을 푸는
  과정이 생략되기 때문이다. 또한 이미지가 흐려지는 현상을 예방하는 장점이 있다.
  

- bitmap이든 png든 필요한 영역만큼만 잘라내서 사용하도록 한다. 예를들어 PNG경우 배경이 안보인다고 해서 
  포토샵에서 이미지를 크게 하여 플래시로 불러들인경우 해당 이미지가 배경은 안보이지만 그만큼 큰 이미지임을 잊지말것
  따라서 필요한 이미지 만큼만 커팅해서 쓴다.

- 비트맵 이미지의 경우 색상수를 최소화하는 것도 좋은 방법이다.

- 이미지의 가로 세로 크기는 짝수로 해주는 것이 좋다.

- 전체화면을 차지하는 큰 이미지 보다는 이미지 조각을 이용해 전체화면을 구성하거나, 큰 이미지를 분리해서 사용하는 것이 좋다.

- 그라디언트와 투명효과는 가급적 자제하는 것이 좋다. 특히 백터 이미지일 경우에는 cpu점유율이 높은 탓에 꼭 써야한다면
  비트맵으로 만들어 처리하는 것이 좋다. 그라디언트를 쓰더라도 색상단계를 최소화 해야한다.

- 이미지를 재사용할 때 그룹을 만들어 사용하는 것을 피하고 심볼로 이용한다.
  그룹을 만들기보다는 심볼로 동록한 후 사용하면 메모리를 절약할 수 있다.

- 백터그래픽에서 필요하지 않는 아웃라인은 제거한다.

- 부드러운 곡선 보다는 직선으로 표현하면 CPU의 부담을 덜 수 있다.

- 백터그래픽은 Optimaze한 후 사용한다.백터 그래픽을 최적화해 준다.
  메뉴 > Modify > Shape > Optimaze

- Jpg파일을 만들때는 화질을 조절하여 최적화한다.
  상단의 file메뉴를 선택한 후 Publish Setting을 선택하면 flash 탭에서 다음과 같이 jpg quality를 설정하는 항목이 있다.
  





 

'Programming > Flash AIR' 카테고리의 다른 글

parent에 관해서  (0) 2012.02.02
LocalConnection 팁  (0) 2012.02.02
플래시 최적화 링크  (0) 2012.01.22
[AS3.0] try catch 초간단 예문  (0) 2011.09.15
티스토리로 블로그 이전  (0) 2011.04.19

'Programming > Tools' 카테고리의 다른 글

Sublime text2 팁 & 단축키  (0) 2013.06.20
package
{
import flash.display.Sprite;
import flash.events.Event;

/**
* ...
* @author KM.Cho
*/
public class Main extends Sprite 
{
public function Main():void 
{
try 
{
fx(2); // 잘못된 값 또는 원치 않는 값이 들어왔을 경우 아래 catch 블럭 부분이 실행 된다.
}
catch (err:Error)
{
trace("예외가 발생하면 이곳에서 어떤 행동을 한다.");
}
}
private function fx(num:int):void
{
if (num != 3) { // 3이라는 값이 아닐 경우 에러를 날림.
throw new Error();
}
}
}

}

'Programming > Flash AIR' 카테고리의 다른 글

parent에 관해서  (0) 2012.02.02
LocalConnection 팁  (0) 2012.02.02
플래시 최적화 링크  (0) 2012.01.22
모바일 AIR 최적화  (0) 2012.01.12
티스토리로 블로그 이전  (0) 2011.04.19

+ Recent posts