as 
operator  
Usage

expression as datatype
Language version: ActionScript 3.0
Player version: Flash Player 9

Evaluates whether an expression specified by the first operand is a member of the data type specified by the second operand. If the first operand is a member of the data type, the result is the first operand. Otherwise, the result is the value null.

The expression used for the second operand must evaluate to a data type.

Operands

expression:* — The value to check against the data type specified.

datatype:Class — The data type used to evaluate the expression operand. The special * type, which means untyped, cannot be used.
Result

Object — The result is expression if expression is a member of the data type specified in datatype. Otherwise, the result is the value null.

Example
How to use examples
The following example creates a simple array named myArray and uses the as operator with various data types.
public var myArray:Array = ["one", "two", "three"];
trace(myArray as Array); // one,two,three
trace(myArray as Number); // null
trace(myArray as int); // null

===================================================================================================
is  
operator  
Usage

expression1 is expression2
Language version: ActionScript 3.0
Player version: Flash Player 9

Evaluates whether an object is compatible with a specific data type, class, or interface. Use the is operator instead of the instanceof operator for type comparisons. You can also use the is operator to check whether an object implements an interface.

Result

Boolean — A value of true if expression1 is compatible with the data type, class, or interface specified in expression2, and false otherwise.

Example
How to use examples
The following example creates an instance of the Sprite class named mySprite and uses the is operator to test whether mySprite is an instance of the Sprite and DisplayObject classes, and whether it implements the IEventDispatcher interface.
import flash.display.*;
import flash.events.IEventDispatcher;

var mySprite:Sprite = new Sprite();
trace(mySprite is Sprite); // true
trace(mySprite is DisplayObject); // true
trace(mySprite is IEventDispatcher); // true

===================================================================================================
instanceof  
operator  
Usage

expression instanceof function
Language version: ActionScript 3.0
Player version: Flash Player 9

Evaluates whether an expression's prototype chain includes the prototype object for function. The instanceof operator is included for backward compatibility with ECMAScript edition 3, and may be useful for advanced programmers who choose to use prototype-based inheritance with constructor functions instead of classes.

To check whether an object is a member of a specific data type, use the is operator.

When used with classes, the instanceof operator is similar to the is operator because a class's prototype chain includes all of its superclasses. Interfaces, however, are not included on prototype chains, so the instanceof operator always results in false when used with interfaces, whereas the is operator results in true if an object belongs to a class that implements the specified interface.

Note: The ActionScript is operator is the equivalent of the Java instanceof operator.

Operands

expression:Object — The object that contains the prototype chain to evaluate.

function:Object — A function object (or class).
Result

Boolean — Returns true if the prototype chain of expression includes the prototype object for function, and false otherwise.

Example
How to use examples
The following example creates an instance of the Sprite class named mySprite and uses the instanceof operator to test whether the prototype chain of mySprite includes the prototype objects of the Sprite and DisplayObject classes. The result is true with the Sprite class and the DisplayObject class because the prototype objects for Sprite and DisplayObject are on the prototype chain of mySprite.
var mySprite:Sprite = new Sprite();
trace(mySprite instanceof Sprite); // true
trace(mySprite instanceof DisplayObject); // true
The following example uses the IBitmapDrawable interface to show that the instanceof operator does not work with interfaces. The is operator results in true because the DisplayObject class, which is a superclass of the Sprite class, implements the IBitmapDrawable interface.
var mySprite:Sprite = new Sprite();
trace(mySprite instanceof IBitmapDrawable); // false
trace(mySprite is IBitmapDrawable); // true

'etc > old' 카테고리의 다른 글

for in 구문  (0) 2008.04.16
실행시간 시간차이 구하기  (0) 2008.04.16
타입 캐스팅  (0) 2008.04.16
변수 관련 기초 공부  (1) 2008.04.16
OOP ?일까나....  (0) 2008.04.16

[결과]
true
string

is 구문으로 타입 캐스팅 가능 여부 확인 이후 as 구문으로 타입 캐스팅을 실시해 준다.

'etc > old' 카테고리의 다른 글

실행시간 시간차이 구하기  (0) 2008.04.16
as, is, instanceof 연산자  (0) 2008.04.16
변수 관련 기초 공부  (1) 2008.04.16
OOP ?일까나....  (0) 2008.04.16
addChildren의 특성 테스트  (0) 2008.04.16


결과 :

<type name="int" base="Object" isDynamic="false" isFinal="true" isStatic="false">
  <extendsClass type="Object"/>
  <constructor>
    <parameter index="1" type="*" optional="true"/>
  </constructor>
</type>

결과값이 하나만 출력된 것을 볼 수 있다. 그러므로 올바르게 설정하려면...

var t1:int, t2:int, t3:int; 이런식으로 설정해 줘야만 한다.

참조 1)

//strict 형태 모드
var c:int;
c=3.3;
trace(describeType(c));

//standard 형태 모드
- type을 지정하지 않아 대형 프로젝트에서는 늦어질 수 있음.
var c;
c=3.3;
trace(describeType(c));

결론 : strict 모드로 코딩하는 습관을 가져야 한다.

참조 2)
override : 상속 등에 사용되는 것임.
overload : 파라미터에 의존적. 함수명 동일 입력 변수가 다른 함수 등

참고로 현재 AS3에서는 overload는 지원하고 있지 않음에 유의한다.


'etc > old' 카테고리의 다른 글

as, is, instanceof 연산자  (0) 2008.04.16
타입 캐스팅  (0) 2008.04.16
OOP ?일까나....  (0) 2008.04.16
addChildren의 특성 테스트  (0) 2008.04.16
흥분한다면.... ?  (0) 2008.04.16

[Flash] http://wonsama.tistory.com/attachment/gk150000000000.swf



파일명은 패키지의 클래스명과 일치해야 함에 유의해야 한다.

위와 같은 형태로 패키지를 작성한 이후 Flash에서 사용하려면....

var cal:Calculator = new Calculator();
trace(cal.SUM(14,2));

그럼 결과가 16 나온다.

여기서 cal 은 인스턴스 및 변수, Calculator은 Type이라 명명한다.
이것을 바로 OOP적인 방법으로 코딩하는 것임. 즉 Type을 Instance 化 하여 사용하는 것이다.

'etc > old' 카테고리의 다른 글

타입 캐스팅  (0) 2008.04.16
변수 관련 기초 공부  (1) 2008.04.16
addChildren의 특성 테스트  (0) 2008.04.16
흥분한다면.... ?  (0) 2008.04.16
NAT  (0) 2008.04.15
기본적으로 플레시 화면에 2개의 무비클립을 추가시켜준 이후에 컴파일 해준다.

결과

stage.numChildren : 1
this.numChildren : 2
===================
ADD
stage.numChildren : 2
this.numChildren : 1

결론 :

ㄱ. add하면 하나 빠지네 ㅡ,.ㅡ;
ㄴ. 구조
Stage - MainTimeline - 무비클립 : 메인 타임라인 위에 스테이지가 있네 ㅋㅋ

기타 :

hash table
: key, value 형태로 되어있음.

cs3에서는 non-dynamic 형태로 바뀌면서 속도가 증가됨
(이전에는 dynamic이여서 runtime에서 타입이 결정됨.)
(non-dynamic compile단계에서 타입이 결정되므로 속도가 빠름.)

ctrl+F8 : create new symbol

dynamic일 경우(무비클립...)에는 hashtable 사용가능
PP.kk=30;
trace(PP.kk);
trace(PP["kk"]); => 해쉬 테이블 형태로 호출하는것이 속도가 빠르다.

trace(describeType(PP)); 위에서 생성한 무비클립의 타입을 상세 보여준다.

:: 범위 연산자(Arrage Operator)
ex) flash.display::MovieClip => MovieClip은 flash.display의 패키지 소속이다.

isDynamic => hash table 사용여부
isFinal => 상속 가능 여부

implementsInterface (구현상속)
accessor 속성값

metadata
fla -> swf : 컴파일 단계에서 명령을 주는 것임.

쩝.. 아직 갈길이 멀다 멀어 ;;




'etc > old' 카테고리의 다른 글

변수 관련 기초 공부  (1) 2008.04.16
OOP ?일까나....  (0) 2008.04.16
흥분한다면.... ?  (0) 2008.04.16
NAT  (0) 2008.04.15
DMZ란?  (0) 2008.04.15
사용자 삽입 이미지

헐... 이렇게 되지 않을까나 ? ㅋㅋ

출처 : Soul Eater 2화 스크린 샷뚜~

'etc > old' 카테고리의 다른 글

변수 관련 기초 공부  (1) 2008.04.16
OOP ?일까나....  (0) 2008.04.16
addChildren의 특성 테스트  (0) 2008.04.16
NAT  (0) 2008.04.15
DMZ란?  (0) 2008.04.15
정상적으로 패킷은 그것의 시작점에서 부터 목적지까지 많은 다른 링크를 경유하게 됩니다. 이 들 링크중 어떤것도 패킷을 실제로 변경하지는 않습니다. 단지 이 것을 제 방향으로 보내주기만 합니다.

이러한 링크중 NAT를 사용하는 곳을 만나면 이 패킷은 그 시작점이나 목적지가 지나는 동안 변화되게 된다. 짐작하겠지만, 이것은 시스템이 작동하는 방식이 아닙니다. 그래서 NAT는 언제나 crock 같은 것입니다. 일반적으로 NAT를 실행하는 링크는 패킷을 어떻게 조작했는지를 기억하며 응답 패킷이 지나갈때 그 응답패킷을 원래대로 되돌려 모든 작동이 가능 하도록 합니다..

인터넷을 접속하였을때 대부분의 ISP들은 하나의 IP 주소를 부여합니다. 여러분은 어떠한 시작점의 주소에서도 패킷을 보낼 수 있습니다만 이 시작점의 IP 주소에서 보내진 패킷에게만 응답이 있을 것입니다. 여러개의 다른 기계(홈 네트워크에서처럼)에서 이 하나의 링크를 통하여 인터넷에 접속하기를 원한다면 NAT가 필요할 것입니다.

이것이 요즘 NAT를 사용하는 가장 흔한 이유이고 리눅스 세상에서는 '마스쿼레이딩'으로 알려져 있죠. 첫번째 패킷의 시작점 주소를 바꾸는 것이기 때문입니다.

가끔 네트워크로 가는 패킷의 방향을 바꾸고자 할때. 종종 이것은 (위에서 기술했듯이) 하나의 IP 주소를 가지고 있지만 하나의 실제 IP 주소 뒤에 여러사람이 참여하고자 할 때입니다. 들어오는 패킷의 목적지를 다시 고쳐줌으로 이러한것을 할 수 있습니다.

이것의 일반적인 변형은 부하분산으로, 여러대의 기계가 물려있을때 패킷을 이들에게로 나누어 주는 것입니다. 이러한 리눅스 박스를 지나가는 패킷이 리눅스 박스 자체의 프로그램으로 향하도록 하는 것을 좋아할 수가 있습니다. 이것을 사용하는 것은 투명한 프록시를 만드는 것으로 이 프록시는 바깥세상과 네트워크사이에 존재하는 프로그램으로 이 둘사이의 통신을 속이는 것입니다. 이것이 투명하다는 것은 여러분의 네트워크는 이 프록시가 작동하지 않기 전까지는 프록시를 통해서 통신이 이루어진다는 것을 알수 없기 때문입니다.

Squid는 이런식으로 장동하도록 설정될수있고 이것을 이전의 리눅스 버전에서는 투명한 프록시 또는 방향재설정(redirection)이라고 불렀습니다. 형태의 NAT를 이전 버전의 리눅스에서는 포트 포워딩이라고 하였습니다.

NAT를 두가지의 다른 형태로 구분하면.
: 시작점 NAT(Source NAT) (SNAT) and 목적지 NAT(Destination NAT) (DNAT).

Source NAT 은 첫 패킷의 시작점주소를 변경할때입니다. 즉, 들어오는 접속을 변경하는 것입니다. Source NAT는 언제나 라우팅후에 이루어지고 패킷이 바깥으로 나가기 직전에 이루어 진다. 마스쿼레이딩은 SNAT 의 특병한 형태입니다.

Destination NAT 은 첫 패킷의 목적지 주소를 변경할때입니다. 즉, 접속이 어디로 향하는지를 변경할때 입니다. Destination NAT은 언제나 라우팅이전에 이루어지고 패킷이 처음으로 들어왔을때 이루어 집니다. 포트 포워딩, 부하분산, 그리고 투명한 프록시가 모두가 DNAT의 형태입니다.

출처 : http://kin.naver.com/detail/detail.php?d1id=1&dir_id=103&eid=O0rNx3wSJEnduAUExpCgbPCDstCUycFd&qb=bmF0&pid=fsdrJloQsCCsssUZtbGsss--290286&sid=SAQj-W4bBEgAAFZ9Dns

'etc > old' 카테고리의 다른 글

변수 관련 기초 공부  (1) 2008.04.16
OOP ?일까나....  (0) 2008.04.16
addChildren의 특성 테스트  (0) 2008.04.16
흥분한다면.... ?  (0) 2008.04.16
DMZ란?  (0) 2008.04.15
보안에서 DMZ란 우리나라에 있는 비무장지대와 같습니다.

말그대로 무장을 하지 않는 다는 것이죠.
그렇다면 왜 무장을 하지 않는가?

그 이유는
주로 DMZ는 방화벽과 연관해서 사용이 되어지는데
기본적으로 방화벽은 네트웍을 보호하는 하드웨어나 소프트웨어입니다.
즉 방화벽은 불법적인 침입에 대하여 필터링을 하는 놈이라고 생각하시면 되겠죠?

그러면 DMZ 를 왜 구성하는가?

그 이유는 바로 서비스에 있습니다.
여러분의 회사나 학교의 네트웍에는 외부로 노출되어야 할 서버나 PC들이 있습니다.
예를 들어 웹서버나 홈페이지 서버, 기타 로긴 서버나 인터넷에서 자신의 네트웍의 서버자원
을 사용해야 하는 서버들이 있겠지요.

그러면 이 서버들을 방화벽 아래에 두게 되면 어쩔수 없이 사용하는 포트를 열어야 합니다.
그렇겠죠? 웹서비스는 HTTP를 열어주어야 하고 FTP서비스는 FTP 포트를 열어주어야 합니다.
이런 식으로 방화벽에 DMZ를 구성하지 않고 서버와 클라이언트PC들을 하나의 네트웍으로 구성하면
보안에 HOLE 이 생길 소지가 있다라는 것입니다.

즉 웹서비스의 열려진 HTTP 포트를 통해서 해킹이 가능해지면 이를 통해 내부클라이언트 PC까지도
손쉽게 해킹이 가능하게 됩니다.

그러므로 DMZ를 구성하게 되는 것이지요.

열어줘야 할 것들은 DMZ를 구성해서 따로 네트웍을 할당 하는 것입니다.
그러면 DMZ에서 로컬 네트웍으로의 침입이 불가능하게 되는 것이죠.



인터넷 -> DMZ : OPEN (필요한 서비스만)
DMZ -> 로컬네트웍 : CLOSE (DMZ 서버를 통해서 로컬네트웍으로의 불법적인 침입 방지)
로컬네트웍 -> DMZ : OPEN (필요한 서비스만)
인터넷 -> 로컬네트웍 : CLOSE (로컬네트웍 보호)

이런 식의 정책적용이 기본적인 방화벽의 DMZ 관련 정책입니다.

가장 기본적으로 DMZ를 구성하는 경우는 아래와 같습니다.

방화벽에 NIC를 3장 달아서
하나는 인터넷, 다른 하나는 DMZ, 나머지 하나는 로컬네트웍으로 연결을 시켜주는 것이죠.

마지막으로 다시 정리해보면
DMZ는 외부에서 엑세스 가능한 서버들의 네트웍을 할당해 놓은 곳이며
DMZ를 구성함으로써 로컬네트웍의 보안을 가져갈 수 있다.

출처 : http://kin.naver.com/detail/detail.php?d1id=1&dir_id=103&eid=7WHbdc6MUV8V87alnfDCu/R70cHDEAVl&qb=ZG16&pid=fsdp9woQsD4sstH+7Yhsss--092104&sid=SAQj-W4bBEgAAFZ9Dns

'etc > old' 카테고리의 다른 글

변수 관련 기초 공부  (1) 2008.04.16
OOP ?일까나....  (0) 2008.04.16
addChildren의 특성 테스트  (0) 2008.04.16
흥분한다면.... ?  (0) 2008.04.16
NAT  (0) 2008.04.15

+ Recent posts